SlideShare a Scribd company logo
1
Hyperledger
Fabric
Architecture
 Fabric has several framework
components:
 Membership services for security:
audit, registration & identity
management
 Blockchain services: Consensus,
Storage & transactions
 Chaincode services: Secure
container & registry
 For the hackathon we will focus on
the container and blockchain
storage
2
Chaincode
REST ENDPOINTS
Hyperledger-java
API
Application code
ValidatingPeerNode
Dockercontainer RocksDB storage
Other
Validating
PeersREST
Consensus
Consensus
Consensus
Prerequisites
 Docker (I tested on 1.12.1 on Mac OS X)
 Docker Compose (kitematic is also helpful)
 Java/Golang environment for chaincode development (I used JDK 8 + Gradle 3.2)
 For application development:
 Java/Golang environment
 Your favourite development language, as long as you have a REST API available
 This guide loosely based on:
http://hyperledger-fabric.readthedocs.io/en/latest/starter/fabric-starter-kit/
3
The Environment
4
Starter
container
Member SVCs
Peer node
Container for the member
security services (not strictly
required for the hackathon)
Runs and builds the Fabric Shim
for interaction with Fabric
Runs and builds the java
chaincode
Requires Java + gradle to be
installed in the container
Deploys the Java chaincode
running on peer node into
Fabric
Used for executing
commands against the
running chaincode
Docker-compose.yml
membersrvc:
# try 'docker ps' to see the container status after starting this compose
container_name: membersrvc
image: hyperledger/fabric-membersrvc
command: membersrvc
environment:
- COMPOSE_HTTP_TIMEOUT=120
volumes:
- /Users/jbowkett/Documents/Excelian/blockchain/dev-team/git-clone/smart-cheques/starter-
kit/docker-containers/mapped-fs-member:/user/docker-containers/mapped-fs-member
peer:
container_name: peer
image: hyperledger/fabric-peer
environment:
- CORE_PEER_ADDRESSAUTODETECT=true
- CORE_VM_ENDPOINT=unix:///var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=vp0
- CORE_SECURITY_ENABLED=false
# - CORE_SECURITY_PRIVACY=false
- CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
- CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=noops
- COMPOSE_HTTP_TIMEOUT=120
# this gives access to the docker host daemon to deploy chain code in network mode
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /Users/jbowkett/Documents/Excelian/blockchain/dev-team/git-clone/smart-cheques/starter-
kit/docker-containers/mapped-fs-peer:/user/docker-containers/mapped-fs-peer
5
# have the peer wait 10 sec for membersrvc to start
# the following is to run the peer in Developer mode - also set sample DEPLOY_MODE=dev
command: sh -c "sleep 10; peer node start --peer-chaincodedev"
#command: sh -c "sleep 10; peer node start"
links:
- membersrvc
ports:
- "5005:5005"
starter:
container_name: starter
image: hyperledger/fabric-starter-kit
volumes:
# tweak this to map a local development directory tree into the container
- /Users/jbowkett/Documents/Excelian/blockchain/dev-team/git-clone/smart-cheques/starter-
kit/docker-containers/mapped-fs-starter:/user/docker-containers/mapped-fs-starter
environment:
- MEMBERSRVC_ADDRESS=membersrvc:7054
- PEER_ADDRESS=peer:7051
- KEY_VALUE_STORE=/tmp/hl_sdk_node_key_value_store
# set to following to 'dev' if peer running in Developer mode
- COMPOSE_HTTP_TIMEOUT=120
- DEPLOY_MODE=dev
- CORE_CHAINCODE_ID_NAME=mycc
- CORE_PEER_ADDRESS=peer:7051
# the following command will start the chain code when this container starts and ready it for
deployment by the app
# command: sh -c "sleep 20;
/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chai
ncode_example02"
stdin_open: true
tty: true
links:
- membersrvc
- peer
Bootstrap the Docker environments
 Edit the volumes sections of your docker-compose.yml to map appropriate
directories for getting code onto your nodes
 Make sure those paths exist on your development (and “production” machine)
 Go to the directory the docker-compose.yml is installed:
