28
Percival Lucena IBM Research github.com/plucena/smartcontracts 1 Blockchain Technology Details 24 Page © 2016 IBM Corporation

Blockchain technology details

Embed Size (px)

Citation preview

Percival Lucena

IBM Research

github.com/plucena/smartcontracts

1

BlockchainTechnology Details

24Page© 2016 IBM Corporation

2

Brian_BehlendorfASF founderExecutive Director

Open Source Open Standard Open Governance

The Hyperledger Project

R3 cordaFabric

Sawtooth Lake

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyBLOCKCHAIN - LEDGER

Time

Ledger

Block 11

Proof of work:0000005647kjp

Previous block:000000432qrza1

Transactionlk54lfvx

Transaction09345w1d

Transactionvc4232v32

Block 12

Proof of work:000000ahpoka9

Previous block:0000005657kjp

Transactiondd5g31bm

Transaction22qsx987

Transaction001hk009

Block 13

Proof of work:00000090b41bx

Previous block:000000ahpoka9

Transaction94lxcv14

Transactionabb7bxxq

Transaction34oiu98a

Block 13

Block 12

Block 11

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyBLOCKCHAIN - UXTO

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyBLOCKCHAIN HYO- UXTO

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyHYPERLEDGER – SMART CONTRACTS

• NO CRIPTO CURRENCY

• PERMISSIONED ACCESS

• MULTIPLE NETWORKS

• SMARTCONTRACTS GO/JAVA:

• - GENERATE TRASACION LOGS – BLOCKS ON BLOCKCHAIN

• - UPDATE STATE – UXTO

• - REGISTER/CONSUME EVENTS

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyBLOCKCHAIN – CONSENSUS - PBFT

Process work to validate

transactions

Node ....Transactions to be processedÇ√ Transactions already validated (and in the chain)

NodeNode Node

...EXECUTE

Page© 2016 IBM Corporation

8

Hyperledger Fabric

HYPELEDGER DOCKER

BLUEMIX SERVICE

LINUX INSTALL

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyLINUX INSTALL – 0.61 BRANCH

1. git clone -b v0.61 http://github.com/hyperledger/fabric/2. cd fabric/devenv3. vagrant up4. vagrant ssh5. cd /hyperledger6. make7. peer node start --peer-chaincodedev

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyLINUX INSTALL – 0.61 BRANCH

Hyperledger CLI

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyVAGRANT CLI – 0.61 BRANCH

membersrvc (0.6.1) – controle de acesso

orderer (0.7)

peer node start --peer-chaincodedev

peer chaincode deploy -l java/go -n $ContractName -c '{"Args": ["init", "arg1”, “arg2", …]}’

peer chaincode invoke -l java/go -n $ContractName -c '{"Args": [“$functionname”, "arg1”, “arg2” …”]}’

peer chaincode query -l java/go -n $ContractName -c '{"Args": ["query", "b"]}'

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyDOCKER INSTALL – 0.61 BRANCH

VERSION 0.6.1 WITH JAVA SUPPORTIN CASE YOU HAVE OTHER HYPERLEGER DOCKER IMAGES, YOU SHOULD REMOVE THEM FIRST

1.docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview

2.docker pull hyperledger/fabric-javaenv:x86_64-0.6.1-preview

3. docker run --name vp0 -it -e CORE_VM_ENDPOINT=unix:///var/run/docker.sock-v /var/run/docker.sock:/var/run/docker.sock -p 7050:7050 -e CORE_LOGGING_LEVEL=DEBUG -e CORE_PEER_ID=vp0 -e CORE_PEER_ADDRESSAUTODETECT=true hyperledger/fabric-javaenv:x86_64-0.6.1-preview peer node start

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyDOCKER REST INTERFACE– 0.61 BRANCH

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyDOCKER REST INTERFACE– 0.61 BRANCH

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyDOCKER REST INTERFACE– 0.61 BRANCH

© 2015 IBM Corporation

Hyperledger Service

© 2015 IBM Corporation

Hyperledger Service

© 2015 IBM Corporation

Hyperledger Service

© 2015 IBM Corporation

Hyperledger Service

© 2015 IBM Corporation

Hyperledger Service

© 2015 IBM Corporation

Hyperledger Service

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyHyperledger Service

23

Hyperledger – Architecture 0.6

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyWhere do I start? —-> SAMPLE APPS

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyWhere do I start? —-> TUTORIALS

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyHyperledger 0.7, 1.0

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyHyperledger 0.7, 1.0

© 2015 IBM Corporation

Systems IntegrationInformation Duplicates/InconsitencyLINKS

RESThttps://github.com/plucena/blockchain-sdk

GRPC - npm install hfc —savehttps://github.com/hyperledger/fabric/tree/master/sdk/node

IBM SAMPLE APPS - https://github.com/IBM-Blockchain

DeveloperWorks Tutorial - http://ibm.co/2bOZoMh -

Java - https://github.com/xspeedcruiser/java-chaincode-tutorial