diff --git a/hyperledger/README.md b/hyperledger/README.md index 99f4f9aa..7d971b03 100644 --- a/hyperledger/README.md +++ b/hyperledger/README.md @@ -1,14 +1,15 @@ # Hyperledger fabric -You can use the following script to install docker and start PBFT cluster in one instruction. +You can use the following script to install docker and start a 4-node PBFT cluster in one instruction. ```sh $ bash setupPbft.sh ``` +## Download Images If you want to start it manually, follow the steps: -First, pull an `openblockchain/baseimage:latest` first. +First, pull necessary images first. ```sh $ docker pull yeasy/hyperledger:latest && docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:latest @@ -16,9 +17,13 @@ $ docker pull yeasy/hyperledger-peer:latest $ docker pull yeasy/hyperledger-membersrvc:latest ``` -Then go into the specific consensus directory, then you can start a 4 nodes hyperledger cluster. +### Start 4 Noops node cluster -E.g., for pbft consensus, use +```sh +$ cd noops; docker-compose up +``` + +### Start 4 PBFT node cluster ```sh $ cd pbft; docker-compose up @@ -26,14 +31,29 @@ $ cd pbft; docker-compose up After the cluster is synced, you can validate by deploying, invoking or querying chaincode from the container or from the host. -See [hyperledger-peer](https://github.com/yeasy/docker-hyperledger-peer) if you've not familiar on that. +See [hyperledger-peer](https://github.com/yeasy/docker-hyperledger-peer) if you've not familiar on those operations. + +### Start 4 PBFT node cluster with member service + +```sh +$ cd pbft; docker-compose -f docker-compose-with-membersrvc.yml up +``` + +Then go to vp0, login and deploy a chaincode. + +```sh +$ docker exec -it pbft_vp0_1 bash +# peer network login jim +08:23:13.604 [networkCmd] networkLogin -> INFO 001 CLI client login... +08:23:13.604 [networkCmd] networkLogin -> INFO 002 Local data store for client loginToken: /var/hyperledger/production/client/ +Enter password for user 'jim': 6avZQLwcUe9b +... + +# peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' +``` + +4 new chaincode containers will be built up automatically. + +## Acknowledgement This refers the example from the [hyperledger](https://github.com/hyperledger/fabric/tree/master/consensus/docker-compose-files) project. - -## noops - -Use the noops as consensus, i.e., no consensus. - -## pbft - -Use pbft as consensus. diff --git a/hyperledger/pbft/docker-compose-with-membersrvc.yml b/hyperledger/pbft/docker-compose-with-membersrvc.yml index 4ffca7a9..3cb99e67 100644 --- a/hyperledger/pbft/docker-compose-with-membersrvc.yml +++ b/hyperledger/pbft/docker-compose-with-membersrvc.yml @@ -21,16 +21,12 @@ membersrvc: vp0: extends: file: peer-pbft.yml - service: vp + service: vp_sec hostname: vp0 environment: - CORE_PEER_ID=vp0 - - CORE_SECURITY_ENABLED=true - CORE_SECURITY_ENROLLID=test_vp0 - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT - - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 ports: - "7050:7050" #- "7051:7051" @@ -41,17 +37,13 @@ vp0: vp1: extends: file: peer-pbft.yml - service: vp + service: vp_sec hostname: vp1 environment: - CORE_PEER_ID=vp1 - - CORE_SECURITY_ENABLED=true - CORE_PEER_DISCOVERY_ROOTNODE=vp0:7051 - CORE_SECURITY_ENROLLID=test_vp1 - CORE_SECURITY_ENROLLSECRET=5wgHK9qqYaPy - - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 links: - membersrvc - vp0 @@ -60,17 +52,13 @@ vp1: vp2: extends: file: peer-pbft.yml - service: vp + service: vp_sec hostname: vp2 environment: - CORE_PEER_ID=vp2 - - CORE_SECURITY_ENABLED=true - CORE_PEER_DISCOVERY_ROOTNODE=vp0:7051 - CORE_SECURITY_ENROLLID=test_vp2 - CORE_SECURITY_ENROLLSECRET=vQelbRvja7cJ - - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 links: - membersrvc - vp0 @@ -82,17 +70,13 @@ vp2: vp3: extends: file: peer-pbft.yml - service: vp + service: vp_sec hostname: vp3 environment: - CORE_PEER_ID=vp3 - - CORE_SECURITY_ENABLED=true - CORE_PEER_DISCOVERY_ROOTNODE=vp0:7051 - CORE_SECURITY_ENROLLID=test_vp3 - CORE_SECURITY_ENROLLSECRET=9LKqKH5peurL - - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 links: - membersrvc - vp0 diff --git a/hyperledger/pbft/peer-pbft.yml b/hyperledger/pbft/peer-pbft.yml index 4a16add7..fe6f215f 100644 --- a/hyperledger/pbft/peer-pbft.yml +++ b/hyperledger/pbft/peer-pbft.yml @@ -28,3 +28,12 @@ vp: - /var/run/docker.sock:/var/run/docker.sock command: peer node start # this repeats the default cmd to make sure # command: sh -c "sleep 5; peer node start" # peer node should have booting delay with CA + +vp_sec: + extends: + service: vp + environment: + - CORE_SECURITY_ENABLED=true + - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 + - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 + - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 \ No newline at end of file