$ docker-compose up -d
6
7
Update the peer node to run Java services
$ docker exec -it peer /bin/bash
peer$ peer node start --peer-chaincodedev
peer$ apt-get update && add-apt-repository ppa:webupd8team/java && add-
apt-repository ppa:cwchien/gradle && apt-get update && apt-get install
oracle-java8-installer
peer$ java –fullversion # should be JDK 1.8
peer$ apt-get install gradle
peer$ gradle –v # should be 3.2+
8
9
Install the chaincode shim into the gradle repo
peer$ cd $GOPATH/src/github.com/hyperledger/fabric/core/chaincode/shim/java
peer$ gradle clean build
10
The story so far….
 We’ve created the 3 Hyperledger docker containers (starter, membersvc and peer)
with mounted directories on our development machine
 Provisioned the peer node by installing the correct version of Java and Gradle
 Built the Hyperledger shim on the peer node and installed it as an available
dependency for later Gradle builds on the peer node
 Now let’s deploy an example chaincode application….
11
Install your chaincode on the peer node and run the service
import org.hyperledger.java.shim.ChaincodeBase;
import org.hyperledger.java.shim.ChaincodeStub;
public class HelloWorldChaincode extends ChaincodeBase {
public HelloWorldChaincode() { }
public String run(ChaincodeStub chaincodeStub, String function, String[] args) {
return "hello world!";
}
public String query(ChaincodeStub chaincodeStub, String function, String[] args) {
return "hello world query";
}
public String getChaincodeID() {
return "HelloWorldChaincode";
}
public static void main(String[] args) {
new HelloWorldChaincode().start(args);
}
}12
$ cp <hello world chaincode src> <mapped dir for peer>
Start the chaincode
 peer$ gradle clean build runHello
 $ docker exec -it starter /bin/bash
 starter$ peer chaincode deploy -l java -n HelloWorldChaincode -c
'{"Args":[]}'
 starter$ peer chaincode invoke -l java -n HelloWorldChaincode -c
'{"Args":[]}’
 starter$ peer chaincode query -l java -n HelloWorldChaincode -c
'{"Args":[]}'
13
SUCCESS !!!!
A quick recap….
1. Create the 3 Hyperledger Docker containers (starter, membersvc and peer) with
mapped directories to our development machine
2. Provision the peer node by logging into the Docker container and installing the
correct version of Java and Gradle
3. Build the Hyperledger shim on the peer node and install it as an available
dependency for later Gradle builds on the peer node
4. Create a HelloWorld chaincode on our development machine & copy the code+build
script to the peer node using our Docker mapped-directory
5. On the starter node, deploy the chaincode into Fabric, and then use the starter node
to query the running chaincode within fabric
14
Some APIs and Examples to be aware of
 Table creation:
final List<TableProto.ColumnDefinition> columnDefs = new ArrayList<>();
columnDefs.add(newBuilder().setName("hash").setKey(true).setType(STRING).build());
columnDefs.add(newBuilder().setName("messages").setKey(false).setType(STRING).build());
final boolean success = chaincodeStub.createTable(TABLE_NAME, columnDefs);
 Lookup is based on the key column only
 https://github.com/hyperledger/fabric/tree/master/examples/chaincode/java
 Examples:
 LinkExample – Invoking one chaincode from another
 MapExample – Simple map storage
 RangeExample – Query storage with range
 SimpleExample – Transferring value using Arguments
 TableExample – C/R/D Using underlying storage tables
15
Useful links
 https://docs.docker.com/engine/installation/
 https://docs.docker.com/engine/installation/linux/linux-postinstall/  Important on
Linux if running Docker on boot
 http://hyperledger-fabric.readthedocs.io
 http://hyperledger-fabric.readthedocs.io/en/latest/starter/fabric-starter-kit/
 https://github.com/jbowkett/zug-hackathon
 https://github.com/hyperledger/fabric/tree/master/examples/chaincode/java
 https://gradle.org/documentation/
16

More Related Content

PDF
Introduction to Blockchain and Hyperledger
PDF
Hyperledger Fabric & Composer
PPTX
Hyperledger
PPTX
Hyperledger community update February 2018
PPTX
Blockchain, 
Hyperledger fabric & Hyperledger cello
PDF
Hyperledger Lightning Talk
ODP
Hyperledger Composer
PPTX
Hyperledger Composer architecture
Introduction to Blockchain and Hyperledger
Hyperledger Fabric & Composer
Hyperledger
Hyperledger community update February 2018
Blockchain, 
Hyperledger fabric & Hyperledger cello
Hyperledger Lightning Talk
Hyperledger Composer
Hyperledger Composer architecture

What's hot (20)

ODP
Hyperledger Fabric and Tools
PPTX
Conoscerehyperledger
PDF
Excelian hyperledger fabric-feb17
PDF
Hyperledger Fabric Technical Deep Dive 20190618
PDF
Distributed:Health Code Camp Hyperledger
PPTX
Hyperledger Composer Update 2017-04-05
PDF
Developing applications with Hyperledger Fabric SDK
PDF
Hyperledger community update Feb 20, 2018
PDF
Hyperledger fabric 3
PDF
Blockchain Hyperledger Lab
PDF
Hyperledger community update 201805
PDF
Introduction of Hyperledger Fabric & Composer
PDF
IBM Blockchain Overview
PDF
Hong Kong Hyperledger Meetup January 2018
PDF
Hyperledger Fabric: A Custom Blockchain Solution for Corporate Use
PPTX
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
PDF
Orchestraing the Blockchain Using Containers
ODP
Blockchain Explorer
PDF
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
PPTX
IBM presents: Hyperledger Fabric Hands On Workshop - part 1
Hyperledger Fabric and Tools
Conoscerehyperledger
Excelian hyperledger fabric-feb17
Hyperledger Fabric Technical Deep Dive 20190618
Distributed:Health Code Camp Hyperledger
Hyperledger Composer Update 2017-04-05
Developing applications with Hyperledger Fabric SDK
Hyperledger community update Feb 20, 2018
Hyperledger fabric 3
Blockchain Hyperledger Lab
Hyperledger community update 201805
Introduction of Hyperledger Fabric & Composer
IBM Blockchain Overview
Hong Kong Hyperledger Meetup January 2018
Hyperledger Fabric: A Custom Blockchain Solution for Corporate Use
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Orchestraing the Blockchain Using Containers
Blockchain Explorer
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
IBM presents: Hyperledger Fabric Hands On Workshop - part 1
Ad

Viewers also liked (10)

PDF
Smart Contracts: Opportunities and Challenges
PPTX
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
PDF
Edcon - Hardware wallets and smart contracts
PPTX
Introduction to Hyperledger Composer
PDF
Trading Derivatives on Hyperledger
PPTX
How to Never Leave Your Deployment Unattended
PDF
Technical Introduction to Hyperledger Fabric v1.0
PPTX
Fabric Composer - London Hyperledger Meetup - March 2017
PDF
Introduction to Blockchain and the Hyperledger Project
PDF
Architecture of the Hyperledger Blockchain Fabric - Christian Cachin - IBM Re...
Smart Contracts: Opportunities and Challenges
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Edcon - Hardware wallets and smart contracts
Introduction to Hyperledger Composer
Trading Derivatives on Hyperledger
How to Never Leave Your Deployment Unattended
Technical Introduction to Hyperledger Fabric v1.0
Fabric Composer - London Hyperledger Meetup - March 2017
Introduction to Blockchain and the Hyperledger Project
Architecture of the Hyperledger Blockchain Fabric - Christian Cachin - IBM Re...
Ad

Similar to Excelian hyperledger walkthrough-feb17 (20)

PPT
Setting up the fabric v 0.6 in hyperledger
PPT
Setting up the hyperledger composer in ubuntu
PPTX
Various ways to create Hyperledger Fabric Blockchain network.pptx
PPTX
Blockchain explored
DOCX
Deploy the blockchain network using kubernetes ap is on google cloud
PDF
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
PDF
04 - Blockchain Technology - Hyperledger Fabric
PPTX
Hyperledger & blockchain meetup - Milano 23.10.2019
PDF
Hyperledger 구조 분석
PDF
HyperLedger Fabric V2.5.pdf
PDF
Hyperledger Fabric Architecture
PPTX
hyperledger-chaincode & hyperl fabric.pptx
PDF
Demystify blockchain development with hyperledger fabric
PDF
Wwc developing hyperledger applications v4
PDF
02 - Introduction to Hyperledger Fabric
PPT
Block chain
PDF
Hyperledger Fabric update Meetup 20181101
PDF
IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop
PPTX
20190423 meetup japan_public
Setting up the fabric v 0.6 in hyperledger
Setting up the hyperledger composer in ubuntu
Various ways to create Hyperledger Fabric Blockchain network.pptx
Blockchain explored
Deploy the blockchain network using kubernetes ap is on google cloud
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
04 - Blockchain Technology - Hyperledger Fabric
Hyperledger & blockchain meetup - Milano 23.10.2019
Hyperledger 구조 분석
HyperLedger Fabric V2.5.pdf
Hyperledger Fabric Architecture
hyperledger-chaincode & hyperl fabric.pptx
Demystify blockchain development with hyperledger fabric
Wwc developing hyperledger applications v4
02 - Introduction to Hyperledger Fabric
Block chain
Hyperledger Fabric update Meetup 20181101
IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop
20190423 meetup japan_public

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
cuic standard and advanced reporting.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Encapsulation theory and applications.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPT
Teaching material agriculture food technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Weekly Chronicles - August'25 Week I
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Encapsulation theory and applications.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Teaching material agriculture food technology
Understanding_Digital_Forensics_Presentation.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
MIND Revenue Release Quarter 2 2025 Press Release
“AI and Expert System Decision Support & Business Intelligence Systems”
The AUB Centre for AI in Media Proposal.docx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

Excelian hyperledger walkthrough-feb17

  • 2. Architecture  Fabric has several framework components:  Membership services for security: audit, registration & identity management  Blockchain services: Consensus, Storage & transactions  Chaincode services: Secure container & registry  For the hackathon we will focus on the container and blockchain storage 2 Chaincode REST ENDPOINTS Hyperledger-java API Application code ValidatingPeerNode Dockercontainer RocksDB storage Other Validating PeersREST Consensus Consensus Consensus
  • 3. Prerequisites  Docker (I tested on 1.12.1 on Mac OS X)  Docker Compose (kitematic is also helpful)  Java/Golang environment for chaincode development (I used JDK 8 + Gradle 3.2)  For application development:  Java/Golang environment  Your favourite development language, as long as you have a REST API available  This guide loosely based on: http://hyperledger-fabric.readthedocs.io/en/latest/starter/fabric-starter-kit/ 3
  • 4. The Environment 4 Starter container Member SVCs Peer node Container for the member security services (not strictly required for the hackathon) Runs and builds the Fabric Shim for interaction with Fabric Runs and builds the java chaincode Requires Java + gradle to be installed in the container Deploys the Java chaincode running on peer node into Fabric Used for executing commands against the running chaincode
  • 5. Docker-compose.yml membersrvc: # try 'docker ps' to see the container status after starting this compose container_name: membersrvc image: hyperledger/fabric-membersrvc command: membersrvc environment: - COMPOSE_HTTP_TIMEOUT=120 volumes: - /Users/jbowkett/Documents/Excelian/blockchain/dev-team/git-clone/smart-cheques/starter- kit/docker-containers/mapped-fs-member:/user/docker-containers/mapped-fs-member peer: container_name: peer image: hyperledger/fabric-peer environment: - CORE_PEER_ADDRESSAUTODETECT=true - CORE_VM_ENDPOINT=unix:///var/run/docker.sock - CORE_LOGGING_LEVEL=DEBUG - CORE_PEER_ID=vp0 - CORE_SECURITY_ENABLED=false # - CORE_SECURITY_PRIVACY=false - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 - CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=noops - COMPOSE_HTTP_TIMEOUT=120 # this gives access to the docker host daemon to deploy chain code in network mode volumes: - /var/run/docker.sock:/var/run/docker.sock - /Users/jbowkett/Documents/Excelian/blockchain/dev-team/git-clone/smart-cheques/starter- kit/docker-containers/mapped-fs-peer:/user/docker-containers/mapped-fs-peer 5 # have the peer wait 10 sec for membersrvc to start # the following is to run the peer in Developer mode - also set sample DEPLOY_MODE=dev command: sh -c "sleep 10; peer node start --peer-chaincodedev" #command: sh -c "sleep 10; peer node start" links: - membersrvc ports: - "5005:5005" starter: container_name: starter image: hyperledger/fabric-starter-kit volumes: # tweak this to map a local development directory tree into the container - /Users/jbowkett/Documents/Excelian/blockchain/dev-team/git-clone/smart-cheques/starter- kit/docker-containers/mapped-fs-starter:/user/docker-containers/mapped-fs-starter environment: - MEMBERSRVC_ADDRESS=membersrvc:7054 - PEER_ADDRESS=peer:7051 - KEY_VALUE_STORE=/tmp/hl_sdk_node_key_value_store # set to following to 'dev' if peer running in Developer mode - COMPOSE_HTTP_TIMEOUT=120 - DEPLOY_MODE=dev - CORE_CHAINCODE_ID_NAME=mycc - CORE_PEER_ADDRESS=peer:7051 # the following command will start the chain code when this container starts and ready it for deployment by the app # command: sh -c "sleep 20; /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chai ncode_example02" stdin_open: true tty: true links: - membersrvc - peer
  • 6. Bootstrap the Docker environments  Edit the volumes sections of your docker-compose.yml to map appropriate directories for getting code onto your nodes  Make sure those paths exist on your development (and “production” machine)  Go to the directory the docker-compose.yml is installed: $ docker-compose up -d 6
  • 7. 7
  • 8. Update the peer node to run Java services $ docker exec -it peer /bin/bash peer$ peer node start --peer-chaincodedev peer$ apt-get update && add-apt-repository ppa:webupd8team/java && add- apt-repository ppa:cwchien/gradle && apt-get update && apt-get install oracle-java8-installer peer$ java –fullversion # should be JDK 1.8 peer$ apt-get install gradle peer$ gradle –v # should be 3.2+ 8
  • 9. 9
  • 10. Install the chaincode shim into the gradle repo peer$ cd $GOPATH/src/github.com/hyperledger/fabric/core/chaincode/shim/java peer$ gradle clean build 10
  • 11. The story so far….  We’ve created the 3 Hyperledger docker containers (starter, membersvc and peer) with mounted directories on our development machine  Provisioned the peer node by installing the correct version of Java and Gradle  Built the Hyperledger shim on the peer node and installed it as an available dependency for later Gradle builds on the peer node  Now let’s deploy an example chaincode application…. 11
  • 12. Install your chaincode on the peer node and run the service import org.hyperledger.java.shim.ChaincodeBase; import org.hyperledger.java.shim.ChaincodeStub; public class HelloWorldChaincode extends ChaincodeBase { public HelloWorldChaincode() { } public String run(ChaincodeStub chaincodeStub, String function, String[] args) { return "hello world!"; } public String query(ChaincodeStub chaincodeStub, String function, String[] args) { return "hello world query"; } public String getChaincodeID() { return "HelloWorldChaincode"; } public static void main(String[] args) { new HelloWorldChaincode().start(args); } }12 $ cp <hello world chaincode src> <mapped dir for peer>
  • 13. Start the chaincode  peer$ gradle clean build runHello  $ docker exec -it starter /bin/bash  starter$ peer chaincode deploy -l java -n HelloWorldChaincode -c '{"Args":[]}'  starter$ peer chaincode invoke -l java -n HelloWorldChaincode -c '{"Args":[]}’  starter$ peer chaincode query -l java -n HelloWorldChaincode -c '{"Args":[]}' 13 SUCCESS !!!!
  • 14. A quick recap…. 1. Create the 3 Hyperledger Docker containers (starter, membersvc and peer) with mapped directories to our development machine 2. Provision the peer node by logging into the Docker container and installing the correct version of Java and Gradle 3. Build the Hyperledger shim on the peer node and install it as an available dependency for later Gradle builds on the peer node 4. Create a HelloWorld chaincode on our development machine & copy the code+build script to the peer node using our Docker mapped-directory 5. On the starter node, deploy the chaincode into Fabric, and then use the starter node to query the running chaincode within fabric 14
  • 15. Some APIs and Examples to be aware of  Table creation: final List<TableProto.ColumnDefinition> columnDefs = new ArrayList<>(); columnDefs.add(newBuilder().setName("hash").setKey(true).setType(STRING).build()); columnDefs.add(newBuilder().setName("messages").setKey(false).setType(STRING).build()); final boolean success = chaincodeStub.createTable(TABLE_NAME, columnDefs);  Lookup is based on the key column only  https://github.com/hyperledger/fabric/tree/master/examples/chaincode/java  Examples:  LinkExample – Invoking one chaincode from another  MapExample – Simple map storage  RangeExample – Query storage with range  SimpleExample – Transferring value using Arguments  TableExample – C/R/D Using underlying storage tables 15
  • 16. Useful links  https://docs.docker.com/engine/installation/  https://docs.docker.com/engine/installation/linux/linux-postinstall/  Important on Linux if running Docker on boot  http://hyperledger-fabric.readthedocs.io  http://hyperledger-fabric.readthedocs.io/en/latest/starter/fabric-starter-kit/  https://github.com/jbowkett/zug-hackathon  https://github.com/hyperledger/fabric/tree/master/examples/chaincode/java  https://gradle.org/documentation/ 16