From 2d9d25f5ebf667601d0a7376a2cb640fd78ff466 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Fri, 1 Sep 2017 20:09:18 +0800 Subject: [PATCH] Support fabric 1.0.1 now --- hyperledger/1.0.1/Dockerfile | 24 + hyperledger/1.0.1/Makefile | 117 +++ hyperledger/1.0.1/README.md | 144 +++ .../1.0.1/artifacts_generation/add-org.sh | 28 + .../1.0.1/artifacts_generation/configtx.yaml | 216 +++++ .../artifacts_generation/crypto-config.yaml | 82 ++ .../docker-compose-2orgs.yml | 94 ++ .../artifacts_generation/generateArtifacts.sh | 103 ++ .../1.0.1/artifacts_generation/peer-base.yml | 155 +++ .../artifacts_generation/test-5-peers.sh | 247 +++++ hyperledger/1.0.1/base.yaml | 133 +++ hyperledger/1.0.1/docker-compose-1peer.yaml | 34 + .../docker-compose-2orgs-4peers-couchdb.yaml | 63 ++ .../docker-compose-2orgs-4peers-event.yaml | 127 +++ .../1.0.1/docker-compose-2orgs-4peers.yaml | 56 ++ hyperledger/1.0.1/docker-compose-base.yaml | 168 ++++ hyperledger/1.0.1/docker-compose-dev.yaml | 84 ++ hyperledger/1.0.1/docker-compose.yaml | 77 ++ .../1.0.1/docs/artifacts_generation.md | 276 ++++++ hyperledger/1.0.1/docs/chaincode_test.md | 35 + hyperledger/1.0.1/docs/configtxlator.md | 195 ++++ hyperledger/1.0.1/docs/couchdb_usage.md | 32 + hyperledger/1.0.1/docs/detailed_steps.md | 122 +++ .../1.0.1/docs/docker-compose-1peer-usage.md | 221 +++++ hyperledger/1.0.1/docs/events.md | 33 + hyperledger/1.0.1/docs/kafka_usage.md | 0 hyperledger/1.0.1/docs/peer_cmds.md | 37 + hyperledger/1.0.1/docs/setup.md | 21 + hyperledger/1.0.1/docs/verification_test.md | 10 + .../e2e_cli/base/docker-compose-base.yaml | 135 +++ hyperledger/1.0.1/e2e_cli/base/peer-base.yaml | 26 + .../channel-artifacts/Org1MSPanchors.tx | Bin 0 -> 296 bytes .../channel-artifacts/Org2MSPanchors.tx | Bin 0 -> 296 bytes .../e2e_cli/channel-artifacts/channel.tx | Bin 0 -> 406 bytes .../channel-artifacts/orderer.genesis.block | Bin 0 -> 9068 bytes hyperledger/1.0.1/e2e_cli/configtx.yaml | 153 +++ hyperledger/1.0.1/e2e_cli/crypto-config.yaml | 93 ++ ...36b0d5cadbfb14772f05fd2cf32cd0c32d69b77_sk | 5 + .../example.com/ca/ca.example.com-cert.pem | 14 + .../msp/admincerts/Admin@example.com-cert.pem | 13 + .../msp/cacerts/ca.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 14 + .../msp/admincerts/Admin@example.com-cert.pem | 13 + .../msp/cacerts/ca.example.com-cert.pem | 14 + ...ee7303daa9c62125dc5e7086338cedd47ae498f_sk | 5 + .../signcerts/orderer.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 14 + .../orderers/orderer.example.com/tls/ca.crt | 14 + .../orderer.example.com/tls/server.crt | 15 + .../orderer.example.com/tls/server.key | 5 + ...f811c274e08b949930d761e0314982751bf85c1_sk | 5 + .../tlsca/tlsca.example.com-cert.pem | 14 + .../msp/admincerts/Admin@example.com-cert.pem | 13 + .../msp/cacerts/ca.example.com-cert.pem | 14 + ...296a4eda4fe8f0e229dcfb63770c7e45b96745f_sk | 5 + .../msp/signcerts/Admin@example.com-cert.pem | 13 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 14 + .../users/Admin@example.com/tls/ca.crt | 14 + .../users/Admin@example.com/tls/server.crt | 14 + .../users/Admin@example.com/tls/server.key | 5 + ...5286e8869bb7bd051454cd4166aa2887a2ad451_sk | 5 + .../ca/ca.org1.example.com-cert.pem | 14 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 15 + .../tlsca.org1.example.com-cert.pem | 15 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 15 + ...89c2524b5bc23fa9e6e0968c93cbcf27b2d10e4_sk | 5 + .../signcerts/peer0.org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 15 + .../peers/peer0.org1.example.com/tls/ca.crt | 15 + .../peer0.org1.example.com/tls/server.crt | 15 + .../peer0.org1.example.com/tls/server.key | 5 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 15 + ...29dada8e62bf2b5f180ac6e49c79a70c40858e2_sk | 5 + .../signcerts/peer1.org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 15 + .../peers/peer1.org1.example.com/tls/ca.crt | 15 + .../peer1.org1.example.com/tls/server.crt | 15 + .../peer1.org1.example.com/tls/server.key | 5 + ...855786c12e356170090a2d3e4cd4477705b40dc_sk | 5 + .../tlsca/tlsca.org1.example.com-cert.pem | 15 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 15 + ...61e78a2b47935e318ec1800de5fc5c164dae9ae_sk | 5 + .../signcerts/Admin@org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 15 + .../users/Admin@org1.example.com/tls/ca.crt | 15 + .../Admin@org1.example.com/tls/server.crt | 14 + .../Admin@org1.example.com/tls/server.key | 5 + .../User1@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 15 + ...6ce6f18989d35301fbdf10582e31a872da8200e_sk | 5 + .../signcerts/User1@org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 15 + .../users/User1@org1.example.com/tls/ca.crt | 15 + .../User1@org1.example.com/tls/server.crt | 14 + .../User1@org1.example.com/tls/server.key | 5 + ...a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk | 5 + .../ca/ca.org2.example.com-cert.pem | 14 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 15 + .../tlsca.org2.example.com-cert.pem | 15 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 15 + ...0954c8d339a2a293c5643a3217a55c6b14668cc_sk | 5 + .../signcerts/peer0.org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 15 + .../peers/peer0.org2.example.com/tls/ca.crt | 15 + .../peer0.org2.example.com/tls/server.crt | 15 + .../peer0.org2.example.com/tls/server.key | 5 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 15 + ...17acad0701f44e9b6c08f99af1b7fb0220808e7_sk | 5 + .../signcerts/peer1.org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 15 + .../peers/peer1.org2.example.com/tls/ca.crt | 15 + .../peer1.org2.example.com/tls/server.crt | 15 + .../peer1.org2.example.com/tls/server.key | 5 + ...f423988e6037b16e2cba7e0c1ee2c074f8d1821_sk | 5 + .../tlsca/tlsca.org2.example.com-cert.pem | 15 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 15 + ...e517005a9905816bc2fc2ab3aece92e0daff4c8_sk | 5 + .../signcerts/Admin@org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 15 + .../users/Admin@org2.example.com/tls/ca.crt | 15 + .../Admin@org2.example.com/tls/server.crt | 14 + .../Admin@org2.example.com/tls/server.key | 5 + .../User1@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 15 + ...d8efaed2db1095645a9ec5a6ff6276ed6e24893_sk | 5 + .../signcerts/User1@org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 15 + .../users/User1@org2.example.com/tls/ca.crt | 15 + .../User1@org2.example.com/tls/server.crt | 14 + .../User1@org2.example.com/tls/server.key | 5 + .../1.0.1/e2e_cli/docker-compose-cli.yaml | 163 ++++ .../1.0.1/e2e_cli/docker-compose-couch.yaml | 67 ++ .../e2e_cli/docker-compose-e2e-template.yaml | 159 +++ .../1.0.1/e2e_cli/docker-compose-e2e.yaml | 159 +++ .../1.0.1/e2e_cli/download-dockerimages.sh | 81 ++ hyperledger/1.0.1/e2e_cli/end-to-end.rst | 912 ++++++++++++++++++ .../chaincode_example02.go | 199 ++++ .../1.0.1/e2e_cli/generateArtifacts.sh | 103 ++ hyperledger/1.0.1/e2e_cli/network_setup.sh | 101 ++ hyperledger/1.0.1/e2e_cli/scripts/script.sh | 273 ++++++ hyperledger/1.0.1/kafka/README.md | 24 + .../1.0.1/kafka/channel-artifacts/.gitkeep | 0 .../kafka/channel-artifacts/Org1MSPanchors.tx | Bin 0 -> 262 bytes .../kafka/channel-artifacts/Org2MSPanchors.tx | Bin 0 -> 262 bytes .../1.0.1/kafka/channel-artifacts/channel.tx | Bin 0 -> 381 bytes .../channel-artifacts/orderer.genesis.block | Bin 0 -> 9514 bytes hyperledger/1.0.1/kafka/configtx.yaml | 152 +++ hyperledger/1.0.1/kafka/crypto-config.yaml | 81 ++ ...235402702fc8ffeae67a83436c4a4f9ec20dded_sk | 5 + ...129ec0372768781af6b5a4434c3249b0c17bc7d_sk | 5 + ...f507a534f31012dbe24eba5e49b15bed1e6d1f3_sk | 5 + ...62c7589585790483c17020bb31de091a0f00e84_sk | 5 + ...5c952867e16ed9dc1790ca5555a35ff7afcc741_sk | 5 + .../example.com/ca/ca.example.com-cert.pem | 15 + ...6f1ae9e5ccdafb6a282e04331885fdf70b96580_sk | 5 + .../msp/admincerts/Admin@example.com-cert.pem | 13 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../msp/admincerts/Admin@example.com-cert.pem | 13 + .../msp/cacerts/ca.example.com-cert.pem | 15 + ...05138842fc7b2b4b7d4be28e5c7f5de481487cb_sk | 5 + ...551ea116cbf3fc6406f57d2c446cfd6f2022dfc_sk | 5 + ...8cc0cab955c36d2a8949184f8b1eb3d8e4b651f_sk | 5 + ...f0f1a83dab18b1e2d70131e07db0984e37ec0f7_sk | 5 + ...f491efcd1e7ce674b0e174d1b7b9e85c39cbf6f_sk | 5 + ...fe32b3f105c31b7b58f1f54022bc60ed7b99e3a_sk | 5 + .../signcerts/orderer.example.com-cert.pem | 13 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer.example.com/tls/ca.crt | 15 + .../orderer.example.com/tls/server.crt | 15 + .../orderer.example.com/tls/server.key | 5 + ...ac15cc9d17d7c2993943d7e5e2e36b9caf8f0e7_sk | 5 + ...03b7cd954bb784ba5472169e3ed54c11798c276_sk | 5 + ...08306c67c9f9071ee8c0b37abc8669807ad3310_sk | 5 + ...364f3eafc67c0b8db2e19884169d02cb0d12379_sk | 5 + ...5e8d7e3373997d70e55155476d5f62d6599ea31_sk | 5 + ...7662323d9d3acdf3aebebd09e8c17249fe62149_sk | 5 + .../tlsca/tlsca.example.com-cert.pem | 15 + .../msp/admincerts/Admin@example.com-cert.pem | 13 + .../msp/cacerts/ca.example.com-cert.pem | 15 + ...361772f565f45161b58af5df2d4f64e85544e80_sk | 5 + ...263bc756df205830a597eac864e3db0e6e579ca_sk | 5 + ...d8dcece2457344081b2bc46fa1cac47d65b08ea_sk | 5 + ...d81abf5a9b17a077a0d6aa78266396c15782992_sk | 5 + ...f91542f6d364bdab0914ed75cc6fe214ccb9a43_sk | 5 + ...fd133a95ae4f5ee81969966d4ecbabe9904aa5f_sk | 5 + .../msp/signcerts/Admin@example.com-cert.pem | 13 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../users/Admin@example.com/tls/ca.crt | 15 + .../users/Admin@example.com/tls/server.crt | 14 + .../users/Admin@example.com/tls/server.key | 5 + ...ed30e67bcd19de11bbda2a77cb2082e7a5b35a3_sk | 5 + ...af1888f4c93b589084971374772ad42f4c56f55_sk | 5 + ...ab921949282c9b99dc5b1f9c6004e973ffc60f3_sk | 5 + ...b26602bf1978685c71f21583dcae9b3a62758ff_sk | 5 + ...876c4b942f9150518a01c34168df3c46f8aeeaa_sk | 5 + ...fafcece575172be9b56b234d4b5591c196863cf_sk | 5 + .../ca/ca.org1.example.com-cert.pem | 16 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 16 + .../tlsca.org1.example.com-cert.pem | 16 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 16 + ...2438dbde51f40a8f1d61bd4731269bba470531d_sk | 5 + ...2a2b82a2c0cd9b0624693a00922f2ec5cd82a55_sk | 5 + ...6f0fdcbde054b857246752660a2fdd882e3df58_sk | 5 + ...2f1412cedd11247f43139b269818d9ae3a4f290_sk | 5 + ...d4da08d6c09d1f2587f2ddd538ff40bd6c082bd_sk | 5 + ...4df02c38e163f4ee8f99960a18ef6dc6b2440e1_sk | 5 + .../signcerts/peer0.org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 16 + .../peers/peer0.org1.example.com/tls/ca.crt | 16 + .../peer0.org1.example.com/tls/server.crt | 15 + .../peer0.org1.example.com/tls/server.key | 5 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 16 + ...ef49b656bdc3917ebc61266f6ded007f2688ad1_sk | 5 + ...1385cdce95df9b07d6a5bbdbf13bc756cf55b0e_sk | 5 + ...e3bd7a9e49c267e1e23051a4e432e8de254354d_sk | 5 + ...dd933cb3979bdfed05b78ea62e75704870f1de0_sk | 5 + ...ba3abe4cce67dd821dbf816a5dc905667ea49b0_sk | 5 + ...f17f9b24dd2ea8fd290c37bdbe462bee5df5d4b_sk | 5 + .../signcerts/peer1.org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 16 + .../peers/peer1.org1.example.com/tls/ca.crt | 16 + .../peer1.org1.example.com/tls/server.crt | 15 + .../peer1.org1.example.com/tls/server.key | 5 + ...c5f1ece6aefc6ccccc7c762e95608ae1e2fe1d7_sk | 5 + ...3f6b284cc579ae2e45c45e1ee5c9503cb0dc97f_sk | 5 + ...fc7d3fb4c66c4ef225f7ee1905ce3999937807b_sk | 5 + ...16ac20f2e35eaf63956c39f0981aa3836acd9c1_sk | 5 + ...169de5d5a4105393779db8db35efbc13a751a97_sk | 5 + ...9c50260313a7b52b4eae8fc255aa7a7bfee45b2_sk | 5 + .../tlsca/tlsca.org1.example.com-cert.pem | 16 + .../Admin@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 16 + ...9d7550b539eb9f09814cb05a9bf0a178c237124_sk | 5 + ...b8b17e25eae39e743018cb1d1c1f3bc171c64af_sk | 5 + ...5110ab9d87cb20a3353e7a40befd6fea1655672_sk | 5 + ...7b2c2fa42d6928b7a2b446d1e3f924e5d4a3254_sk | 5 + ...00185a5c514160ca5920419a26bde3ca4c87ffd_sk | 5 + ...1d256a51e9b92762498c2f6384e2c81faa99485_sk | 5 + .../signcerts/Admin@org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 16 + .../users/Admin@org1.example.com/tls/ca.crt | 16 + .../Admin@org1.example.com/tls/server.crt | 14 + .../Admin@org1.example.com/tls/server.key | 5 + .../User1@org1.example.com-cert.pem | 14 + .../msp/cacerts/ca.org1.example.com-cert.pem | 16 + ...66debbaa98b34a699be0a96df176396e57ead3e_sk | 5 + ...d0104dd51e9ecc028c8bc391ce06d4b19e78b83_sk | 5 + ...09ee742b23085d4493ead8327b090790b986f6c_sk | 5 + ...5a260d2c7c83d9dcfd6c66887a6c7589ecc21a5_sk | 5 + ...57961ca40e4ab96eff6221f2ddd4a663f76de04_sk | 5 + ...f6115af756846ba3c2ea9fba502bb8c3376032d_sk | 5 + .../signcerts/User1@org1.example.com-cert.pem | 14 + .../tlsca.org1.example.com-cert.pem | 16 + .../users/User1@org1.example.com/tls/ca.crt | 16 + .../User1@org1.example.com/tls/server.crt | 14 + .../User1@org1.example.com/tls/server.key | 5 + ...bd48380bf99d888571aa67759d7c8e03a1619ff_sk | 5 + ...83361f02edc8e7e3d885bd812d808872f856e37_sk | 5 + ...92407e86f372cd6742491c5af3a47fd46a66a5b_sk | 5 + ...622a7f598afd6d7b045b736a9b75d235649d9ac_sk | 5 + .../ca/ca.org2.example.com-cert.pem | 16 + ...a4ced7c0996c47edd0f42bdf508d5ed5348c7ec_sk | 5 + ...7f9479ecd41a4b48fe03a1a7ae1a367ee15ef26_sk | 5 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 16 + .../tlsca.org2.example.com-cert.pem | 16 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 16 + ...eecd63aef26ed776ea6a7b559f2e9bd4c75f3de_sk | 5 + ...8e246ddea6166e2abda7a610bc3e38f260c403b_sk | 5 + ...c779f6260fdd01377a81931a97d95c38f9a636d_sk | 5 + ...4008e378551e79e1160f641084fbed5cf865fac_sk | 5 + ...45813f486d51d25ca718d6c95d325a0d87fcb36_sk | 5 + ...0ece56341a3acb4c762c631be9e5874732275ba_sk | 5 + .../signcerts/peer0.org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 16 + .../peers/peer0.org2.example.com/tls/ca.crt | 16 + .../peer0.org2.example.com/tls/server.crt | 15 + .../peer0.org2.example.com/tls/server.key | 5 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 16 + ...4e47cd8f90ca30b1cb2acdc117e755c6680b49b_sk | 5 + ...28f9a309509d2adbbf6e6142fa9ecd4154db586_sk | 5 + ...226e1efd5789ece9966e15cb0fcae218124d9e4_sk | 5 + ...fed1db384d8fcb4ffbaed0e81cbf205e45964b3_sk | 5 + ...41dcb854beb69aada503029623d9c7e4285b833_sk | 5 + ...71c9cdb99c0e7139f007847d9990fb562caa388_sk | 5 + .../signcerts/peer1.org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 16 + .../peers/peer1.org2.example.com/tls/ca.crt | 16 + .../peer1.org2.example.com/tls/server.crt | 15 + .../peer1.org2.example.com/tls/server.key | 5 + ...4ba97941837e2d9292293efcb29fc39560cd9fa_sk | 5 + ...219fdf5eb45e65c2fa2d434bc577c69f75dd6a9_sk | 5 + ...0745317be97628e22487ef57ad651d9afb2bc29_sk | 5 + ...b93b9f0e6aaf4a9b8b1c95ec560d28b41440624_sk | 5 + ...979263920bcb9a89c3e18e7684bbf91b3fe4457_sk | 5 + ...c75d495f11d9048c78299cf1db61877484a59c2_sk | 5 + .../tlsca/tlsca.org2.example.com-cert.pem | 16 + .../Admin@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 16 + ...b6217e6b3b77b3650fdf66d1e6f8527b986e834_sk | 5 + ...07a3fa04f8745e395d090274936682ddb84ecc5_sk | 5 + ...d680df71a1da7645537d8a0d7b19cc28f49d20d_sk | 5 + ...6b9292df0dfd642064df99c922abbd65fd0eb7d_sk | 5 + ...b603fc4f79695ee7aa6626aae2b73cbe0ba22aa_sk | 5 + ...d00025672130bd788e9a7216810ba26ff6efde7_sk | 5 + .../signcerts/Admin@org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 16 + .../users/Admin@org2.example.com/tls/ca.crt | 16 + .../Admin@org2.example.com/tls/server.crt | 14 + .../Admin@org2.example.com/tls/server.key | 5 + .../User1@org2.example.com-cert.pem | 14 + .../msp/cacerts/ca.org2.example.com-cert.pem | 16 + ...b3e6926c18ce84cccce8219dfd9651583c8cf43_sk | 5 + ...58151034be8d069418edcb9d10ccce473fb36d8_sk | 5 + ...f0e28295cf91a5caceb7d73de438ae61ec46a5b_sk | 5 + ...61b1758bdc0572e4c0b3e79f2a436fdba5fbc45_sk | 5 + ...87a13a0455e92d44959940441c9f8ff24893db0_sk | 5 + ...58728f48366f6d466079a245090b99fc44e03fa_sk | 5 + .../signcerts/User1@org2.example.com-cert.pem | 14 + .../tlsca.org2.example.com-cert.pem | 16 + .../users/User1@org2.example.com/tls/ca.crt | 16 + .../User1@org2.example.com/tls/server.crt | 14 + .../User1@org2.example.com/tls/server.key | 5 + .../1.0.1/kafka/docker-compose-base.yaml | 99 ++ hyperledger/1.0.1/kafka/orderer-base.yaml | 35 + .../1.0.1/kafka/orderer-kafka-base.yaml | 59 ++ hyperledger/1.0.1/kafka/orderer-kafka.yaml | 209 ++++ hyperledger/1.0.1/kafka/peer-base.yaml | 41 + hyperledger/1.0.1/scripts/clean_env.sh | 26 + hyperledger/1.0.1/scripts/download_images.sh | 47 + .../1.0.1/scripts/download_official_images.sh | 42 + hyperledger/1.0.1/scripts/func.sh | 228 +++++ hyperledger/1.0.1/scripts/header.sh | 19 + hyperledger/1.0.1/scripts/initialize_all.sh | 59 ++ hyperledger/1.0.1/scripts/initialize_peer0.sh | 53 + hyperledger/1.0.1/scripts/setup_Docker.sh | 40 + hyperledger/1.0.1/scripts/test_cc_all.sh | 45 + hyperledger/1.0.1/scripts/test_cc_peer0.sh | 27 + hyperledger/1.0.1/scripts/test_lscc.sh | 59 ++ hyperledger/1.0.1/scripts/test_qscc.sh | 27 + 354 files changed, 9795 insertions(+) create mode 100644 hyperledger/1.0.1/Dockerfile create mode 100644 hyperledger/1.0.1/Makefile create mode 100644 hyperledger/1.0.1/README.md create mode 100644 hyperledger/1.0.1/artifacts_generation/add-org.sh create mode 100644 hyperledger/1.0.1/artifacts_generation/configtx.yaml create mode 100644 hyperledger/1.0.1/artifacts_generation/crypto-config.yaml create mode 100644 hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml create mode 100644 hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh create mode 100644 hyperledger/1.0.1/artifacts_generation/peer-base.yml create mode 100644 hyperledger/1.0.1/artifacts_generation/test-5-peers.sh create mode 100644 hyperledger/1.0.1/base.yaml create mode 100644 hyperledger/1.0.1/docker-compose-1peer.yaml create mode 100644 hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml create mode 100644 hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml create mode 100644 hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml create mode 100644 hyperledger/1.0.1/docker-compose-base.yaml create mode 100644 hyperledger/1.0.1/docker-compose-dev.yaml create mode 100644 hyperledger/1.0.1/docker-compose.yaml create mode 100644 hyperledger/1.0.1/docs/artifacts_generation.md create mode 100644 hyperledger/1.0.1/docs/chaincode_test.md create mode 100644 hyperledger/1.0.1/docs/configtxlator.md create mode 100644 hyperledger/1.0.1/docs/couchdb_usage.md create mode 100644 hyperledger/1.0.1/docs/detailed_steps.md create mode 100644 hyperledger/1.0.1/docs/docker-compose-1peer-usage.md create mode 100644 hyperledger/1.0.1/docs/events.md create mode 100644 hyperledger/1.0.1/docs/kafka_usage.md create mode 100644 hyperledger/1.0.1/docs/peer_cmds.md create mode 100644 hyperledger/1.0.1/docs/setup.md create mode 100644 hyperledger/1.0.1/docs/verification_test.md create mode 100644 hyperledger/1.0.1/e2e_cli/base/docker-compose-base.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/base/peer-base.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/channel-artifacts/Org1MSPanchors.tx create mode 100644 hyperledger/1.0.1/e2e_cli/channel-artifacts/Org2MSPanchors.tx create mode 100644 hyperledger/1.0.1/e2e_cli/channel-artifacts/channel.tx create mode 100644 hyperledger/1.0.1/e2e_cli/channel-artifacts/orderer.genesis.block create mode 100644 hyperledger/1.0.1/e2e_cli/configtx.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/2154dbdbd40ce79764ea957d136b0d5cadbfb14772f05fd2cf32cd0c32d69b77_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/387d53008fabbc444d59d777bee7303daa9c62125dc5e7086338cedd47ae498f_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/80a80ffac9c59d2e259b0d7c9f811c274e08b949930d761e0314982751bf85c1_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/a54bc31e91249b68eb23dc374296a4eda4fe8f0e229dcfb63770c7e45b96745f_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/99bd297aa7c0a5139386ce35b89c2524b5bc23fa9e6e0968c93cbcf27b2d10e4_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/a5b3e0ca079850544f7a1381629dada8e62bf2b5f180ac6e49c79a70c40858e2_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/c55d035fc8d7e68750c9e7001855786c12e356170090a2d3e4cd4477705b40dc_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d404db0397d50cf0b1a5d028561e78a2b47935e318ec1800de5fc5c164dae9ae_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/6200c95bc5314763ddca31ad86ce6f18989d35301fbdf10582e31a872da8200e_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/55f89f6171583cc40724941aa0954c8d339a2a293c5643a3217a55c6b14668cc_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/ec648ac689f099ccf1b79d56e17acad0701f44e9b6c08f99af1b7fb0220808e7_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/2c8b536d3fd4a3284adcbb885f423988e6037b16e2cba7e0c1ee2c074f8d1821_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/ed4e11d28881807d16d07609be517005a9905816bc2fc2ab3aece92e0daff4c8_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/37d54f666be5b439c52b5503cd8efaed2db1095645a9ec5a6ff6276ed6e24893_sk create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/e2e_cli/docker-compose-cli.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/docker-compose-couch.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/docker-compose-e2e-template.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/docker-compose-e2e.yaml create mode 100644 hyperledger/1.0.1/e2e_cli/download-dockerimages.sh create mode 100644 hyperledger/1.0.1/e2e_cli/end-to-end.rst create mode 100644 hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go create mode 100644 hyperledger/1.0.1/e2e_cli/generateArtifacts.sh create mode 100644 hyperledger/1.0.1/e2e_cli/network_setup.sh create mode 100644 hyperledger/1.0.1/e2e_cli/scripts/script.sh create mode 100644 hyperledger/1.0.1/kafka/README.md create mode 100644 hyperledger/1.0.1/kafka/channel-artifacts/.gitkeep create mode 100644 hyperledger/1.0.1/kafka/channel-artifacts/Org1MSPanchors.tx create mode 100644 hyperledger/1.0.1/kafka/channel-artifacts/Org2MSPanchors.tx create mode 100644 hyperledger/1.0.1/kafka/channel-artifacts/channel.tx create mode 100644 hyperledger/1.0.1/kafka/channel-artifacts/orderer.genesis.block create mode 100644 hyperledger/1.0.1/kafka/configtx.yaml create mode 100644 hyperledger/1.0.1/kafka/crypto-config.yaml create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/2158ff24382f92c1047c74fa7235402702fc8ffeae67a83436c4a4f9ec20dded_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/75ff05960380622bbf9d48d8d129ec0372768781af6b5a4434c3249b0c17bc7d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/97099c2e27158cfde1c77b9fef507a534f31012dbe24eba5e49b15bed1e6d1f3_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c12916a1498b69863172389ae62c7589585790483c17020bb31de091a0f00e84_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c4b143e84328c80799fb28b425c952867e16ed9dc1790ca5555a35ff7afcc741_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/f1cb4f803affb939be6963f7d6f1ae9e5ccdafb6a282e04331885fdf70b96580_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/04b68d50862a2c16091194b4c05138842fc7b2b4b7d4be28e5c7f5de481487cb_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4accda76c7e4f6b7f3a174e43551ea116cbf3fc6406f57d2c446cfd6f2022dfc_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4d366a301381abe330e69de838cc0cab955c36d2a8949184f8b1eb3d8e4b651f_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/566b973d148f0f09298ffb89af0f1a83dab18b1e2d70131e07db0984e37ec0f7_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/9167cdf0d3b6ac35b8c681fbff491efcd1e7ce674b0e174d1b7b9e85c39cbf6f_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/93903913a2803d8f637bd4fd1fe32b3f105c31b7b58f1f54022bc60ed7b99e3a_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/1c9862ed3913879d3bd470f5cac15cc9d17d7c2993943d7e5e2e36b9caf8f0e7_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/2c3fd6596ad20b357b9591bf403b7cd954bb784ba5472169e3ed54c11798c276_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/45a40947a791f50c3e8090fb908306c67c9f9071ee8c0b37abc8669807ad3310_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/800c6584058b7ffaa2536b972364f3eafc67c0b8db2e19884169d02cb0d12379_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/f3a49c2d1e90e3daab831574d5e8d7e3373997d70e55155476d5f62d6599ea31_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/fcffdc15ca7df2bdbe11d24107662323d9d3acdf3aebebd09e8c17249fe62149_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/0ed770f9bb7f25d45f89804b4361772f565f45161b58af5df2d4f64e85544e80_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/113241ad9ad238fd258b3c6fa263bc756df205830a597eac864e3db0e6e579ca_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/22f7c14ab62d494d1d3b3eabad8dcece2457344081b2bc46fa1cac47d65b08ea_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/2b34d7d3a4d682897a394cfa2d81abf5a9b17a077a0d6aa78266396c15782992_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/8c04a14b777a59d06f25adef0f91542f6d364bdab0914ed75cc6fe214ccb9a43_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c8acb05048ea62fdc3fa33fe8fd133a95ae4f5ee81969966d4ecbabe9904aa5f_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/1a6c36d84f0cd2a68a7d24fd8ed30e67bcd19de11bbda2a77cb2082e7a5b35a3_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/3224118885392ce40143f2b5faf1888f4c93b589084971374772ad42f4c56f55_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/6388390cde1d168e4c66aa239ab921949282c9b99dc5b1f9c6004e973ffc60f3_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/804fc57602f69e768225b237ab26602bf1978685c71f21583dcae9b3a62758ff_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/b1d0f83ac5915cd8774189dff876c4b942f9150518a01c34168df3c46f8aeeaa_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/baeffd99c1b833afce692f862fafcece575172be9b56b234d4b5591c196863cf_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/16b31ccf7c48c13962b7f14a12438dbde51f40a8f1d61bd4731269bba470531d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/91c49a763dff21a0e2021ed4b2a2b82a2c0cd9b0624693a00922f2ec5cd82a55_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ad22932ff75aff7c05a55fae56f0fdcbde054b857246752660a2fdd882e3df58_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/b5e4bc8ea78e144bc0df31b5a2f1412cedd11247f43139b269818d9ae3a4f290_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/e071f4b7d798f4f800d748378d4da08d6c09d1f2587f2ddd538ff40bd6c082bd_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ffd8d60634fcb634d609aac9f4df02c38e163f4ee8f99960a18ef6dc6b2440e1_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/5552770fb4c72c18986e3858cef49b656bdc3917ebc61266f6ded007f2688ad1_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/6c1f47cf5a8cb400ed40649441385cdce95df9b07d6a5bbdbf13bc756cf55b0e_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/89e91f55d8c510894d07f8096e3bd7a9e49c267e1e23051a4e432e8de254354d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ba5e4f730728cb7786f388d8cdd933cb3979bdfed05b78ea62e75704870f1de0_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/d7369ea2aec418078a9549c57ba3abe4cce67dd821dbf816a5dc905667ea49b0_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ff07675acec312e91b04f68abf17f9b24dd2ea8fd290c37bdbe462bee5df5d4b_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/03dd3eb3df361cb2b03b1b4d5c5f1ece6aefc6ccccc7c762e95608ae1e2fe1d7_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/4bd9b769f6cd494d4496ef25d3f6b284cc579ae2e45c45e1ee5c9503cb0dc97f_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/5801a6c74d8e058a619c662a2fc7d3fb4c66c4ef225f7ee1905ce3999937807b_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/60d8c53cfbb4a92636486e31516ac20f2e35eaf63956c39f0981aa3836acd9c1_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/6923935cc53f7df393ba29722169de5d5a4105393779db8db35efbc13a751a97_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/dbd6d3532436cfa82c3befffe9c50260313a7b52b4eae8fc255aa7a7bfee45b2_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/2c0962bf85c470ea588f397819d7550b539eb9f09814cb05a9bf0a178c237124_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/41e71f25ae5ee86c32c5e2ac6b8b17e25eae39e743018cb1d1c1f3bc171c64af_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/4ab0ed1559ab1eaade2b606655110ab9d87cb20a3353e7a40befd6fea1655672_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/93fdae58f7d454e1e532855697b2c2fa42d6928b7a2b446d1e3f924e5d4a3254_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d7dd76772f53f292152ee1a6100185a5c514160ca5920419a26bde3ca4c87ffd_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e68ec6bb62a3b154b14ec1f1c1d256a51e9b92762498c2f6384e2c81faa99485_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/027cfe37ed1af52026377b8a466debbaa98b34a699be0a96df176396e57ead3e_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/7c2cda80508c00a78065ded4fd0104dd51e9ecc028c8bc391ce06d4b19e78b83_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/973383c92351b301a2f11b67309ee742b23085d4493ead8327b090790b986f6c_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/9be95ba1e6b12122cbb797f535a260d2c7c83d9dcfd6c66887a6c7589ecc21a5_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/a9f743b2f929723b6352eed0657961ca40e4ab96eff6221f2ddd4a663f76de04_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/d8d10e43d1dc9a2ea8a351dacf6115af756846ba3c2ea9fba502bb8c3376032d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/13eebb6fd3b0093ba26645db1bd48380bf99d888571aa67759d7c8e03a1619ff_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/31f411e5c8e7b4f097e8e768483361f02edc8e7e3d885bd812d808872f856e37_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/41e2a9fe773818dbab4fde8b592407e86f372cd6742491c5af3a47fd46a66a5b_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/7992a74fa71a0ab2f566af954622a7f598afd6d7b045b736a9b75d235649d9ac_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca98b925d273f4b5ce01b4436a4ced7c0996c47edd0f42bdf508d5ed5348c7ec_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ea38f43dad0f3fefa6a474fc57f9479ecd41a4b48fe03a1a7ae1a367ee15ef26_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/06d545ce32b8d9082632e0b45eecd63aef26ed776ea6a7b559f2e9bd4c75f3de_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/4e4c930524bc57d68846dff168e246ddea6166e2abda7a610bc3e38f260c403b_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/588e8ab83f4c6780c327a01dcc779f6260fdd01377a81931a97d95c38f9a636d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/94c363b787d2ff1e4e952aafc4008e378551e79e1160f641084fbed5cf865fac_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/a23d070a0c8df7e00e14aced145813f486d51d25ca718d6c95d325a0d87fcb36_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/ac914bb735c28c4a5a239a26a0ece56341a3acb4c762c631be9e5874732275ba_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/0317248e84abfb5fa97dcffe14e47cd8f90ca30b1cb2acdc117e755c6680b49b_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/6ed86312ea37c35b45a7f564028f9a309509d2adbbf6e6142fa9ecd4154db586_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/98168d9730b96a4455877ba13226e1efd5789ece9966e15cb0fcae218124d9e4_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/9a8b1601aa8cddfaf92d3e259fed1db384d8fcb4ffbaed0e81cbf205e45964b3_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/d2e78901115e1c6a250caa60441dcb854beb69aada503029623d9c7e4285b833_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/e101ccce58875cb8d70643eff71c9cdb99c0e7139f007847d9990fb562caa388_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/6ed3dd5f388015c3ba05a311f4ba97941837e2d9292293efcb29fc39560cd9fa_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/b37caf3f495095298c7b5b858219fdf5eb45e65c2fa2d434bc577c69f75dd6a9_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/e86cb6b2485449789a053f66c0745317be97628e22487ef57ad651d9afb2bc29_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/ef9af7d5632031151ef073a27b93b9f0e6aaf4a9b8b1c95ec560d28b41440624_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/f97402ade798bafdc5f4c29c2979263920bcb9a89c3e18e7684bbf91b3fe4457_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/fa0a1549cd73038d94851954bc75d495f11d9048c78299cf1db61877484a59c2_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/0740166b539ae1324eb4c05e0b6217e6b3b77b3650fdf66d1e6f8527b986e834_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/101031194e48d64f37687efaa07a3fa04f8745e395d090274936682ddb84ecc5_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/327014641ce4d616b5891dad3d680df71a1da7645537d8a0d7b19cc28f49d20d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/96e5bae26172f5485af22d9356b9292df0dfd642064df99c922abbd65fd0eb7d_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/b59f545d2c3ea7e809039a180b603fc4f79695ee7aa6626aae2b73cbe0ba22aa_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/c3b5772133164a52525540d5ad00025672130bd788e9a7216810ba26ff6efde7_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/48a0bc215b85f8d8605c4a7d6b3e6926c18ce84cccce8219dfd9651583c8cf43_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/4ec60ac9a880a8f2ca815d80958151034be8d069418edcb9d10ccce473fb36d8_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/73926ac8778b85a0cadd9f871f0e28295cf91a5caceb7d73de438ae61ec46a5b_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/91902ced86b96a8aa7b07becd61b1758bdc0572e4c0b3e79f2a436fdba5fbc45_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b0702c3d4ace2cda99e04a3db87a13a0455e92d44959940441c9f8ff24893db0_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b097d1fc7ef937736d09627f158728f48366f6d466079a245090b99fc44e03fa_sk create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt create mode 100644 hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key create mode 100644 hyperledger/1.0.1/kafka/docker-compose-base.yaml create mode 100644 hyperledger/1.0.1/kafka/orderer-base.yaml create mode 100644 hyperledger/1.0.1/kafka/orderer-kafka-base.yaml create mode 100644 hyperledger/1.0.1/kafka/orderer-kafka.yaml create mode 100644 hyperledger/1.0.1/kafka/peer-base.yaml create mode 100644 hyperledger/1.0.1/scripts/clean_env.sh create mode 100644 hyperledger/1.0.1/scripts/download_images.sh create mode 100644 hyperledger/1.0.1/scripts/download_official_images.sh create mode 100644 hyperledger/1.0.1/scripts/func.sh create mode 100644 hyperledger/1.0.1/scripts/header.sh create mode 100644 hyperledger/1.0.1/scripts/initialize_all.sh create mode 100644 hyperledger/1.0.1/scripts/initialize_peer0.sh create mode 100644 hyperledger/1.0.1/scripts/setup_Docker.sh create mode 100644 hyperledger/1.0.1/scripts/test_cc_all.sh create mode 100644 hyperledger/1.0.1/scripts/test_cc_peer0.sh create mode 100644 hyperledger/1.0.1/scripts/test_lscc.sh create mode 100644 hyperledger/1.0.1/scripts/test_qscc.sh diff --git a/hyperledger/1.0.1/Dockerfile b/hyperledger/1.0.1/Dockerfile new file mode 100644 index 00000000..777eeb4a --- /dev/null +++ b/hyperledger/1.0.1/Dockerfile @@ -0,0 +1,24 @@ +# yeasy/hyperledger-fabric-peer:dev +# Dockerfile for developing Hyperledger peer image. This actually follow +# yeasy/hyperledger-fabric-peer image and add local source code to build the +# fabric binaries. +# Data is stored under /var/hyperledger/db and /var/hyperledger/production + +FROM yeasy/hyperledger-fabric-base:latest +LABEL maintainer "Baohua Yang " + +EXPOSE 7051 + +# ENV CORE_PEER_MSPCONFIGPATH $FABRIC_CFG_PATH/msp + +COPY $GOPATH/src/github.com/hyperledger/fabric /go/src/github.com/hyperledger/ + +# install fabric peer and copy sampleconfigs +RUN cd $FABRIC_ROOT/peer \ + && CGO_CFLAGS=" " go install -ldflags "$LD_FLAGS -linkmode external -extldflags '-static -lpthread'" \ + && go clean + +# This will start with joining the default chain "testchainid" +# Use `peer node start --peer-defaultchain=false` will join no channel by default. +# Then need to manually create a chain with `peer channel create -c test_chain`, then join with `peer channel join -b test_chain.block`. +CMD ["peer","node","start"] diff --git a/hyperledger/1.0.1/Makefile b/hyperledger/1.0.1/Makefile new file mode 100644 index 00000000..3664830c --- /dev/null +++ b/hyperledger/1.0.1/Makefile @@ -0,0 +1,117 @@ +COMPOSE_FILE="docker-compose-2orgs-4peers.yaml" +COMPOSE_DEV_FILE="docker-compose-dev.yaml" + +all: + @echo "Please make sure u have setup Docker and pulled images by 'make setup'." + sleep 2 + + @echo "Restarting network..." + make restart + + make init + sleep 2 + + make test_cc + sleep 1 + + make lscc + sleep 1 + + make qscc + sleep 1 + + make stop + +dev: + @echo "Please make sure u have setup Docker and pulled images by 'make setup'." + sleep 2 + + @echo "Restarting dev network..." + make dev_restart + + make dev_init + sleep 2 + + make test_peer0 + sleep 1 + + make lscc + sleep 1 + + make qscc + sleep 1 + + make dev_stop + +ready: + make stop + make start + sleep 3 + + make init + sleep 3 + + make test_cc + @echo "Now the fabric network is ready to play" + @echo "run 'make cli' to enter into the fabric-cli container." + @echo "run 'make stop' when done." + +setup: # setup the environment + bash scripts/setup_Docker.sh # Install Docker, Docker-Compose + bash scripts/download_images.sh # Pull required Docker images + +start: # bootup the fabric network + @echo "Start a fabric network with 2-org-4-peer" + docker-compose -f ${COMPOSE_FILE} up -d # Start a fabric network + +init: # initialize the fabric network + @echo "Install and instantiate cc example02 on the fabric network" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/initialize_all.sh" + +test_cc: # test chaincode + @echo "Invoke and query cc example02 on all peers" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_all.sh" + +test_peer0: # test single peer + @echo "Invoke and query cc example02 on single peer0" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_peer0.sh" + +qscc: # test qscc quries + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_qscc.sh" + +lscc: # test lscc quries + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_lscc.sh" + +stop: # stop the fabric network + @echo "Stop the fabric network" + docker-compose -f ${COMPOSE_FILE} down # Stop a fabric network + +restart: stop start + +clean: # clean up environment + @echo "Clean all images and containers" + bash scripts/clean_env.sh + +cli: # enter the cli container + docker exec -it fabric-cli bash + +ps: # show existing docker images + docker ps -a + +logs: # show logs + docker-compose -f ${COMPOSE_FILE} logs -f --tail 200 + +dev_start: # start fabric network for dev + @echo "Start a fabric network with 1 peer for dev" + docker-compose -f ${COMPOSE_DEV_FILE} up -d + +dev_init: # initialize the fabric network + @echo "Install and instantiate cc example02 on the fabric dev network" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/initialize_peer0.sh" + +dev_stop: # stop the fabric network for dev + @echo "Stop the fabric network with 1 peer for dev" + docker-compose -f ${COMPOSE_DEV_FILE} down + +dev_restart: dev_stop dev_start + diff --git a/hyperledger/1.0.1/README.md b/hyperledger/1.0.1/README.md new file mode 100644 index 00000000..261ccc54 --- /dev/null +++ b/hyperledger/1.0.1/README.md @@ -0,0 +1,144 @@ +# Hyperledger fabric 1.0 + +Here we show steps on how to setup a fabric 1.0 network on Linux (e.g., Ubuntu/Debian), and then use it to run chaincode tests. + +If you're not familiar with Docker and Blockchain technology yet, feel free to have a look at 2 books (in CN): + +* [Docker Practice](https://github.com/yeasy/docker_practice) +* [Blockchain Guide](https://github.com/yeasy/blockchain_guide) + + +## Pass-through + +The following command will run the entire process (start a fabric network, create channel, test chaincode and stop it.) pass-through. + +```sh +$ make setup # install docker/compose, and pull required images +$ make all +``` + +tldr :) + +`make all` actually call following command sequentially. + +* `make start` +* `make init` +* `make test_cc` +* `make stop` + +Otherwise, if u wanna know more or run the command manually, then go on reading the following part. + +## Environment Setup + +The following scripts will setup the environment by installing Docker, Docker-Compose and download required docker images. + +```sh +$ make setup # setup environment +``` + +If you want to setup the environment manually, then have a look at [manually setup](docs/setup.md). + +## Bootup Fabric Network + +Start a 4 peer (belonging to 2 organizations) fabric network. + +```sh +$ make start # Start a fabric network +``` +The script actually uses docker-compose to boot up the fabric network with several containers. + +There will be 7 running containers, include 4 peers, 1 cli, 1 ca and 1 orderer. + +```bash +$ make ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +1dc3f2557bdc hyperledger/fabric-tools "bash -c 'while tr..." 25 minutes ago Up 25 minutes fabric-cli +5e5f37a0ed3c hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:8051->7051/tcp, 0.0.0.0:8052->7052/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com +6cce94da6392 hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:9051->7051/tcp, 0.0.0.0:9052->7052/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com +e36c5e8d56c5 hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:7051-7053->7051-7053/tcp peer0.org1.example.com +1fdd3d2b6527 hyperledger/fabric-orderer "orderer start" 25 minutes ago Up 25 minutes 0.0.0.0:7050->7050/tcp orderer.example.com +8af323340651 hyperledger/fabric-ca "fabric-ca-server ..." 25 minutes ago Up 25 minutes 0.0.0.0:7054->7054/tcp fabric-ca +e41d8bca7fe5 hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:10051->7051/tcp, 0.0.0.0:10052->7052/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com +``` + +### Initialize Fabric network + +```bash +$ make init # Start a fabric network +``` + +The command actually calls the `./scripts/initialize.sh` script in the `fabric-cli` container to: + +* create a new application channel `businesschannel` +* join all peers into the channel +* install and instantiate chaincode `example02` for testing + +This script only needs to be executed once. + +You should see result like the following if the initialization is successful. + +```bash +============================================== +==========initialize businesschannel========== +============================================== + +Channel name : businesschannel +Creating channel... + +... + +===================== All GOOD, initialization completed ===================== +``` + +And there will be new chaincode container generated in the system, looks like + +```bash +$ make ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +9971c9fd1971 dev-peer1.org2.example.com-mycc-1.0 "chaincode -peer.a..." 54 seconds ago Up 53 seconds dev-peer1.org2.example.com-mycc-1.0 +e3092961b81b dev-peer1.org1.example.com-mycc-1.0 "chaincode -peer.a..." About a minute ago Up About a minute dev-peer1.org1.example.com-mycc-1.0 +57d3555f56e5 dev-peer0.org2.example.com-mycc-1.0 "chaincode -peer.a..." About a minute ago Up About a minute dev-peer0.org2.example.com-mycc-1.0 +c9974dbc21d9 dev-peer0.org1.example.com-mycc-1.0 "chaincode -peer.a..." 23 minutes ago Up 23 minutes dev-peer0.org1.example.com-mycc-1.0 +``` + + +## Test Chaincode + +```bash +$ make test_cc # test invoke and query with chaincode +``` + +More details, see [chaincode test](docs/chaincode_test.md). + + +## Stop the network + +```bash +$ make stop # stop the fabric network +``` + +## Clean environment + +Clean all related containers and images. + +```bash +$ make clean # clean the environment +``` + +## More to learn + +Topics | Description +-- | -- +[Detailed Explanation](./docs/detailed_steps.md) | Explain in detail how a 1-peer network start and test. +[Fetch blocks](docs/peer_cmds.md) | Fetch blocks using `peer channel fetch` cmd. +[Use Events](./docs/events.md) | Get events with block-listener +[Artifacts Generation](docs/artifacts_generation.md) | Will explain the usage of `cryptogen` and `configtxgen` to prepare the artifacts for booting the fabric network. +[couchDB](docs/couchdb_usage.md) | Use couchDB as the state DB. +[kafka](./kafka/README.md) | Use kafka as the orderering backend +[configtxlator](docs/configtxlator.md) | Use configtxlator to convert the configurations +[WIP] [Some verification tests](docs/verification_test.md) | + + +## Acknowledgement +* [Hyperledger Fabric](https://github.com/hyperledger/fabric/) project. +* [Hyperledger Fabric Getting Started](http://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html). diff --git a/hyperledger/1.0.1/artifacts_generation/add-org.sh b/hyperledger/1.0.1/artifacts_generation/add-org.sh new file mode 100644 index 00000000..960462ca --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/add-org.sh @@ -0,0 +1,28 @@ +#! /bin/bash + +echo "replace configtx.yaml and crypto-config.yaml" +cp ./peer/example2/configtx.yaml ./peer +cp ./peer/example2/crypto-config.yaml ./peer + +echo "replace auto-test script " +cp ./peer/example2/new-channel-auto-test-5-peers.sh ./peer/scripts + +echo "replace configtx.yaml" +cp ./peer/configtx.yaml /etc/hyperledger/fabric + +echo "Generate new certificates" + +cryptogen generate --config=./peer/crypto-config.yaml --output ./peer/crypto + +echo "Generate new certificates" +configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./peer/channel-artifacts/orderer_genesis.block + +echo "Create the configuration tx" +CHANNEL_NAME=newchannel +configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./peer/channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} + +echo "Define the anchor peer for Org1 on the channel" +configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./peer/channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP +configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./peer/channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP +configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./peer/channel-artifacts/Org3MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org3MSP + diff --git a/hyperledger/1.0.1/artifacts_generation/configtx.yaml b/hyperledger/1.0.1/artifacts_generation/configtx.yaml new file mode 100644 index 00000000..ca067b6c --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/configtx.yaml @@ -0,0 +1,216 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +--- +################################################################################ +# +# Profile +# +# - Different configuration profiles may be encoded here to be specified +# as parameters to the configtxgen tool +# +################################################################################ +Profiles: + + TwoOrgsOrdererGenesis: + Orderer: + <<: *OrdererDefaults + Organizations: + - *OrdererOrg + Consortiums: + SampleConsortium: + Organizations: + - *Org1 + - *Org2 + - *Org3 + TwoOrgsChannel: + Consortium: SampleConsortium + Application: + <<: *ApplicationDefaults + Organizations: + - *Org1 + - *Org2 + - *Org3 + +################################################################################ +# +# Section: Organizations +# +# - This section defines the different organizational identities which will +# be referenced later in the configuration. +# +################################################################################ +Organizations: + + # SampleOrg defines an MSP using the sampleconfig. It should never be used + # in production but may be used as a template for other definitions + - &OrdererOrg + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: OrdererOrg + + # ID to load the MSP definition as + ID: OrdererMSP + + # MSPDir is the filesystem path which contains the MSP configuration + MSPDir: crypto-config/ordererOrganizations/example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + - &Org1 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org1MSP + + # ID to load the MSP definition as + ID: Org1MSP + + MSPDir: crypto-config/peerOrganizations/org1.example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org1.example.com + Port: 7051 + + - &Org2 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org2MSP + + # ID to load the MSP definition as + ID: Org2MSP + + MSPDir: crypto-config/peerOrganizations/org2.example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org2.example.com + Port: 7051 + + - &Org3 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org3MSP + + # ID to load the MSP definition as + ID: Org3MSP + + MSPDir: crypto-config/peerOrganizations/org3.example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org3.example.com + Port: 7051 + +################################################################################ +# +# SECTION: Orderer +# +# - This section defines the values to encode into a config transaction or +# genesis block for orderer related parameters +# +################################################################################ +Orderer: &OrdererDefaults + + # Orderer Type: The orderer implementation to start + # Available types are "solo" and "kafka" + OrdererType: solo + + Addresses: + - orderer.example.com:7050 + + # Batch Timeout: The amount of time to wait before creating a batch + BatchTimeout: 2s + + # Batch Size: Controls the number of messages batched into a block + BatchSize: + + # Max Message Count: The maximum number of messages to permit in a batch + MaxMessageCount: 10 + + # Absolute Max Bytes: The absolute maximum number of bytes allowed for + # the serialized messages in a batch. + AbsoluteMaxBytes: 99 MB + + # Preferred Max Bytes: The preferred maximum number of bytes allowed for + # the serialized messages in a batch. A message larger than the preferred + # max bytes will result in a batch larger than preferred max bytes. + PreferredMaxBytes: 512 KB + + Kafka: + # Brokers: A list of Kafka brokers to which the orderer connects + # NOTE: Use IP:port notation + Brokers: + - 127.0.0.1:9092 + + # Organizations is the list of orgs which are defined as participants on + # the orderer side of the network + Organizations: + +################################################################################ +# +# SECTION: Application +# +# - This section defines the values to encode into a config transaction or +# genesis block for application related parameters +# +################################################################################ +Application: &ApplicationDefaults + + # Organizations is the list of orgs which are defined as participants on + # the application side of the network + Organizations: diff --git a/hyperledger/1.0.1/artifacts_generation/crypto-config.yaml b/hyperledger/1.0.1/artifacts_generation/crypto-config.yaml new file mode 100644 index 00000000..636986fd --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/crypto-config.yaml @@ -0,0 +1,82 @@ +# --------------------------------------------------------------------------- +# "OrdererOrgs" - Definition of organizations managing orderer nodes +# --------------------------------------------------------------------------- +OrdererOrgs: + # --------------------------------------------------------------------------- + # Orderer + # --------------------------------------------------------------------------- + - Name: Orderer + Domain: example.com + # --------------------------------------------------------------------------- + # "Specs" - See PeerOrgs below for complete description + # --------------------------------------------------------------------------- + Specs: + - Hostname: orderer +# --------------------------------------------------------------------------- +# "PeerOrgs" - Definition of organizations managing peer nodes +# --------------------------------------------------------------------------- +PeerOrgs: + # --------------------------------------------------------------------------- + # Org1 + # --------------------------------------------------------------------------- + - Name: Org1 + Domain: org1.example.com + # --------------------------------------------------------------------------- + # "Specs" + # --------------------------------------------------------------------------- + # Uncomment this section to enable the explicit definition of hosts in your + # configuration. Most users will want to use Template, below + # + # Specs is an array of Spec entries. Each Spec entry consists of two fields: + # - Hostname: (Required) The desired hostname, sans the domain. + # - CommonName: (Optional) Specifies the template or explicit override for + # the CN. By default, this is the template: + # + # "{{.Hostname}}.{{.Domain}}" + # + # which obtains its values from the Spec.Hostname and + # Org.Domain, respectively. + # --------------------------------------------------------------------------- + # Specs: + # - Hostname: foo # implicitly "foo.org1.example.com" + # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above + # - Hostname: bar + # - Hostname: baz + # --------------------------------------------------------------------------- + # "Template" + # --------------------------------------------------------------------------- + # Allows for the definition of 1 or more hosts that are created sequentially + # from a template. By default, this looks like "peer%d" from 0 to Count-1. + # You may override the number of nodes (Count), the starting index (Start) + # or the template used to construct the name (Hostname). + # + # Note: Template and Specs are not mutually exclusive. You may define both + # sections and the aggregate nodes will be created for you. Take care with + # name collisions + # --------------------------------------------------------------------------- + Template: + Count: 2 + # Start: 5 + # Hostname: {{.Prefix}}{{.Index}} # default + # --------------------------------------------------------------------------- + # "Users" + # --------------------------------------------------------------------------- + # Count: The number of user accounts _in addition_ to Admin + # --------------------------------------------------------------------------- + Users: + Count: 1 + # --------------------------------------------------------------------------- + # Org2: See "Org1" for full specification + # --------------------------------------------------------------------------- + - Name: Org2 + Domain: org2.example.com + Template: + Count: 2 + Users: + Count: 1 + - Name: Org3 + Domain: org3.example.com + Template: + Count: 1 + Users: + Count: 1 diff --git a/hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml b/hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml new file mode 100644 index 00000000..b9d9e0ee --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml @@ -0,0 +1,94 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * ca +# * orderer +# * peer +# * sdk for testing + +version: '2.0' + +services: + ca: + image: hyperledger/fabric-ca + container_name: fabric-ca + hostname: ca + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer.example.com: # There can be multiple orderers + container_name: orderer.example.com + extends: + file: peer-base.yml + service: orderer.example.com + + peer0.org1.example.com: + extends: + file: peer-base.yml + service: peer0.org1.example.com + container_name: peer0.org1.example.com + + peer1.org1.example.com: + extends: + file: peer-base.yml + service: peer1.org1.example.com + container_name: peer1.org1.example.com + + peer0.org2.example.com: + extends: + file: peer-base.yml + service: peer0.org2.example.com + container_name: peer0.org2.example.com + + peer1.org2.example.com: + extends: + file: peer-base.yml + service: peer1.org2.example.com + container_name: peer1.org2.example.com + + peer0.org3.example.com: + extends: + file: peer-base.yml + service: peer0.org3.example.com + container_name: peer0.org3.example.com + + cli: + extends: + file: peer.yml + service: peer + container_name: fabric-cli + hostname: cli + environment: + - CORE_PEER_ID=cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + - CORE_PEER_TLS_ENABLED=false # to enable TLS, change to true + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + links: + - peer0.org1.example.com + - orderer.example.com + volumes: + #- ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./e2e_cli/crypto-config:/etc/hyperledger/fabric/crypto-config + - ./example2:/opt/gopath/src/github.com/hyperledger/fabric/peer/example2 + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./e2e_cli/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./e2e_cli/configtx.yaml:/opt/gopath/src/github.com/hyperledger/fabric/peer/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + command: bash -c 'while true; do sleep 20170504; done' + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh b/hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh new file mode 100644 index 00000000..c78bff00 --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh @@ -0,0 +1,103 @@ +#!/bin/bash +x +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +#set -e + +CHANNEL_NAME=$1 +: ${CHANNEL_NAME:="mychannel"} +echo $CHANNEL_NAME + +export FABRIC_ROOT=$PWD/../.. +export FABRIC_CFG_PATH=$PWD +echo + +OS_ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}') + +## Using docker-compose template replace private key file names with constants +function replacePrivateKey () { + ARCH=`uname -s | grep Darwin` + if [ "$ARCH" == "Darwin" ]; then + OPTS="-it" + else + OPTS="-i" + fi + + cp docker-compose-e2e-template.yaml docker-compose-e2e.yaml + + CURRENT_DIR=$PWD + cd crypto-config/peerOrganizations/org1.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA1_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml + cd crypto-config/peerOrganizations/org2.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA2_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml +} + +## Generates Org certs using cryptogen tool +function generateCerts (){ + CRYPTOGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/cryptogen + + if [ -f "$CRYPTOGEN" ]; then + echo "Using cryptogen -> $CRYPTOGEN" + else + echo "Building cryptogen" + make -C $FABRIC_ROOT release + fi + + echo + echo "##########################################################" + echo "##### Generate certificates using cryptogen tool #########" + echo "##########################################################" + $CRYPTOGEN generate --config=./crypto-config.yaml + echo +} + +## Generate orderer genesis block , channel configuration transaction and anchor peer update transactions +function generateChannelArtifacts() { + + CONFIGTXGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/configtxgen + if [ -f "$CONFIGTXGEN" ]; then + echo "Using configtxgen -> $CONFIGTXGEN" + else + echo "Building configtxgen" + make -C $FABRIC_ROOT release + fi + + echo "##########################################################" + echo "######### Generating Orderer Genesis block ##############" + echo "##########################################################" + # Note: For some unknown reason (at least for now) the block file can't be + # named orderer.genesis.block or the orderer will fail to launch! + $CONFIGTXGEN -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block + + echo + echo "#################################################################" + echo "### Generating channel configuration transaction 'channel.tx' ###" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org1MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org2MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP + echo +} + +generateCerts +replacePrivateKey +generateChannelArtifacts + diff --git a/hyperledger/1.0.1/artifacts_generation/peer-base.yml b/hyperledger/1.0.1/artifacts_generation/peer-base.yml new file mode 100644 index 00000000..f8845e69 --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/peer-base.yml @@ -0,0 +1,155 @@ +version: '2' + +services: + + orderer.example.com: # There can be multiple orderers + image: hyperledger/fabric-orderer + container_name: orderer.example.com + hostname: orderer.example.com + environment: + - ORDERER_GENERAL_LOGLEVEL=INFO + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_GENESISMETHOD=file + - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block #Need to be confirm orderer.block + - ORDERER_GENERAL_LOCALMSPID=OrdererMSP + - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp + - ORDERER_GENERAL_LEDGERTYPE=ram + - ORDERER_GENERAL_BATCHTIMEOUT=10s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENPORT=7050 + - ORDERER_RAMLEDGER_HISTORY_SIZE=100 + - ORDERER_GENERAL_TLS_ENABLED=false # to enable TLS, make this true + - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key + - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt + - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt] + ports: + - "7050:7050" + volumes: + - ./e2e_cli/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + command: orderer + + peer0.org1.example.com: + extends: + file: peer.yml + service: peer + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_GOSSIP_ORGLEADER=true + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 7051:7051 + - 7053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer1.org1.example.com: + extends: + file: peer.yml + service: peer + container_name: peer1.org1.example.com + hostname: peer1.org1.example.com + environment: + - CORE_PEER_ID=peer1.org1.example.com + - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 8051:7051 + - 8053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer0.org2.example.com: + extends: + file: peer.yml + service: peer + container_name: peer0.org2.example.com + hostname: peer0.org2.example.com + environment: + - CORE_PEER_ID=peer0.org2.example.com + - CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 9051:7051 + - 9053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer1.org2.example.com: + extends: + file: peer.yml + service: peer + container_name: peer1.org2.example.com + hostname: peer1.org2.example.com + environment: + - CORE_PEER_ID=peer1.org2.example.com + - CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 10051:7051 + - 10053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer0.org3.example.com: + extends: + file: peer.yml + service: peer + container_name: peer0.org3.example.com + hostname: peer0.org3.example.com + environment: + - CORE_PEER_ID=peer0.org3.example.com + - CORE_PEER_ADDRESS=peer0.org3.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.example.com:7051 + - CORE_PEER_LOCALMSPID=Org3MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 11051:7051 + - 11053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false diff --git a/hyperledger/1.0.1/artifacts_generation/test-5-peers.sh b/hyperledger/1.0.1/artifacts_generation/test-5-peers.sh new file mode 100644 index 00000000..3fb8a722 --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/test-5-peers.sh @@ -0,0 +1,247 @@ +#!/bin/bash + +echo +echo " ____ _____ _ ____ _____ _____ ____ _____ " +echo "/ ___| |_ _| / \ | _ \ |_ _| | ____| |___ \ | ____|" +echo "\___ \ | | / _ \ | |_) | | | _____ | _| __) | | _| " +echo " ___) | | | / ___ \ | _ < | | |_____| | |___ / __/ | |___ " +echo "|____/ |_| /_/ \_\ |_| \_\ |_| |_____| |_____| |_____|" +echo + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="testchannel"} +: ${TIMEOUT:="60"} +COUNTER=1 +MAX_RETRY=5 +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem + +echo "Channel name : "$CHANNEL_NAME + +verifyResult () { + if [ $1 -ne 0 ] ; then + echo "!!!!!!!!!!!!!!! "$2" !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +setGlobals () { + + if [ $1 -eq 0 -o $1 -eq 1 ] ; then + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + if [ $1 -eq 0 ]; then + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + fi + elif [ $1 -eq 4 ] ; then + CORE_PEER_LOCALMSPID="Org3MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp + CORE_PEER_ADDRESS=peer0.org3.example.com:7051 + else + CORE_PEER_LOCALMSPID="Org2MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp + if [ $1 -eq 2 ]; then + CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + fi + fi + + env |grep CORE +} + +createChannel() { + setGlobals 0 + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/channel.tx >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Channel creation failed" + echo "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== " + echo +} + +updateAnchorPeers() { + PEER=$1 + setGlobals $PEER + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Anchor peer update failed" + echo "===================== Anchor peers for org \"$CORE_PEER_LOCALMSPID\" on \"$CHANNEL_NAME\" is updated successfully ===================== " + echo +} + +## Sometimes Join takes time hence RETRY atleast for 5 times +joinWithRetry () { + peer channel join -b $CHANNEL_NAME.block >&log.txt + res=$? + cat log.txt + if [ $res -ne 0 -a $COUNTER -lt $MAX_RETRY ]; then + COUNTER=` expr $COUNTER + 1` + echo "PEER$1 failed to join the channel, Retry after 2 seconds" + sleep 2 + joinWithRetry $1 + else + COUNTER=1 + fi + verifyResult $res "After $MAX_RETRY attempts, PEER$ch has failed to Join the Channel" +} + +joinChannel () { + for ch in 0 1 2 3 4; do + setGlobals $ch + joinWithRetry $ch + echo "===================== PEER$ch joined on the channel \"$CHANNEL_NAME\" ===================== " + sleep 2 + echo + done +} + +installChaincode () { + PEER=$1 + setGlobals $PEER + peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt + res=$? + cat log.txt + verifyResult $res "Chaincode installation on remote peer PEER$PEER has Failed" + echo "===================== Chaincode is installed on remote peer PEER$PEER ===================== " + echo +} + +instantiateChaincode () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + else + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Chaincode instantiation on PEER$PEER on channel '$CHANNEL_NAME' failed" + echo "===================== Chaincode Instantiation on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +chaincodeQuery () { + PEER=$1 + echo "===================== Querying on PEER$PEER on channel '$CHANNEL_NAME'... ===================== " + setGlobals $PEER + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to Query PEER$PEER ...$(($(date +%s)-starttime)) secs" + peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Query Result/ {print $NF}') + test "$VALUE" = "$2" && let rc=0 + done + echo + cat log.txt + if test $rc -eq 0 ; then + echo "===================== Query on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + else + echo "!!!!!!!!!!!!!!! Query result on PEER$PEER is INVALID !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +chaincodeInvoke () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + else + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Invoke execution on PEER$PEER failed " + echo "===================== Invoke transaction on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +## Create channel +echo "Creating channel..." +createChannel + +## Join all the peers to the channel +echo "Having all peers join the channel..." +joinChannel + +## Set the anchor peers for each org in the channel +echo "Updating anchor peers using peer0/org1(peer0) for org1..." +updateAnchorPeers 0 +echo "Updating anchor peers using peer0/org2(peer2) for org2..." +updateAnchorPeers 2 + +updateAnchorPeers 4 + +## Install chaincode on Peer0/Org1 and Peer0/Org2 +echo "Installing chaincode on peer0/org1..." +installChaincode 0 +echo "Install chaincode on peer0/org2.." +installChaincode 2 +echo "Install chaincode on peer0/org3.." +installChaincode 4 + +#Instantiate chaincode on Peer0/Org2 +echo "Instantiating chaincode on peer0/org2..." +instantiateChaincode 2 + +#Query on chaincode on Peer0/Org1 +echo "Querying chaincode on peer0/org1..." +chaincodeQuery 0 100 + +#Invoke on chaincode on Peer0/Org1 +echo "Sending invoke transaction on peer0/org1..." +chaincodeInvoke 0 + +## Install chaincode on Peer1/Org2 +echo "Installing chaincode on peer1/org2..." +installChaincode 3 + +#Query on chaincode on Peer0/Org3, check if the result is 90 +echo "Querying chaincode on org2/peer1..." +chaincodeQuery 4 90 + +echo +echo "===================== All GOOD, End-2-End execution completed ===================== " +echo + +echo +echo " _____ _ _ ____ _____ ____ _____ " +echo "| ____| | \ | | | _ \ | ____| |___ \ | ____|" +echo "| _| | \| | | | | | _____ | _| __) | | _| " +echo "| |___ | |\ | | |_| | |_____| | |___ / __/ | |___ " +echo "|_____| |_| \_| |____/ |_____| |_____| |_____|" +echo + +exit 0 diff --git a/hyperledger/1.0.1/base.yaml b/hyperledger/1.0.1/base.yaml new file mode 100644 index 00000000..ef713428 --- /dev/null +++ b/hyperledger/1.0.1/base.yaml @@ -0,0 +1,133 @@ +# This is the default base file to config env and command +# Notice that chaincode is executed inside docker in default net mode +# https://github.com/yeasy/docker-compose-files + +# Depends on the hyperledger/fabric-peer image. + +version: '2' + +services: + ca-base: + #image: hyperledger/fabric-ca + image: yeasy/hyperledger-fabric-ca:1.0.1 + #image: hyperledger/fabric-ca:x86_64-1.0.1 + environment: + - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server + - FABRIC_CA_SERVER_TLS_ENABLED=true + + orderer-base: + image: yeasy/hyperledger-fabric-orderer:1.0.1 + #image: hyperledger/fabric-orderer:x86_64-1.0.1 + environment: + - ORDERER_GENERAL_LOGLEVEL=DEBUG + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_GENESISMETHOD=file + - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block + - ORDERER_GENERAL_LOCALMSPID=OrdererMSP + - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp + - ORDERER_GENERAL_LEDGERTYPE=file + - ORDERER_GENERAL_BATCHTIMEOUT=2s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENPORT=7050 + #- ORDERER_RAMLEDGER_HISTORY_SIZE=100 #only useful when use ram ledger + # enabled TLS + - ORDERER_GENERAL_TLS_ENABLED=true + - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key + - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt + - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt] + expose: + - "7050" # + command: orderer start + + peer-base: + image: yeasy/hyperledger-fabric-peer:1.0.1 + #image: hyperledger/fabric-peer:x86_64-1.0.1 + environment: + #- CORE_PEER_ID=peer0 + - CORE_PEER_ADDRESSAUTODETECT=false + - CORE_LOGGING_LEVEL=DEBUG + - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=101_default # uncomment this to use specific network + #- CORE_PEER_NETWORKID=dev + - CORE_PEER_GOSSIP_USELEADERELECTION=true + - CORE_PEER_GOSSIP_ORGLEADER=false # this node is the group leader, default to false + - CORE_PEER_PROFILE_ENABLED=false + - CORE_PEER_TLS_ENABLED=true + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + expose: + - "7050" # Rest + - "7051" # Grpc + - "7052" # Peer CLI + - "7053" # Peer Event + - "7054" # eCAP + - "7055" # eCAA + - "7056" # tCAP + - "7057" # eCAA + - "7058" # tlsCAP + - "7059" # tlsCAA + volumes: # docker.sock is mapped as the default CORE_VM_ENDPOINT + - /var/run/docker.sock:/var/run/docker.sock + #volumes: + # - /var/run/:/host/var/run/ + command: peer node start + + peer-base-dev: + image: yeasy/hyperledger-fabric:1.0.1 + environment: + #- CORE_PEER_ID=peer0 + - CORE_PEER_ADDRESSAUTODETECT=false + - CORE_LOGGING_LEVEL=DEBUG + - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=101_default # uncomment this to use specific network + #- CORE_PEER_NETWORKID=dev + - CORE_PEER_GOSSIP_USELEADERELECTION=true + - CORE_PEER_GOSSIP_ORGLEADER=false # this node is the group leader, default to false + - CORE_PEER_PROFILE_ENABLED=false + - CORE_PEER_TLS_ENABLED=true + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + expose: + - "7050" # Rest + - "7051" # Grpc + - "7052" # Peer CLI + - "7053" # Peer Event + - "7054" # eCAP + - "7055" # eCAA + - "7056" # tCAP + - "7057" # eCAA + - "7058" # tlsCAP + - "7059" # tlsCAA + volumes: # docker.sock is mapped as the default CORE_VM_ENDPOINT + - /var/run/docker.sock:/var/run/docker.sock + #volumes: + # - /var/run/:/host/var/run/ + command: bash -c 'bash /tmp/peer_build.sh; peer node start' + + cli-base: + image: yeasy/hyperledger-fabric:1.0.1 + #image: hyperledger/fabric-tools:x86_64-1.0.1 + tty: true + environment: + #- GOPATH=/opt/gopath + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_TLS_ENABLED=true # to enable TLS, change to true + - ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + - CHANNEL_NAME:="businesschannel" + volumes: + #- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./scripts:/tmp/scripts + - ./e2e_cli/channel-artifacts:/tmp/channel-artifacts + - ./e2e_cli/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto + - ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'while true; do sleep 20170504; done' + + couchdb-base: + #container_name: couchdb0 + image: hyperledger/fabric-couchdb:x86-64-1.0.1 + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. diff --git a/hyperledger/1.0.1/docker-compose-1peer.yaml b/hyperledger/1.0.1/docker-compose-1peer.yaml new file mode 100644 index 00000000..e9d9c114 --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-1peer.yaml @@ -0,0 +1,34 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 1 peers in 1 orgs +# * cli for testing + +version: '2.0' + +services: + ca: + extends: + file: docker-compose-base.yaml + service: ca + + cli: + extends: + file: docker-compose-base.yaml + service: cli + + orderer.example.com: # There can be multiple orderers + extends: + file: docker-compose-base.yaml + service: orderer.example.com + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml b/hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml new file mode 100644 index 00000000..9c06add8 --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml @@ -0,0 +1,63 @@ + +version: '2' + +services: + couchdb0: + container_name: couchdb0 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "5984:5984" + + peer0.org1.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984 + depends_on: + - couchdb0 + + couchdb1: + container_name: couchdb1 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "6984:5984" + + peer1.org1.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1:5984 + depends_on: + - couchdb1 + + couchdb2: + container_name: couchdb2 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "7984:5984" + + peer0.org2.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb2:5984 + depends_on: + - couchdb2 + + couchdb3: + container_name: couchdb3 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "8984:5984" + + peer1.org2.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb3:5984 + depends_on: + - couchdb3 diff --git a/hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml b/hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml new file mode 100644 index 00000000..d74cfeca --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml @@ -0,0 +1,127 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 4 peers in 2 orgs +# * cli for testing + +version: '2.0' + +services: + ca: + image: yeasy/hyperledger-fabric-ca:1.0.1 + container_name: fabric-ca + hostname: ca + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer.example.com: # There can be multiple orderers + extends: + file: docker-compose-base.yaml + service: orderer.example.com + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org2.example.com + + cli: + container_name: fabric-cli + hostname: fabric-cli + image: yeasy/hyperledger-fabric:1.0.1 + tty: true + environment: + - CORE_PEER_ID=fabric-cli + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_ENABLED=false # event-listener doesn't support TLS + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + #- ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./e2e_cli/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./e2e_cli/crypto-config:/etc/hyperledger/fabric/crypto-config + - ./e2e_cli/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/etc/hyperledger/fabric/peer/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + links: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'while true; do sleep 20170504; done' + + event-listener: + container_name: fabric-event-listener + hostname: fabric-event-listener + image: yeasy/hyperledger-fabric:1.0.1 + tty: true + environment: + - CORE_PEER_ID=fabric-event-listener + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_ENABLED=false # event-listener doesn't support TLS + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + #- ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./e2e_cli/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./e2e_cli/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + links: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'block-listener -events-address=peer0.org1.example.com:7053 -events-mspdir=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/ -events-mspid=Org1MSP' + +#networks: +# default: +# external: +# name: hyperledger_fabric +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml b/hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml new file mode 100644 index 00000000..b11e357c --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml @@ -0,0 +1,56 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 4 peers in 2 orgs +# * cli for testing + +version: '2.0' + +services: + ca.org1.example.com: + extends: + file: docker-compose-base.yaml + service: ca.org1.example.com + + ca.org2.example.com: + extends: + file: docker-compose-base.yaml + service: ca.org2.example.com + + cli: + extends: + file: docker-compose-base.yaml + service: cli + + orderer.example.com: # There can be multiple orderers + extends: + file: docker-compose-base.yaml + service: orderer.example.com + + + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org2.example.com + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose-base.yaml b/hyperledger/1.0.1/docker-compose-base.yaml new file mode 100644 index 00000000..e2686cc2 --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-base.yaml @@ -0,0 +1,168 @@ +# Base compose files for: + +# ca +# orderer.example.com +# cli +# peer0.org1.example.com +# peer1.org1.example.com +# peer0.org2.example.com +# peer1.org2.example.com + + +version: '2' # v3 does not support 'extends' yet + +services: + ca.org1.example.com: + #image: yeasy/hyperledger-fabric-ca:1.0.1 + #image: hyperledger/fabric-ca:x86_64-1.0.1 + extends: + file: base.yaml + service: ca-base + container_name: ca.org1.example.com + hostname: ca.org1.example.com + environment: + - FABRIC_CA_SERVER_CA_NAME=ca-org1 + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk + ports: + - "7054:7054" + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk -b admin:adminpw -d' + + ca.org2.example.com: + #image: yeasy/hyperledger-fabric-ca:1.0.1 + #image: hyperledger/fabric-ca:x86_64-1.0.1 + extends: + file: base.yaml + service: ca-base + container_name: ca.org2.example.com + hostname: ca.org2.example.com + environment: + - FABRIC_CA_SERVER_CA_NAME=ca-org2 + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk + ports: + - "8054:7054" + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk -b admin:adminpw -d' + + + orderer.example.com: # There can be multiple orderers + extends: + file: base.yaml + service: orderer-base + container_name: orderer.example.com + hostname: orderer.example.com + ports: + - "7050:7050" + volumes: + - ./e2e_cli/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + command: orderer start + + cli: + #image: yeasy/hyperledger-fabric:1.0.1 + #image: hyperledger/fabric-tools:x86_64-1.0.1 + extends: + file: base.yaml + service: cli-base + container_name: fabric-cli + hostname: fabric-cli + tty: true + environment: + #- GOPATH=/opt/gopath + - CORE_PEER_ID=fabric-cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + +## following are peer nodes ## + + peer0.org1.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 7051:7051 + - 7052:7052 + - 7053:7053 + + peer1.org1.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer1.org1.example.com + hostname: peer1.org1.example.com + environment: + - CORE_PEER_ID=peer1.org1.example.com + - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 8051:7051 + - 8052:7052 + - 8053:7053 + + peer0.org2.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer0.org2.example.com + hostname: peer0.org2.example.com + environment: + - CORE_PEER_ID=peer0.org2.example.com + - CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 9051:7051 + - 9052:7052 + - 9053:7053 + + peer1.org2.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer1.org2.example.com + hostname: peer1.org2.example.com + environment: + - CORE_PEER_ID=peer1.org2.example.com + - CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 10051:7051 + - 10052:7052 + - 10053:7053 diff --git a/hyperledger/1.0.1/docker-compose-dev.yaml b/hyperledger/1.0.1/docker-compose-dev.yaml new file mode 100644 index 00000000..101d574f --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-dev.yaml @@ -0,0 +1,84 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 1 peer +# * cli for testing + +version: '2.0' + +services: + ca.example.com: # not used currently + extends: + file: base.yaml + service: ca-base + container_name: ca.example.com + hostname: ca.example.com + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer.example.com: # There can be multiple orderers + extends: + file: base.yaml + service: orderer-base + container_name: orderer.example.com + hostname: orderer.example.com + ports: + - "7050:7050" + volumes: + - ./e2e_cli/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + command: orderer start + + cli: + #extends: + # file: peer-base-dev.yaml + # service: peer-base + #image: yeasy/hyperledger-fabric:1.0.1 + extends: + file: base.yaml + service: cli-base + container_name: fabric-cli + hostname: fabric-cli + tty: true + environment: + - CORE_PEER_ID=fabric-cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + - $GOPATH/src/github.com/hyperledger/fabric:/opt/gopath/src/github.com/hyperledger/fabric + - /tmp/:/tmp/ + + peer0.org1.example.com: + extends: + file: base.yaml + service: peer-base-dev + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 7051:7051 + - 7052:7052 + - 7053:7053 + command: bash -c 'bash /tmp/peer_build.sh; peer node start' + #command: peer node start + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose.yaml b/hyperledger/1.0.1/docker-compose.yaml new file mode 100644 index 00000000..b6f8de2a --- /dev/null +++ b/hyperledger/1.0.1/docker-compose.yaml @@ -0,0 +1,77 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * ca +# * orderer +# * peer +# * sdk for testing + +# all peers will join the default testchainid channel after bootup + +version: '2.0' + +services: + ca: + image: yeasy/hyperledger-fabric-ca:1.0.1 + container_name: fabric-ca + hostname: ca + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer0: # There can be multiple orderers + image: yeasy/hyperledger-fabric-orderer:1.0.1 + container_name: fabric-orderer0 + hostname: orderer0 + environment: + - ORDERER_GENERAL_LEDGERTYPE=file + - ORDERER_GENERAL_BATCHTIMEOUT=10s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_LISTENPORT=7050 + - ORDERER_RAMLEDGER_HISTORY_SIZE=100 + - CONFIGTX_ORDERER_ORDERERTYPE=solo + ports: + - "7050:7050" + command: orderer + + peer0: + extends: + file: peer-base.yaml + service: peer + container_name: fabric-peer0 + hostname: peer0 + environment: + - CORE_PEER_ID=peer0 + - CORE_PEER_GOSSIP_ORGLEADER=true + links: + - orderer0 + ports: + - 7051:7051 + depends_on: + - orderer0 + command: peer node start -o orderer0:7050 + + cli: + extends: + file: peer-base.yaml + service: peer + container_name: fabric-cli + hostname: cli + environment: + - CORE_PEER_ID=cli + - CORE_PEER_ADDRESS=peer0:7051 + #- CORE_PEER_LOCALMSPID=Org0MSP + links: + - peer0 + - orderer0 + depends_on: + - peer0 + - orderer0 + command: bash -c 'while true; do sleep 20170504; done' + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docs/artifacts_generation.md b/hyperledger/1.0.1/docs/artifacts_generation.md new file mode 100644 index 00000000..59345df4 --- /dev/null +++ b/hyperledger/1.0.1/docs/artifacts_generation.md @@ -0,0 +1,276 @@ +## Usage of cryptogen and configtxgen + +To bootup a fabric network, we need: + +* crypto_config: crypto keys/certs for all organizations, see `e2e_cli/crypto-config` +* orderer_genesis.block: genesis block to bootup orderer, see `e2e_cli/channel-artifacts` +* channel.tx: transaction to create an application channel, see `e2e_cli/channel-artifacts` +* Org1MSPanchors.tx, Org2MSPanchors.tx: Transaction to update anchor config in Org1 and Org2, see `e2e_cli/channel-artifacts` + +### Generate crypto-config using cryptogen + +```bash +$ cryptogen generate --config=/etc/hyperledger/fabric/crypto-config.yaml --output ./crypto-config +``` +cryptogen will read configuration from `crypto-config.yaml`, by default it was put under `/etc/hyperledger/fabric/`. + +Then put the generated `crypto-config` under `/etc/hyperledger/fabric/`. + + +### Generate blocks/txs using [configtxgen](http://hyperledger-fabric.readthedocs.io/en/latest/configtxgen.html?highlight=crypto#) + +By default, configtxgen will read configuration from `/etc/hyperledger/fabric/configtx.yaml`, Please customize the configtx.yaml file before running. + +#### Create orderer genesis block + +```bash +$ configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/orderer.genesis.block +``` + +#### Create channel transaction artifact + +```bash +$ CHANNEL_NAME=businesschannel +$ configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} +``` + +`channel.tx` is used for creating a new application channel `businesschannel` + +#### Update anchor peer for Organizations on the channel + +Choose peer peer0.org1.example.com as org1's anchor peer, and peer0.org2.example.com as org2's anchor peer. + +```bash +$ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP +``` + +```bash +$ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP +``` + +> more details refer to Example2 + +### Examples + +#### Example1: how to add and re-join a new channel + +This example will explain how to add a new channel without change basic topology that desigend in configtx.yaml and crypto-config.yaml. +start a fabric network with `docker-compose-1peer.yaml`, and into container fabric-cli + +* 1 Regenerate `channel.tx` using with new channel name + +Create channel configuration for the to-be-created `testchannel`. + +```bash +$ root@cli: CHANNEL_NAME=testchannel +$ root@cli: configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} +``` + +* 2 regenerate anchor peer configuratoin for Organizations + +```bash +$ root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP + +$ root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP +``` + +* (optional)execute auto-test script + + You can skip this step, this will quickly check whether the network works, and also you can verify manually. +```bash +$ root@cli: bash ./peer/scripts/test_1peer.sh testchannel +``` + +* 3 Create new channel + +```bash +$ root@cli: peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/channel.tx +``` + +check whether genrated new block `testchannel.block` + +```bash +root@cli: ls testchannel.block +testchannel.block +``` + +* 4 Join new channel + + Join peer0.org1.example.com to the new channel + +```bash +$ root@cli: peer channel join -b ${CHANNEL_NAME}.block -o orderer.example.com:7050 + +Peer joined the channel! +``` + +check whether success + +```bash +$ root@cli: peer channel list + +Channels peers has joined to: + testchannel +``` + +* 5 Update anchor peer + +```bash +$ root@cli: peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/Org1MSPanchors.tx +``` + +* 6 Install + +```bash +peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +``` + +* 7 Instantiate + +```bash +root@cli: peer chaincode instantiate -o orderer.example.com:7050 -C ${CHANNEL_NAME} -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member')" +``` + +* 8 Query + +```bash +root@cli: peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +The output should be: + +```bash +Query Result: 100 +UTC [main] main -> INFO 008 Exiting..... +``` + + + +#### Example2: how to add an organization or peer + +This example will explain how to add a new org or peer with changed the basic topology that desigend in configtx.yaml and crypto-config.yaml. + +##### all-in-one + +We privide some instance in current directory, in this case we add a new organization `Org3` and new peer `peer0.org3.example.com`. + +* 1 Generate necessary config and certs + +```bash +$ sudo docker-compose -f docker-compose-2orgs-4peers-event.yaml up +$ docker exec -it fabric-cli bash +$ root@cli: ./scripts/add-org.sh +``` + +> ** notice: For docker-compose-file clean, we did not mount these in the container, you need to mount yourself. + +* 2 Re-setup network + +```bash +echo "clean containers...." +docker rm -f `docker ps -aq` + +echo "clean images ..." +docker rmi -f `docker images|grep mycc-1.0|awk '{print $3}'` +``` + +```bash +$ sudo docker-compose -f docker-compose-2orgs-4peers-event.yaml up +``` + +* 3 execute auto-test + + Throuth this script to test whether the network works. +```bash +$ root@cli: bash ./scripts/test-5-peers.sh newchannel +``` + +The final output may look like following + +```bash +===================== Query on PEER4 on channel 'newchannel' is successful ===================== + +===================== All GOOD, End-2-End execution completed ===================== + +``` + + +##### manually + +* 1 Modify config + + modify configtx.yaml, crypto-cnfig.yaml and docker-compose files to adapt new change. and replace old file. + +* 2 Bootstrap network with `docker-compose-2orgs-4peers-event.yaml` + +```bash +$ docker-compose -f docker-compose-2orgs-4peers-event.yaml up +``` + +> notes:You may encounter some errors at startup and some peers can't start up, It's innocuous, ignore it, +because we will restart later, and now we just use tools in cli container. + + +* 3 Generate new certificates + +```bash +$ cryptogen generate --config=/etc/hyperledger/fabric/crypto-config.yaml --output ./crypto +``` + +* 4 Create the genesis block + +```bash +root@cli: configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/orderer_genesis.block +``` + +* 5 Create the configuration tx + +```bash +root@cli: CHANNEL_NAME=newchannel +root@cli: configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} +``` +`channel.tx` is used for generating new channel `newchannel` + +* 6 Define the anchor peer for Orgs on the channel + +```bash +root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP + +root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP + +root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org3MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org3MSP +``` + +* 7 Restart network + + As we have changed the configtx.yaml and regenerate `orderer_genesis.block`, + we'd better restart orderering service or all the service. + now we clean all the old service and boot a new network. + +```bash +echo "clean containers...." +docker rm -f `docker ps -aq` + +echo "clean images ..." +docker rmi -f `docker images|grep mycc-1.0|awk '{print $3}'` +``` + +```bash +$ sudo docker-compose -f docker-compose-2orgs.yml up +``` + +* 8 Execute auto-test script + + Until this step, we complete the network re-setup, and then we will test whether it works. + +```bash +$ root@cli: bash ./scripts/test-5-peers.sh +``` + +If the network works well. the output may looklike: + +```bash + +===================== All GOOD, End-2-End execution completed ===================== + +``` diff --git a/hyperledger/1.0.1/docs/chaincode_test.md b/hyperledger/1.0.1/docs/chaincode_test.md new file mode 100644 index 00000000..985d6fd6 --- /dev/null +++ b/hyperledger/1.0.1/docs/chaincode_test.md @@ -0,0 +1,35 @@ +## Chaincode Tests + +All the test command needs to be executed inside the `fabric-cli` container. + +Use the following command to login into the container fabric-cli + +```bash +$ docker exec -it fabric-cli bash +``` + +After finish the chaincode tests, you can log-out by `exit`. + + +### Chaincode Operations + +You can execute some chaincode operations, such as `query` or `invoke`, +and you can modify the parameters and execute this script repeatedly. + +```bash +$ bash ./scripts/test_4peers.sh #execute in container fabric-cli +``` + +You should see the following output: + +```bash +UTC [msp] GetLocalMSP -> DEBU 004 Returning existing local MSP +UTC [msp] GetDefaultSigningIdentity -> DEBU 005 Obtaining default signing identity +UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AB7070A6D08031A0C08C3EAE9C90510...6D7963631A0A0A0571756572790A0161 +UTC [msp/identity] Sign -> DEBU 007 Sign: digest: FA308EF50C4812BADB60D58CE15C1CF41089EFB93B27D46885D92C92F55E98A0 +Query Result: 80 +UTC [main] main -> INFO 008 Exiting..... +===================== Query on PEER3 on channel 'businesschannel' is successful ===================== + +===================== All GOOD, End-2-End execution completed ===================== +``` diff --git a/hyperledger/1.0.1/docs/configtxlator.md b/hyperledger/1.0.1/docs/configtxlator.md new file mode 100644 index 00000000..c9617b01 --- /dev/null +++ b/hyperledger/1.0.1/docs/configtxlator.md @@ -0,0 +1,195 @@ +## Start the configtxlator + +First start a fabric network with docker-compose-2orgs-4peers.yaml, and make sure the network can work, +then we will use `configtxlator` to start an http server listening on the designated port and process request. + +```bash +$ docker exec -it fab-cli bash +$ configtxlator start +UTC [configtxlator] startServer -> INFO 001 Serving HTTP requests on 0.0.0.0:7059 + +``` +This logs appears, indicating startup successful. + +## Function + +### translation + +#### /protolator/decode/{msgName} + +Any of the configuration related protos, including `common.Block`, `common.Envelope`, `common.ConfigEnvelope`, +`common.ConfigUpdateEnvelope`, `common.Configuration`, and `common.ConfigUpdate` are valid targets for these URLs. +this will produces human readable version of config, such as translate to json + +Execute following command in new terminal, +```bash +$ docker exec -it fabric-cli bash +$ cd channel-artifacts +$ curl -X POST --data-binary @businesschannel_0.block http://127.0.0.1:7059/protolator/decode/common.Block > businesschannel_0.json +``` + +for channel.tx, use following msgType. + +```bash +curl -X POST --data-binary @channel.tx http://127.0.0.1:7059/protolator/decode/common.Envelope > channel.json +``` + +#### /protolator/encode/{msgName} + +And we can transform json to proto. +```bash +$ curl -X POST --data-binary @businesschannel_0.json http://127.0.0.1:7059/protolator/encode/common.Block > businesschannel_0.block +``` + +### Re-Configuration example + +1. here we will introduce how to re-configuration config.block, first fetch the block and translate it to json. + +```bash +$ ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +$ peer channel fetch config -o orderer.example.com:7050 -c businesschannel --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA|xargs mv true config_block.pb + +$ peer channel fetch config config_block.pb -o orderer.example.com:7050 -c businesschannel # with no-tls + +$ curl -X POST --data-binary @config_block.pb http://127.0.0.1:7059/protolator/decode/common.Block > config_block.json +``` + +2. Extract the config section from the block: + +```bash +$ apt-get install jq +$ jq .data.data[0].payload.data.config config_block.json > config.json +``` + +3. edit the config.json, set the batch size to 11, and saving it as update_config.json + +```bash +4. $ jq ".channel_group.groups.Orderer.values.BatchSize.value.max_message_count = 11" config.json > updated_config.json +``` + +5. Re-encode both the original config, and the updated config into proto: + +```bash +$ curl -X POST --data-binary @config.json http://127.0.0.1:7059/protolator/encode/common.Config > config.pb +$ curl -X POST --data-binary @updated_config.json http://127.0.0.1:7059/protolator/encode/common.Config > updated_config.pb +``` + +6. send them to the configtxlator service to compute the config update which transitions between the two. + +```bash +$ curl -X POST -F original=@config.pb -F updated=@updated_config.pb http://127.0.0.1:7059/configtxlator/compute/update-from-configs -F channel=businesschannel > config_update.pb +``` + +7. we decode the ConfigUpdate so that we may work with it as text: +```bash +$ curl -X POST --data-binary @config_update.pb http://127.0.0.1:7059/protolator/decode/common.ConfigUpdate > config_update.json +``` + +8. Then, we wrap it in an envelope message: + +```bash +$ echo '{"payload":{"header":{"channel_header":{"channel_id":"businesschannel", "type":2}},"data":{"config_update":'$(cat config_update.json)'}}}' > config_update_as_envelope.json +``` + +9. Next, convert it back into the proto form of a full fledged config transaction: + +```bash +$ curl -X POST --data-binary @config_update_as_envelope.json http://127.0.0.1:7059/protolator/encode/common.Envelope > config_update_as_envelope.pb +```` + +10. Finally, submit the config update transaction to ordering to perform a config update. + +```bash +$ CORE_PEER_LOCALMSPID=OrdererMSP +$ CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp + +$ peer channel update -o orderer.example.com:7050 -c businesschannel -f config_update_as_envelope.pb --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA +$ peer channel update -f config_update_as_envelope.pb -o orderer.example.com:7050 -c businesschannel # with no-tls +``` + +### [WIP]Add an organization + +1. Execute `configtxgen` to generate `channel.tx` + +```bash +$ ORDERER_GENERAL_GENESISPROFILE=SampleDevModSolo #Change this env before start ordering service. +``` + +```bash +$ docker exec -it fabric-cli bash +$ configtxgen -profile SampleDevModSolo -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID businesschannel +``` + +2. create channel use channel.tx, then we will get block businesschannel.block + +```bash +$ peer channel create -o orderer.example.com:7050 -c businesschannel -f ./channel-artifacts/channel.tx +``` + +3. Start configtxlator + +```bash +$ docker exec -it fabric-cli bash +$ configtxlator start +``` + +4. In a new window, decoding current genesis block + +```bash +$ curl -X POST --data-binary @businesschannel.block http://127.0.0.1:7059/protolator/decode/common.Block > businesschannel.json +``` + +5. Extract current config + +```bash +jq .data.data[0].payload.data.config businesschannel.json > config.json +``` + +6. generating new config + +```bash +jq '. * {"channel_group":{"groups":{"Application":{"groups":{"ExampleOrg": .channel_group.groups.Application.groups.SampleOrg}}}}}' config.json | +jq '.channel_group.groups.Application.groups.ExampleOrg.values.MSP.value.config.name = "ExampleOrg"' > update_config.json +``` + +7. Translate config.json and update_config.json to proto + +```bash +curl -X POST --data-binary @config.json http://127.0.0.1:7059/protolator/encode/common.Config > config.pb +curl -X POST --data-binary @update_config.json http://127.0.0.1:7059/protolator/encode/common.Config > update_config.pb +``` + +8. Computing config update + +```bash +curl -X POST -F original=@config.pb -F updated=@update_config.pb http://127.0.0.1:7059/configtxlator/compute/update-from-configs -F channel=businesschannel > config_update.pb +``` + +9. Decoding config update + +```bash +curl -X POST --data-binary @config_update.pb http://127.0.0.1:7059/protolator/decode/common.ConfigUpdate > config_update.json +``` + +10. Generating config update envelope + +```bash +echo '{"payload":{"header":{"channel_header":{"channel_id":"businesschannel", "type":2}},"data":{"config_update":'$(cat config_update.json)'}}}' > config_update_in_envelope.json +``` + +11. Next, convert it back into the proto form of a full fledged config transaction: + +```bash +curl -X POST --data-binary @config_update_in_envelope.json http://127.0.0.1:7059/protolator/encode/common.Envelope > config_update_in_envelope.pb +``` + +12. Sending config update to channel + +```bash +$ CORE_PEER_LOCALMSPID=OrdererMSP +$ CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp + +$ peer channel update -o orderer.example.com:7050 -c businesschannel -f config_update_in_envelope.pb --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA +$ (optional)peer channel update -f config_update_as_envelope.pb -o orderer.example.com:7050 -c businesschannel # with no-tls +``` \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/couchdb_usage.md b/hyperledger/1.0.1/docs/couchdb_usage.md new file mode 100644 index 00000000..8708d9f9 --- /dev/null +++ b/hyperledger/1.0.1/docs/couchdb_usage.md @@ -0,0 +1,32 @@ + +### Start network with CouchDB + +```bash +docker-compose -f docker-compose-2orgs-4peers.yaml -f docker-compose-2orgs-4peers-couchdb.yaml up +``` + +To use CouchDB instead of the default database leveldb, The same chaincode functions are available with CouchDB, however, there is the +added ability to perform rich and complex queries against the state database +data content contingent upon the chaincode data being modeled as JSON + +### Test chaincode_example02 + +```bash +docker exec -it fabric-cli bash + +bash ./scripts/initialize.sh + +bash ./scripts/test_4peers.sh +``` + +You can use chaincode_example02 chaincode against the CouchDB state database +using the steps outlined above, however in order to exercise the CouchDB query +capabilities you will need to use a chaincode that has data modeled as JSON. +(e.g. marbles02) + +### [WIP] [Test example marbles02](https://github.com/hyperledger/fabric/blob/master/examples/chaincode/go/marbles02/marbles_chaincode.go) + +### Interact with CouchDb by WEB-UI + +The browser is `http://localhost:5984/_utils`, then you will find a database named `businesschannel` + \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/detailed_steps.md b/hyperledger/1.0.1/docs/detailed_steps.md new file mode 100644 index 00000000..1448f355 --- /dev/null +++ b/hyperledger/1.0.1/docs/detailed_steps.md @@ -0,0 +1,122 @@ +## Use default channel + +By default, all the peer will join the default chain of `testchainid`. + +```bash +$ docker exec -it fabric-cli bash +$ peer channel list +Channels peers has joined to: + testchainid +UTC [main] main -> INFO 001 Exiting..... +``` + +After the cluster is synced successfully, you can validate by install/instantiate, invoking or querying chaincode from the container or from the host. + +### install&instantiate +Use `docker exec -it fabric-cli bash` to open a bash inside container `fabric-cli`, which will accept our chaincode testing commands of `install&instantiate`, `invoke` and `query`. + +Inside the container, run the following command to install a new chaincode of the example02. The chaincode will initialize two accounts: `a` and `b`, with value of `100` and `200`. + +```bash +$ peer chaincode install -v 1.0 -n test_cc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +``` +This will take a while, and the result may look like following. + +```bash +[golang-platform] writeGopathSrc -> INFO 001 rootDirectory = /go/src +container] WriteFolderToTarPackage -> INFO 002 rootDirectory = /go/src +[main] main -> INFO 003 Exiting..... +``` + +Then instantiate the chaincode test_cc on defaule channel testchainid. +```bash +$ peer chaincode instantiate -v 1.0 -n test_cc -c '{"Args":["init","a","100","b","200"]}' -o orderer0:7050 +``` + +This will take a while, and the result may look like following: + +```bash +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc +UTC [main] main -> INFO 003 Exiting..... +``` + +There should be no error in the return log, and in the peer nodes's output. +Wait several seconds till the deploy is finished. + +If the `peer chaincode install` and `peer chaincode instantiate` commands are executed successfully, there will generate a new chaincode container, besides the 4 existing one, name like `dev-peer0-test_cc-1.0`. +```bash +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +cf7bf529f214 dev-peer0-test_cc-1.0 "chaincode -peer.a..." 58 seconds ago Up 58 seconds dev-peer0-test_cc-1.0 +44b6870b0802 hyperledger/fabric-peer "bash -c 'while tr..." 14 minutes ago Up 14 minutes 7050-7059/tcp fabric-cli +ed2c4927c0ed hyperledger/fabric-peer "peer node start -..." 14 minutes ago Up 14 minutes 7050/tcp, 7052-7059/tcp, 0.0.0.0:7051->7051/tcp fabric-peer0 +af5ba8f213bb hyperledger/fabric-orderer "orderer" 14 minutes ago Up 14 minutes 0.0.0.0:7050->7050/tcp fabric-orderer0 +bbe31b98445f hyperledger/fabric-ca "fabric-ca-server ..." 14 minutes ago Up 14 minutes 7054/tcp, 0.0.0.0:7054->7054/tcp fabric-ca + +``` + +And will also generate a new chaincode image, name like `dev-peer0-test_cc-1.0`. +```bash +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +dev-peer0-test_cc-1.0 latest 84e5422eead5 About a minute ago 176 MB +... +``` + +### Query +Inside the container, query the existing value of `a` and `b`. + +*Notice that the query method can be called by invoke a transaction.* + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","a"]}' +``` + +The final output may look like the following, with a payload value of `100`. + +```bash +Query Result: 100 +[main] main -> INFO 001 Exiting..... +``` + +Query the value of `b` + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","b"]}' -o orderer0:7050 +``` + +The final output may look like the following, with a payload value of `200`. + +```bash +Query Result: 200 +[main] main -> INFO 001 Exiting..... +``` + + +### Invoke +Inside the container, invoke a transaction to transfer `10` from `a` to `b`. + +```bash +$ peer chaincode invoke -n test_cc -c '{"Args":["invoke","a","b","10"]}' -o orderer0:7050 +``` + +The final result may look like the following, the response should be `OK`. + +```bash +[chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Invoke result: version:1 response: payload:"\n \215\263\337\322u\323?\242t$s\035l\270Ta\270\270+l6\322X\346\365k\020\215Phy\260\022C\n<\002\004lccc\001\007test_cc\004\001\001\001\001\000\000\007test_cc\002\001a\004\001\001\001\001\001b\004\001\001\001\001\002\001a\000\00290\001b\000\003210\000\032\003\010\310\001" endorsement: +[main] main -> INFO 002 Exiting..... +``` + +### Query +Query again the existing value of `a` and `b`. + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","a"]}' +``` +The new value of `a` should be 90. + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","b"]}' +``` +The new value of `b` should be 210. \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/docker-compose-1peer-usage.md b/hyperledger/1.0.1/docs/docker-compose-1peer-usage.md new file mode 100644 index 00000000..c73b58ac --- /dev/null +++ b/hyperledger/1.0.1/docs/docker-compose-1peer-usage.md @@ -0,0 +1,221 @@ +### Explain 1-peer usage step by step + +This section will show you how to operate the chaincode in detail. +first start fabric network with `docker-compose-1peer.yaml`, and we will obtain the basic environmet that can be operated. + +```bash +$ docker-compose -f docker-compose-1peer.yaml up +``` + +There will be 4 containers running successfully. + +```bash +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +6688f290a9b9 hyperledger/fabric-peer "bash -c 'while tr..." About a minute ago Up About a minute 7050-7059/tcp fabric-cli +6ddbbd972ac3 hyperledger/fabric-peer "peer node start -..." About a minute ago Up About a minute 7050/tcp, 0.0.0.0:7051->7051/tcp, 7052/tcp, 7054-7059/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com +4afc759e0dc9 hyperledger/fabric-orderer "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com +bea1154c7162 hyperledger/fabric-ca "fabric-ca-server ..." About a minute ago Up About a minute 7054/tcp, 0.0.0.0:7054->7054/tcp fabric-ca +``` + + +#### Create artifacts + +**This step can be safely skipped.**. + +As we already put the needed artifacts `orderer.genesis.block` and `channel.tx` under `e2e_cli/channel-artifacts/`. + +Detailed steps in [GenerateArtifacts](artifacts_generation.md) explains the creation of `orderer.genesis.block` (needed by orderering service) and `channel.tx` (needed by cli to create new channel) and crypto related configuration files. + +#### Create new channel + +Create a new channel named `mychannel` with the existing `channel.tx` file. + +```bash +$ docker exec -it fabric-cli bash +``` +Into the container and execute following commands: + +```bash +$ CHANNEL_NAME="businesschannel" +$ peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/channel.tx +``` +The cmd will return lots of info, which is the content of the configuration block. + +And a block with the same name of the channel will be created locally. + +```bash +$ ls businesschannel.block +businesschannel.block +``` + +Check the log output of `orderer.example.com`, should find some message like + +```bash +orderer.example.com | UTC [orderer/multichain] newChain -> INFO 004 Created and starting new chain newchannel +``` + +#### Join the channel + +Use the following command to join `peer0.org1.example.com` the channel + +```bash +$ peer channel join -b ${CHANNEL_NAME}.block + +Peer joined the channel! +``` + +Will receive the `Peer joined the channel!` response if succeed. + +Then use the following command, we will find the channels that peers joined. + +```bash +$ peer channel list +Channels peers has joined to: + mychannel +2017-04-11 03:44:40.313 UTC [main] main -> INFO 001 Exiting..... +``` + +#### Update anchor peers + +The `configtx.yaml` file contains the definitions for our sample network and presents the topology of the network components - three members (OrdererOrg, Org1 & Org2), But in this MVE, we just use OrdererOrg and Org1, org1 has only peer(pee0.org1), and chose it as anchor peers for Org1. + +```bash +$ peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/Org1MSPanchors.tx +``` + +#### Install&Instantiate + +First `install` a chaincode named `mycc` to `peer0`. + +```bash +$ peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +``` + +This will take a while, and the result may look like following. + +```bash +UTC [golang-platform] writeGopathSrc -> INFO 004 rootDirectory = /go/src +UTC [container] WriteFolderToTarPackage -> INFO 005 rootDirectory = /go/src +UTC [main] main -> INFO 006 Exiting..... +``` + +Then `instantiate` the chaincode mycc on channel `mychannel`, with initial args and the endorsement policy. + +```bash +$ peer chaincode instantiate -o orderer.example.com:7050 -C ${CHANNEL_NAME} -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member')" +``` + +This will take a while, and the result may look like following: + +```bash +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default escc +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 005 Using default vscc +UTC [main] main -> INFO 006 Exiting..... +``` + +Now in the system, there will be a new `dev-peer0.org1.example.com-mycc-1.0` image and a `dev-peer0.org1.example.com-mycc-1.0` chaincode container. + +```bash +crluser@baas-test2:~$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +7aa088c76597 dev-peer0.org1.example.com-mycc-1.0 "chaincode -peer.a..." 10 seconds ago Up 9 seconds dev-peer0.org1.example.com-mycc-1.0 +eb1d9c73b26b hyperledger/fabric-peer "bash -c 'while tr..." About a minute ago Up About a minute 7050-7059/tcp fabric-cli +2d6fd4f61e2b hyperledger/fabric-peer "peer node start -..." About a minute ago Up About a minute 7050/tcp, 0.0.0.0:7051->7051/tcp, 7052/tcp, 7054-7059/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com +832dcc64cc1b hyperledger/fabric-orderer "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com +c87095528f76 hyperledger/fabric-ca "fabric-ca-server ..." About a minute ago Up About a minute 7054/tcp, 0.0.0.0:7054->7054/tcp fabric-ca +``` + +#### Query + +Query the existing value of `a` and `b`. + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +The result may look like following, with a payload value of `100`. +```bash +Query Result: 100 +[main] main -> INFO 001 Exiting..... +``` + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +The result may look like following, with a payload value of `200`. + +```bash +Query Result: 200 +[main] main -> INFO 001 Exiting..... +``` + + +#### Invoke + +Inside the container, invoke a transaction to transfer `10` from `a` to `b`. + +```bash +$ peer chaincode invoke -o orderer.example.com:7050 -C ${CHANNEL_NAME} -n mycc -c '{"Args":["invoke","a","b","10"]}' +``` + +The result may look like following: + +```bash +UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Invoke result: version:1 response: payload:"\n qm\251\207\312\277\256\261b\317:\300\000\014\203`\005\304\254\304,$a\360\327\010\342\342/y]\323\022X\nQ\022\031\n\004lccc\022\021\n\017\n\007test_cc\022\004\010\001\020\001\0224\n\007test_cc\022)\n\t\n\001a\022\004\010\001\020\001\n\t\n\001b\022\004\010\001\020\001\032\007\n\001a\032\00290\032\010\n\001b\032\003210\032\003\010\310\001" endorsement:\277\251j\021$\250\237H\353\377\331:\230\362n\216\224~\033\240\006\367%\002 \014\240|h\346\250\356\372\353\301;#\372\027\276!\252F\334/\221\210\254\215\363\235\341v\217\236\274<" > +2017-04-06 09:47:15.993 UTC [main] main -> INFO 002 Exiting..... +``` + +#### Query + +And then query the value of `a` and `b`. + + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +```bash +Query Result: 90 +[main] main -> INFO 001 Exiting..... +``` +The value of `a` should be `90`. + + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","b"]}' +``` + +The value of `b` should be `210` + +```bash +Query Result: 210 +[main] main -> INFO 001 Exiting..... +``` + +Finally, the output of the chaincode containers may look like following. + +```bash +$ docker logs -f dev-peer0.org1.example.com-mycc-1.0 +ex02 Init +Aval = 100, Bval = 200 +ex02 Invoke +Query Response:{"Name":"a","Amount":"100"} +ex02 Invoke +Aval = 90, Bval = 210 +ex02 Invoke +Query Response:{"Name":"b","Amount":"210"} +ex02 Invoke +Query Response:{"Name":"a","Amount":"90"} + +``` + +#### (optional) All-in-one testing operation + +Run this script will check whether the MVE bootstrap success. + +```bash +$ docker exec -it fabric-cli bash +$ bash ./scripts/test_1peer.sh +``` \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/events.md b/hyperledger/1.0.1/docs/events.md new file mode 100644 index 00000000..a0e02dab --- /dev/null +++ b/hyperledger/1.0.1/docs/events.md @@ -0,0 +1,33 @@ +## Events +Events didn't support TLS, so make sure TLS has been disabled by setting *_TLS_ENABLED=false in peer-base.yaml and orderer-base.yaml +Next, start the network with following command: +```bash +$ bash scripts/start_fabric.sh docker-compose-2orgs-4peers-event.yaml +``` + +when the network starts successfully, we started a block-listener in container `fabric-event-listener`. +so observe the output of the service fabric-event-listener. + +Listening logs at a new terminal, + +```bash +$ docker logs -f fabric-event-listener +``` + +So when we do chaincode operations in container `fabric-cli`, + +```bash +$ docker exec -it fabric-cli bash +$ bash ./scripts/initialize.sh +``` + +then we will get some events at listening terminal looks like following: + +```bash +Received block +-------------- +Received transaction from channel businesschannel: + [header:_?EoLG{X zpC{zT!6;77UZPrCFkb~bel`Tj3>`kFxLS9n=MXi literal 0 HcmV?d00001 diff --git a/hyperledger/1.0.1/e2e_cli/channel-artifacts/Org2MSPanchors.tx b/hyperledger/1.0.1/e2e_cli/channel-artifacts/Org2MSPanchors.tx new file mode 100644 index 0000000000000000000000000000000000000000..fa63a85a3d4ba7accddb75a23514b2fcdedd460c GIT binary patch literal 296 zcmd;D%ETqgCCtI3#Gh1JoSBzeT%4Sdn3tEDBh<~r)xpGtAsj9g%Ej$iP>_?EoLG{X zpC{zT!6;77UZPrCFkb~bel`Tj7N4AR)?TC7v?G$4FH^)PHg}H literal 0 HcmV?d00001 diff --git a/hyperledger/1.0.1/e2e_cli/channel-artifacts/channel.tx b/hyperledger/1.0.1/e2e_cli/channel-artifacts/channel.tx new file mode 100644 index 0000000000000000000000000000000000000000..a0b869a636b56138cce06304dfabe87f3fbefd69 GIT binary patch literal 406 zcmd;@%*++f70baS#m2Gw|B|z;O8iNs#hH1j#l^`PiFtXcIa&^>#z_XrCMHIf7HP?b z$%ZDDiD^k`Cdn3-mS$;5mPRH<=835$hN&iICYDK-#wN*$CYGj_mWD~@7N$l?7N({` z>zTOLFma(9EaWew$;IthP>_?EoLG{XpC=?G#LdO-UzBd>8yq0S0Oc5gIZ{eoT+aD< z#rZ`gnWecxB0@r30>O#71v#k*QK{pMLJJsCjhw*9!HC;bB_%F4$CTX6yka2PHv9? literal 0 HcmV?d00001 diff --git a/hyperledger/1.0.1/e2e_cli/channel-artifacts/orderer.genesis.block b/hyperledger/1.0.1/e2e_cli/channel-artifacts/orderer.genesis.block new file mode 100644 index 0000000000000000000000000000000000000000..072fafb522e2599b7173a48a550f2725a5140dcd GIT binary patch literal 9068 zcmds-?ThQ!eaEw#&E3h_-J6Rh%kECobUURFtdrQ5CD|?na`Y_Qk}X-XEENi}o@Gn2 zE!(mMh1ZM@QE8_x+sT8E|>=uKOR~`TF$zAN|X3UVh`7Kh&M`AAJ8Gf8pQ1_rc`X z=|^hv8-Ir(f6am)vf$5Iumit#_R^!5E*_ly$xpufx1YIuZRKVwJFvnebl&?~t&L+i z(ZCu+6T|E1#3sC2tB$oMgzMtg#P)~@j=8pDO>oz3wHq}Y#n8Iz);w(Dw5$nofxO+A z{_dZCt9+1uV4><`&$9|`^aB1;LjN3`wa4XZ-H0)OUGThOXRoSLVo;t z0IuHlmp=0T=P$l{4n8do2go0sBi}klzIlG#zi<4(gD>yDNQM)ncPU0u1y-P-${bpO zCBV&lq zT#jAY+;-NBr45*Z+_ z7mW+j0V2fqH^ZTGhOFi?vws%m5ghE7#1G4llZG7WEBn__gsnp?bBtw0D3Snrt-QNm zqf+aWl)wlStD)_UM)%#Z*JZx15~U`SSp8J-cesRL2Z zfNGmCrzl36C}vDx1=Y%m|5u_JMIX0lxCk0Y(TF0WvD1k@Tg%*2;$f#blN)?DHH9Lo zQBXF7{cBLZp`mQkvJaWKs1#i@T4H0d!?v+zA73pd3x{@QjkX5YyH+0)r6d#VF-LHA zBM{q75(Ma?Wpb6ALbp88>!$X!UyQM$>6!ySU(!QW<+OiztOro$t0XLQpYN6$ z$T_eV%#{cz5yHHi9|9wil5-&~Q|U;Zplw;iac4@*M{Nepq;VImW}35WvDG0cik?K% zJw0yNIprVMRW56u!)62{!G}9}y&oLE$)JzOcsrbd2 zIL$eDaIDe|*xH1b4%ryoOve)yx@=zCN(ICZrlG=Iq9vjVJmDiv++_o@KX1(`HaKkKfU4<&?+gElikWZ{zB*|Q& zAe80AVQn=60y@z@+=WN2pEUb{Cbj-pa=+>>rFnZjq%gFo%?G899B_$E>7`ob(N*^okjz zuS`Zcng~OxWmBm%kvcpR4(-b!S?1aWtP(q0cY2{dp~pMVSMo&lLwsn8k`rJw+wl{i zO)6~uG^+TL0BMqiAp@stJl^4pEJp27tMt67J8Rp^OzY4cnV$xI(593S7sjc*!Ake( z=v*~-ngbGQxMOHxWwlB~r9+J@F&fSbu15*>!m2N_%^hO8cmSO^OtQ-ccvWA9D|eY8 zzk+=6?4^?a&X5P?@0ZU$b@32+{U)|u55mCJaO6GY-7@wIH^w|d9^M?Y$J8fNDXvu_ z<9}nS_pSzC{2Vx^0xL<}nNq^;GPGA=nq91e>Ja~gDTihgDXXs;IpJvg7PpdT;xsUwKMSO@#Dw!w;w-#_d4c_;Ppd{8pdwAULg;WSHR0?cIv;p zyk7d-$iuTwBjEJ@(aYB{?}5*evodp!tXb$-`wKb_@Y?=9q{~&fjx*$g3i1~f@Mvho^O^gk1Noy0@`rEk5#C4l zK>j;#UVLx`?Eid@{OBC{hw~?$fAhjbEAJDn8=n%bOzq?}42QD@&tYt>H#f~-x_w## z5m|ifv|bXceaJ*qAj%~tCt~W|@r2;>oI56E8Zg^~X*@gdIka*URsa(jOjoN6 z*TX91^)%Y5mT4%K)1(_DmDSqJ*rD1QMH5n8^()==rd_u^PwiK0Svy?Oh6x%ytR^Q} zldH=($$W8=cIppk4tvxoo4DCC-F_sFABpn7M0b*m~ODuPMfy?s$9I@H^GQA`7UVi(9YT^zUU%6J(KoGUH63v2UeW+K43DJ~^ZgdOd|L>{k+4urP zHv72M)XMp*y)I3fq{-Filj(C*Rf+{Xi|uc!C2=WhI5s&F;`6P_4)|hRA8uPSeHhlo z>Y@!2ZpATUyvoUQl8>aW*>$QYk&5ncnQ&UQS(CXP)!ZgKXMwjX9c8hqRXFPj+Jh29 zZn6D~(Eg?^z0bZu3uWJ{g}sM#JC30swMt`B64m6t@brVDO|Q6<{Edw+Y2@BjXVLK*Ib z;$81|6)1U%yxc~HB-(jT6H;`$kQUn02_SdMP2V4i8~nTF z3+NnUM3qgHto(@f6{BYc=X_vGqH5=Tbw@aZyhsYlqz?Q(mBcg8pYa>GKOopiJ(^N)k7Xm99~5&rD^elS7#eEqBrJ zr4`m=*$OpgRMZff-oh2I%+2IX5A~r-aDWjieA^}%W6?4^b66o((x|!9b;91prnfs( zlI|)bf%{aFZWoevJq@i@>s>Jg!_}@CvTdqwL@{h+I+m>yOyt)+=nNvo5B8O$XBLv! zas%xzM3k6{{$f2DiPr)Fq+CTG#}ecKl9t zo|AN_fR(JbhE)T1`JUg48cy|YrJbPhvi1Z%e-Zha66D{y0rIcyarKH1Z;m*j=sic& zPk@a4GV-(K6z|-a;tk}r>nWaW6s}qJkB@*_-vjEm-@N#@D?t6%bL5}Sksluc_0akL z3p0gWd>Bxn2iv^c+|HrKB;(1TwW-$X|1*~QRNeLYfO;$Ne;J@|?+d861MdTB8llR_Z@##a}OGE4Ay-aDl;OM)z0`KL!d)oziL{2`c@9u3EoDQ3A`0l|| zOUf&2t+_7i%F5Dlc(Bx4+9yr$!o!(C6fqp?4AZ9CoOJ{--Zl+~!YyJeT{VB2)?XxZADXnocz z7u}mtsVw;YV3co*wu7_ya1#&%!!f(9MYRCAH{$Etu(hPpTC~9=*TwESg!w3tx);h# zNFCT7Ut}HF?^WIYJeqCdO5m6K$Pd@re=3lA>-oP6Qf~#{ODsP{NWCQz<_<``6?`8^ z?XylxAgmmB5^;uZDb3w!t*V5oDbW$*#k9rvA=3%lo1{TS2}4h+ys=nzfLx5CnyzeO zDv)KK8{oD^2uo|s*^(D8`=1b`iX#Wst3thE@jw%k1d_qXG zHQIi@(rA8|R-0hgY)C!I+pREO8}W@*F>R4{7oVWK(sDbpvxp$ODwWp3Q{Ak|wX|k5 z3_b3~Og9gQ1PT;lqb`#{qHU8_+nnPkFFPz3A z2y#}U^DD^9$fr)1{M=y|Uk2|S%Fnd5vUn>C!o(l0mTP;pULLCAXFn;wK6m;%7Xo;6 zbwSW^mTp$=t`Ho#0B@(qfA9E;yFC<-zhbBHuQqFV?YS$t_$Bb@YC<^k)ACp$i1(Kc hu1@SuQa>%0BDg7&=%?e{32Uw=+#;8Vx%{{ne!-S_|i literal 0 HcmV?d00001 diff --git a/hyperledger/1.0.1/e2e_cli/configtx.yaml b/hyperledger/1.0.1/e2e_cli/configtx.yaml new file mode 100644 index 00000000..1ef7f325 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/configtx.yaml @@ -0,0 +1,153 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +--- +################################################################################ +# +# Profile +# +# - Different configuration profiles may be encoded here to be specified +# as parameters to the configtxgen tool +# +################################################################################ +Profiles: + + TwoOrgsOrdererGenesis: + Orderer: + <<: *OrdererDefaults + Organizations: + - *OrdererOrg + Consortiums: + SampleConsortium: + Organizations: + - *Org1 + - *Org2 + TwoOrgsChannel: + Consortium: SampleConsortium + Application: + <<: *ApplicationDefaults + Organizations: + - *Org1 + - *Org2 + +################################################################################ +# +# Section: Organizations +# +# - This section defines the different organizational identities which will +# be referenced later in the configuration. +# +################################################################################ +Organizations: + + # SampleOrg defines an MSP using the sampleconfig. It should never be used + # in production but may be used as a template for other definitions + - &OrdererOrg + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: OrdererOrg + + # ID to load the MSP definition as + ID: OrdererMSP + + # MSPDir is the filesystem path which contains the MSP configuration + MSPDir: crypto-config/ordererOrganizations/example.com/msp + + - &Org1 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org1MSP + + # ID to load the MSP definition as + ID: Org1MSP + + MSPDir: crypto-config/peerOrganizations/org1.example.com/msp + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org1.example.com + Port: 7051 + + - &Org2 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org2MSP + + # ID to load the MSP definition as + ID: Org2MSP + + MSPDir: crypto-config/peerOrganizations/org2.example.com/msp + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org2.example.com + Port: 7051 + +################################################################################ +# +# SECTION: Orderer +# +# - This section defines the values to encode into a config transaction or +# genesis block for orderer related parameters +# +################################################################################ +Orderer: &OrdererDefaults + + # Orderer Type: The orderer implementation to start + # Available types are "solo" and "kafka" + OrdererType: solo + + Addresses: + - orderer.example.com:7050 + + # Batch Timeout: The amount of time to wait before creating a batch + BatchTimeout: 2s + + # Batch Size: Controls the number of messages batched into a block + BatchSize: + + # Max Message Count: The maximum number of messages to permit in a batch + MaxMessageCount: 10 + + # Absolute Max Bytes: The absolute maximum number of bytes allowed for + # the serialized messages in a batch. + AbsoluteMaxBytes: 98 MB + + # Preferred Max Bytes: The preferred maximum number of bytes allowed for + # the serialized messages in a batch. A message larger than the preferred + # max bytes will result in a batch larger than preferred max bytes. + PreferredMaxBytes: 512 KB + + Kafka: + # Brokers: A list of Kafka brokers to which the orderer connects. Edit + # this list to identify the brokers of the ordering service. + # NOTE: Use IP:port notation. + Brokers: + - kafka0:9092 + - kafka1:9092 + - kafka2:9092 + - kafka3:9092 + + # Organizations is the list of orgs which are defined as participants on + # the orderer side of the network + Organizations: + +################################################################################ +# +# SECTION: Application +# +# - This section defines the values to encode into a config transaction or +# genesis block for application related parameters +# +################################################################################ +Application: &ApplicationDefaults + + # Organizations is the list of orgs which are defined as participants on + # the application side of the network + Organizations: diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config.yaml b/hyperledger/1.0.1/e2e_cli/crypto-config.yaml new file mode 100644 index 00000000..74e01beb --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config.yaml @@ -0,0 +1,93 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +# --------------------------------------------------------------------------- +# "OrdererOrgs" - Definition of organizations managing orderer nodes +# --------------------------------------------------------------------------- +OrdererOrgs: + # --------------------------------------------------------------------------- + # Orderer + # --------------------------------------------------------------------------- + - Name: Orderer + Domain: example.com + CA: + Country: US + Province: California + Locality: San Francisco + # --------------------------------------------------------------------------- + # "Specs" - See PeerOrgs below for complete description + # --------------------------------------------------------------------------- + Specs: + - Hostname: orderer +# --------------------------------------------------------------------------- +# "PeerOrgs" - Definition of organizations managing peer nodes +# --------------------------------------------------------------------------- +PeerOrgs: + # --------------------------------------------------------------------------- + # Org1 + # --------------------------------------------------------------------------- + - Name: Org1 + Domain: org1.example.com + CA: + Country: US + Province: California + Locality: San Francisco + # --------------------------------------------------------------------------- + # "Specs" + # --------------------------------------------------------------------------- + # Uncomment this section to enable the explicit definition of hosts in your + # configuration. Most users will want to use Template, below + # + # Specs is an array of Spec entries. Each Spec entry consists of two fields: + # - Hostname: (Required) The desired hostname, sans the domain. + # - CommonName: (Optional) Specifies the template or explicit override for + # the CN. By default, this is the template: + # + # "{{.Hostname}}.{{.Domain}}" + # + # which obtains its values from the Spec.Hostname and + # Org.Domain, respectively. + # --------------------------------------------------------------------------- + # Specs: + # - Hostname: foo # implicitly "foo.org1.example.com" + # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above + # - Hostname: bar + # - Hostname: baz + # --------------------------------------------------------------------------- + # "Template" + # --------------------------------------------------------------------------- + # Allows for the definition of 1 or more hosts that are created sequentially + # from a template. By default, this looks like "peer%d" from 0 to Count-1. + # You may override the number of nodes (Count), the starting index (Start) + # or the template used to construct the name (Hostname). + # + # Note: Template and Specs are not mutually exclusive. You may define both + # sections and the aggregate nodes will be created for you. Take care with + # name collisions + # --------------------------------------------------------------------------- + Template: + Count: 2 + # Start: 5 + # Hostname: {{.Prefix}}{{.Index}} # default + # --------------------------------------------------------------------------- + # "Users" + # --------------------------------------------------------------------------- + # Count: The number of user accounts _in addition_ to Admin + # --------------------------------------------------------------------------- + Users: + Count: 1 + # --------------------------------------------------------------------------- + # Org2: See "Org1" for full specification + # --------------------------------------------------------------------------- + - Name: Org2 + Domain: org2.example.com + CA: + Country: US + Province: California + Locality: San Francisco + Template: + Count: 2 + Users: + Count: 1 diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/2154dbdbd40ce79764ea957d136b0d5cadbfb14772f05fd2cf32cd0c32d69b77_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/2154dbdbd40ce79764ea957d136b0d5cadbfb14772f05fd2cf32cd0c32d69b77_sk new file mode 100644 index 00000000..5a47ea39 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/2154dbdbd40ce79764ea957d136b0d5cadbfb14772f05fd2cf32cd0c32d69b77_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgES9plinnjVaL0+bc +U4in/asws4O6EN5zGnAbjnW9z8qhRANCAAREJja+a8AzruQ+7ASDdgIK7hXvqJxL +ugcF5rtoCCG/0/BjFnKYLVmz1MvvrL7+Kg2vESvlkuWZR54OpKnWd0/R +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem new file mode 100644 index 00000000..532110c0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLjCCAdWgAwIBAgIQP8SdmHBhNYvNc1eReZwOyTAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEQmNr5rwDOu5D7sBIN2AgruFe+o +nEu6BwXmu2gIIb/T8GMWcpgtWbPUy++svv4qDa8RK+WS5ZlHng6kqdZ3T9GjXzBd +MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB +Af8wKQYDVR0OBCIEICFU29vUDOeXZOqVfRNrDVytv7FHcvBf0s8yzQwy1pt3MAoG +CCqGSM49BAMCA0cAMEQCIARAcRYf+nmD76kx3wgxRKL/nVQ/pXva3IemmaIgcSjA +AiB/6l5s6DTUFyO1V9f7vfVMQcmYCqS2DIRlKQD9I3+Gig== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..774c0bbf --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQCh2UviwCCENbRZm64zC8szAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmz+zKZjr4XMJF947O5tqbqdDdl39UAuy8O4MNnsIcXG6Gc3hM97B +h2q8ZG+wC2xH6LKockOzX4z7eZPgwrDSHqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgIVTb29QM55dk6pV9E2sNXK2/sUdy8F/S +zzLNDDLWm3cwCgYIKoZIzj0EAwIDRwAwRAIgQ6FfeJP3bC2EIDlicfKXrXt9Wv6H +BBCPADL64+9oPFACIFCgSYOul3GmTi2OpMQpS4u/0f6oKV/MoJgg0gLv4bdF +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 00000000..532110c0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLjCCAdWgAwIBAgIQP8SdmHBhNYvNc1eReZwOyTAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEQmNr5rwDOu5D7sBIN2AgruFe+o +nEu6BwXmu2gIIb/T8GMWcpgtWbPUy++svv4qDa8RK+WS5ZlHng6kqdZ3T9GjXzBd +MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB +Af8wKQYDVR0OBCIEICFU29vUDOeXZOqVfRNrDVytv7FHcvBf0s8yzQwy1pt3MAoG +CCqGSM49BAMCA0cAMEQCIARAcRYf+nmD76kx3wgxRKL/nVQ/pXva3IemmaIgcSjA +AiB/6l5s6DTUFyO1V9f7vfVMQcmYCqS2DIRlKQD9I3+Gig== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 00000000..ed2fc037 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICNjCCAdygAwIBAgIRALM6kpfGvUTxMkd/kRBesfswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQndFc2nHdXQbYUnW1 +QprgXeTYPdaaE+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7 +eKq+o18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB +Af8EBTADAQH/MCkGA1UdDgQiBCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgn +Ub+FwTAKBggqhkjOPQQDAgNIADBFAiEAku5my5qsm2cV8MA4kel9crsUJDJQHkhO +9CRi5IXocv4CIAJWG/wd7PBAU5dYUi+ttnMRJCVaMjSpzGLCIcqa1qsv +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..774c0bbf --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQCh2UviwCCENbRZm64zC8szAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmz+zKZjr4XMJF947O5tqbqdDdl39UAuy8O4MNnsIcXG6Gc3hM97B +h2q8ZG+wC2xH6LKockOzX4z7eZPgwrDSHqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgIVTb29QM55dk6pV9E2sNXK2/sUdy8F/S +zzLNDDLWm3cwCgYIKoZIzj0EAwIDRwAwRAIgQ6FfeJP3bC2EIDlicfKXrXt9Wv6H +BBCPADL64+9oPFACIFCgSYOul3GmTi2OpMQpS4u/0f6oKV/MoJgg0gLv4bdF +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 00000000..532110c0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLjCCAdWgAwIBAgIQP8SdmHBhNYvNc1eReZwOyTAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEQmNr5rwDOu5D7sBIN2AgruFe+o +nEu6BwXmu2gIIb/T8GMWcpgtWbPUy++svv4qDa8RK+WS5ZlHng6kqdZ3T9GjXzBd +MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB +Af8wKQYDVR0OBCIEICFU29vUDOeXZOqVfRNrDVytv7FHcvBf0s8yzQwy1pt3MAoG +CCqGSM49BAMCA0cAMEQCIARAcRYf+nmD76kx3wgxRKL/nVQ/pXva3IemmaIgcSjA +AiB/6l5s6DTUFyO1V9f7vfVMQcmYCqS2DIRlKQD9I3+Gig== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/387d53008fabbc444d59d777bee7303daa9c62125dc5e7086338cedd47ae498f_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/387d53008fabbc444d59d777bee7303daa9c62125dc5e7086338cedd47ae498f_sk new file mode 100644 index 00000000..7d897f37 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/387d53008fabbc444d59d777bee7303daa9c62125dc5e7086338cedd47ae498f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTCSshHNuDC5JmNIN +cfSbZyZ/hgxaA1rrTCcSrC9yLqqhRANCAASgt3LoRZsO/f6qK1WOUqB7zUKeO8Jp +G0Hp2c1Gu4zpV9pjBGCVFYDyjMg2xy2FGt3ZJgfEljsHFnxL6eYoUtv0 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem new file mode 100644 index 00000000..0f0189b1 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICDTCCAbOgAwIBAgIRAOGKAb18r9BTgR+TQclAIIowCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMFgxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAEoLdy6EWbDv3+qitVjlKge81CnjvCaRtB6dnNRruM6VfaYwRg +lRWA8ozINscthRrd2SYHxJY7BxZ8S+nmKFLb9KNNMEswDgYDVR0PAQH/BAQDAgeA +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgIVTb29QM55dk6pV9E2sNXK2/sUdy +8F/SzzLNDDLWm3cwCgYIKoZIzj0EAwIDSAAwRQIhAJcrEuSf3fR90PyXOpftXrgR +rhRIVG8spex7iLg4tkB/AiAzGamwDDqcRz9ryt80OHF2d618oS3UaZF/wPWo7oB9 +FA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 00000000..ed2fc037 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICNjCCAdygAwIBAgIRALM6kpfGvUTxMkd/kRBesfswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQndFc2nHdXQbYUnW1 +QprgXeTYPdaaE+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7 +eKq+o18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB +Af8EBTADAQH/MCkGA1UdDgQiBCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgn +Ub+FwTAKBggqhkjOPQQDAgNIADBFAiEAku5my5qsm2cV8MA4kel9crsUJDJQHkhO +9CRi5IXocv4CIAJWG/wd7PBAU5dYUi+ttnMRJCVaMjSpzGLCIcqa1qsv +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt new file mode 100644 index 00000000..ed2fc037 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICNjCCAdygAwIBAgIRALM6kpfGvUTxMkd/kRBesfswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQndFc2nHdXQbYUnW1 +QprgXeTYPdaaE+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7 +eKq+o18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB +Af8EBTADAQH/MCkGA1UdDgQiBCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgn +Ub+FwTAKBggqhkjOPQQDAgNIADBFAiEAku5my5qsm2cV8MA4kel9crsUJDJQHkhO +9CRi5IXocv4CIAJWG/wd7PBAU5dYUi+ttnMRJCVaMjSpzGLCIcqa1qsv +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt new file mode 100644 index 00000000..fe3ccc40 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWjCCAgCgAwIBAgIRANqVGJ4RHohswpqlxF6pQHMwCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMFgxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEPzCwqaaQkxgt0ndGYPnVNZT4aC165Wo0QzDNS7N1srca +znZLqDZWnda1GQyJXUmQgpxDiqSPuFVXlKBdyLd+96OBljCBkzAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAggKgP+snFnS4lmw18n4EcJ04IuUmTDXYeAxSYJ1G/hcEw +JwYDVR0RBCAwHoITb3JkZXJlci5leGFtcGxlLmNvbYIHb3JkZXJlcjAKBggqhkjO +PQQDAgNIADBFAiEAiMaq4QYFv3S13HQeLzumDcErpw3sRRYq8aDCxDmoOkICIB7C +08FvQKkJEpyDN/mjVMufNU4rfpjsFRs5IUHXBdhR +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key new file mode 100644 index 00000000..c07f93bb --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGNicEQgtNBNtuBwF +/eA9w4neMwEbTLdidHYL91KgiN2hRANCAAQ/MLCpppCTGC3Sd0Zg+dU1lPhoLXrl +ajRDMM1Ls3WytxrOdkuoNlad1rUZDIldSZCCnEOKpI+4VVeUoF3It373 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/80a80ffac9c59d2e259b0d7c9f811c274e08b949930d761e0314982751bf85c1_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/80a80ffac9c59d2e259b0d7c9f811c274e08b949930d761e0314982751bf85c1_sk new file mode 100644 index 00000000..deb81705 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/80a80ffac9c59d2e259b0d7c9f811c274e08b949930d761e0314982751bf85c1_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5owVFluDVt7bnMmG +wCVx+bu+9oZwsSAbAZCjHSHkIfmhRANCAAQQndFc2nHdXQbYUnW1QprgXeTYPdaa +E+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7eKq+ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem new file mode 100644 index 00000000..ed2fc037 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICNjCCAdygAwIBAgIRALM6kpfGvUTxMkd/kRBesfswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQndFc2nHdXQbYUnW1 +QprgXeTYPdaaE+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7 +eKq+o18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB +Af8EBTADAQH/MCkGA1UdDgQiBCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgn +Ub+FwTAKBggqhkjOPQQDAgNIADBFAiEAku5my5qsm2cV8MA4kel9crsUJDJQHkhO +9CRi5IXocv4CIAJWG/wd7PBAU5dYUi+ttnMRJCVaMjSpzGLCIcqa1qsv +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..774c0bbf --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQCh2UviwCCENbRZm64zC8szAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmz+zKZjr4XMJF947O5tqbqdDdl39UAuy8O4MNnsIcXG6Gc3hM97B +h2q8ZG+wC2xH6LKockOzX4z7eZPgwrDSHqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgIVTb29QM55dk6pV9E2sNXK2/sUdy8F/S +zzLNDDLWm3cwCgYIKoZIzj0EAwIDRwAwRAIgQ6FfeJP3bC2EIDlicfKXrXt9Wv6H +BBCPADL64+9oPFACIFCgSYOul3GmTi2OpMQpS4u/0f6oKV/MoJgg0gLv4bdF +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 00000000..532110c0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLjCCAdWgAwIBAgIQP8SdmHBhNYvNc1eReZwOyTAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEQmNr5rwDOu5D7sBIN2AgruFe+o +nEu6BwXmu2gIIb/T8GMWcpgtWbPUy++svv4qDa8RK+WS5ZlHng6kqdZ3T9GjXzBd +MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB +Af8wKQYDVR0OBCIEICFU29vUDOeXZOqVfRNrDVytv7FHcvBf0s8yzQwy1pt3MAoG +CCqGSM49BAMCA0cAMEQCIARAcRYf+nmD76kx3wgxRKL/nVQ/pXva3IemmaIgcSjA +AiB/6l5s6DTUFyO1V9f7vfVMQcmYCqS2DIRlKQD9I3+Gig== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/a54bc31e91249b68eb23dc374296a4eda4fe8f0e229dcfb63770c7e45b96745f_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/a54bc31e91249b68eb23dc374296a4eda4fe8f0e229dcfb63770c7e45b96745f_sk new file mode 100644 index 00000000..bf22e198 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/a54bc31e91249b68eb23dc374296a4eda4fe8f0e229dcfb63770c7e45b96745f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg63wCP24vDJSChlDm +hzl0HaT6fxjJu5VjCDE3/Amrgr+hRANCAASbP7MpmOvhcwkX3js7m2pup0N2Xf1Q +C7Lw7gw2ewhxcboZzeEz3sGHarxkb7ALbEfosqhyQ7NfjPt5k+DCsNIe +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..774c0bbf --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQCh2UviwCCENbRZm64zC8szAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDkwMTExMDA0M1oXDTI3MDgzMDExMDA0M1owVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmz+zKZjr4XMJF947O5tqbqdDdl39UAuy8O4MNnsIcXG6Gc3hM97B +h2q8ZG+wC2xH6LKockOzX4z7eZPgwrDSHqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgIVTb29QM55dk6pV9E2sNXK2/sUdy8F/S +zzLNDDLWm3cwCgYIKoZIzj0EAwIDRwAwRAIgQ6FfeJP3bC2EIDlicfKXrXt9Wv6H +BBCPADL64+9oPFACIFCgSYOul3GmTi2OpMQpS4u/0f6oKV/MoJgg0gLv4bdF +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 00000000..ed2fc037 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICNjCCAdygAwIBAgIRALM6kpfGvUTxMkd/kRBesfswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQndFc2nHdXQbYUnW1 +QprgXeTYPdaaE+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7 +eKq+o18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB +Af8EBTADAQH/MCkGA1UdDgQiBCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgn +Ub+FwTAKBggqhkjOPQQDAgNIADBFAiEAku5my5qsm2cV8MA4kel9crsUJDJQHkhO +9CRi5IXocv4CIAJWG/wd7PBAU5dYUi+ttnMRJCVaMjSpzGLCIcqa1qsv +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt new file mode 100644 index 00000000..ed2fc037 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICNjCCAdygAwIBAgIRALM6kpfGvUTxMkd/kRBesfswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQndFc2nHdXQbYUnW1 +QprgXeTYPdaaE+Wfq99u7eiWt8qBsVYz/ETfFJ/hTYxKH5hdTfUeJCXPZDOgf6T7 +eKq+o18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB +Af8EBTADAQH/MCkGA1UdDgQiBCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgn +Ub+FwTAKBggqhkjOPQQDAgNIADBFAiEAku5my5qsm2cV8MA4kel9crsUJDJQHkhO +9CRi5IXocv4CIAJWG/wd7PBAU5dYUi+ttnMRJCVaMjSpzGLCIcqa1qsv +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt new file mode 100644 index 00000000..69b37cfd --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLTCCAdOgAwIBAgIRAPLZMPocwV7bQv/aBksbj3swCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNaMFYxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEG +CCqGSM49AwEHA0IABINLFP3/CgcWppkAoSZeCNor0fcv5q97saAbwNBcFbnA+zV9 +akibIF/HkdBNBUXZ14n9F3fkk6Aax6C2JrVBYhujbDBqMA4GA1UdDwEB/wQEAwIF +oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAr +BgNVHSMEJDAigCCAqA/6ycWdLiWbDXyfgRwnTgi5SZMNdh4DFJgnUb+FwTAKBggq +hkjOPQQDAgNIADBFAiEA7IGo+be4dRtBTsQ+M8epPzAONWG95ZvaMSJIcqv4gmQC +IB/9kNMil48sAj9DPeiZ8PHR9J3/e7rmHVwA4vrXXDFE +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key new file mode 100644 index 00000000..517f25d8 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDaoqTS4AwLaselrb +EKOFBN5VJAD21LRMXrCwFMiJzjGhRANCAASDSxT9/woHFqaZAKEmXgjaK9H3L+av +e7GgG8DQXBW5wPs1fWpImyBfx5HQTQVF2deJ/Rd35JOgGsegtia1QWIb +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk new file mode 100644 index 00000000..db451a8e --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgYcrrkdnV1DlyF7U+ +p8OoOScIlCTWfxiNuHznRxhluhihRANCAAQdj4hNSYWuoK1ZEnR2UvbrN1jziqS2 +oKBtw/HX6CxDnYVS16x4P7bs0QXbx9ng+WWlcjq1XXq5iIrYWKsOQUzP +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..9323b560 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFjCCAb2gAwIBAgIURa/X2XP3tM4wDlZ+LUq9VBmvcwswCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTE3MDkwMTExMDcwMFoXDTMyMDgyODExMDcwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9iwm3wJWrnw8XX1kswyouzxa +RyBBhHEevB2eeNTfzmuo1ni7AvpTEVRnm6jP78gRYCotLNi1b+oUz+cTc6LYOaNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FBH7wDBnpFH363B5k52fUPtFx0z/MAoGCCqGSM49BAMCA0cAMEQCIBbgfmyJg/r/ +jJnhmw8bl62sH+nrX9C6U8tfv2Gnq1vUAiBzYjBOaZGC0Nz34cDwtgcRyI22CMTo +XvHdC/Ae4zxkUQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..084a3c94 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAPGRVw8QcfBpee3Ja3cvffkwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPjjEG2dSo7T7lJIMmx7Y5qtZfN3l53D +CuIgMqOKzPjk8FOxuoIkwH6qTYe1grDVZdfCJDZdnRvqBrKmiyVBVn2jTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMhD0/AhEYlj +zl00DpUobohpu3vQUUVM1BZqooh6KtRRMAoGCCqGSM49BAMCA0gAMEUCIQC5cqF2 +q0XWF5TtueZexFr9hx7d5jr8xZ21lLlJILlCoQIgOhVwxz9d5F5Svh6PYdZK8q/z +wfVH1xi8rCo0jv4Nee4= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..ce84ce73 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAemgAwIBAgIQAfA9He7xpAUEnXbP8v/01jAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +HY+ITUmFrqCtWRJ0dlL26zdY84qktqCgbcPx1+gsQ52FUteseD+27NEF28fZ4Pll +pXI6tV16uYiK2FirDkFMz6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgyEPT8CERiWPOXTQOlShu +iGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDSAAwRQIhAOhn/ntHd7sxk6Ds +TuZXwmeXoGDBCzQ+Dqyun7LC94BNAiAeRZa/ZKQCmjSogcaBhJHgjKG63IdMHCu2 +kAsF956AbA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..084a3c94 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAPGRVw8QcfBpee3Ja3cvffkwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPjjEG2dSo7T7lJIMmx7Y5qtZfN3l53D +CuIgMqOKzPjk8FOxuoIkwH6qTYe1grDVZdfCJDZdnRvqBrKmiyVBVn2jTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMhD0/AhEYlj +zl00DpUobohpu3vQUUVM1BZqooh6KtRRMAoGCCqGSM49BAMCA0gAMEUCIQC5cqF2 +q0XWF5TtueZexFr9hx7d5jr8xZ21lLlJILlCoQIgOhVwxz9d5F5Svh6PYdZK8q/z +wfVH1xi8rCo0jv4Nee4= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..ce84ce73 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAemgAwIBAgIQAfA9He7xpAUEnXbP8v/01jAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +HY+ITUmFrqCtWRJ0dlL26zdY84qktqCgbcPx1+gsQ52FUteseD+27NEF28fZ4Pll +pXI6tV16uYiK2FirDkFMz6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgyEPT8CERiWPOXTQOlShu +iGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDSAAwRQIhAOhn/ntHd7sxk6Ds +TuZXwmeXoGDBCzQ+Dqyun7LC94BNAiAeRZa/ZKQCmjSogcaBhJHgjKG63IdMHCu2 +kAsF956AbA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/99bd297aa7c0a5139386ce35b89c2524b5bc23fa9e6e0968c93cbcf27b2d10e4_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/99bd297aa7c0a5139386ce35b89c2524b5bc23fa9e6e0968c93cbcf27b2d10e4_sk new file mode 100644 index 00000000..16c8e757 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/99bd297aa7c0a5139386ce35b89c2524b5bc23fa9e6e0968c93cbcf27b2d10e4_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7j9pou9IDBIzB9xQ +tqS7Qqz4vZ93ohCoDz7XX3BzHUqhRANCAATN4lpnJD3lnUoqt4uaOwKaKqSSYqKq +niDMG0ZOSAl1SaodiVMLyCfNObngAbZiaTgWgBIZkUc8NM7hUlndajv0 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem new file mode 100644 index 00000000..8daaa7f0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQQxKXDrkcdGeP9KyddyIJRDAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzeJaZyQ95Z1KKreLmjsCmiqkkmKiqp4g +zBtGTkgJdUmqHYlTC8gnzTm54AG2Ymk4FoASGZFHPDTO4VJZ3Wo79KNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgyEPT8CERiWPO +XTQOlShuiGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDRwAwRAIgVCmgIF4T +s7QlHWzUdJYTxruGSlRPuwlekM4Au3kgilYCICmzzTR3z+zoBO2X9M4kyI/ebCxF +u2RbCYuMuMUowLDq +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt new file mode 100644 index 00000000..a758912f --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICZzCCAg2gAwIBAgIQfC/PBWN7YUi6LyfRsT71wTAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAw +NDJaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExlGcF+toks0eW58iyTd2GBFWDMlE +Fi6yLGIbTBu+hSDYw62/NSbbuYhO2zpCBYPCcRWDHzZTtsMgCpL1kFmQGaOBlzCB +lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxV0DX8jX5odQyecAGFV4bBLjVhcA +kKLT5M1Ed3BbQNwwKAYDVR0RBCEwH4IWcGVlcjAub3JnMS5leGFtcGxlLmNvbYIF +cGVlcjAwCgYIKoZIzj0EAwIDSAAwRQIhAO8SOW+CwnLdTE48RF0Gnv2FrkfryYok +1b7ixywliCinAiANq2PWBP0/kA0ieHEZs1/giCX9E+WLgrPfwm+8fISImg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key new file mode 100644 index 00000000..dceb37d9 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggARn3NoeQy+bhzuS +d/O4U9Q9JqWxqbdzF2zKkj617JuhRANCAATGUZwX62iSzR5bnyLJN3YYEVYMyUQW +LrIsYhtMG76FINjDrb81Jtu5iE7bOkIFg8JxFYMfNlO2wyAKkvWQWZAZ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..084a3c94 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAPGRVw8QcfBpee3Ja3cvffkwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPjjEG2dSo7T7lJIMmx7Y5qtZfN3l53D +CuIgMqOKzPjk8FOxuoIkwH6qTYe1grDVZdfCJDZdnRvqBrKmiyVBVn2jTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMhD0/AhEYlj +zl00DpUobohpu3vQUUVM1BZqooh6KtRRMAoGCCqGSM49BAMCA0gAMEUCIQC5cqF2 +q0XWF5TtueZexFr9hx7d5jr8xZ21lLlJILlCoQIgOhVwxz9d5F5Svh6PYdZK8q/z +wfVH1xi8rCo0jv4Nee4= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..ce84ce73 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAemgAwIBAgIQAfA9He7xpAUEnXbP8v/01jAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +HY+ITUmFrqCtWRJ0dlL26zdY84qktqCgbcPx1+gsQ52FUteseD+27NEF28fZ4Pll +pXI6tV16uYiK2FirDkFMz6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgyEPT8CERiWPOXTQOlShu +iGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDSAAwRQIhAOhn/ntHd7sxk6Ds +TuZXwmeXoGDBCzQ+Dqyun7LC94BNAiAeRZa/ZKQCmjSogcaBhJHgjKG63IdMHCu2 +kAsF956AbA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/a5b3e0ca079850544f7a1381629dada8e62bf2b5f180ac6e49c79a70c40858e2_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/a5b3e0ca079850544f7a1381629dada8e62bf2b5f180ac6e49c79a70c40858e2_sk new file mode 100644 index 00000000..ca564d08 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/a5b3e0ca079850544f7a1381629dada8e62bf2b5f180ac6e49c79a70c40858e2_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgputMFhOeoXcCA4Ji +qp3Vwg/Aod0fwNtu/WCkwZvJOmmhRANCAARV39373sdyjrofATkrr/VgcAxS9irS +T0VNySdbuAIpfM90BJH5dpL4hPuY7Ml759Z08ZXIVUtDcwUX5XNzG24H +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem new file mode 100644 index 00000000..430112e6 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAN2DNjWSlgyPNMDEi/eX7V0wCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABFXf3fvex3KOuh8BOSuv9WBwDFL2KtJP +RU3JJ1u4Ail8z3QEkfl2kviE+5jsyXvn1nTxlchVS0NzBRflc3MbbgejTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMhD0/AhEYlj +zl00DpUobohpu3vQUUVM1BZqooh6KtRRMAoGCCqGSM49BAMCA0gAMEUCIQDwrDA8 +R4RoMxF9XvogVbE8WyWmjL614IQ4P6XfGzdxfwIgWV9nIQRCvnXKrCNCHlHr4sxO +xP5K34HRgj1Jr40ODrM= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt new file mode 100644 index 00000000..f386ac6d --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICZzCCAg2gAwIBAgIQREyFYdgealeFMbnWi/U3TjAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAw +NDJaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcxLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEihFJm/6OPYljjccM0F4Kf5NOt3kd +s4xUXNh9mv1L7NjM6W69EHOT1uKiTpMlpMWezLqmdOs1eJ/gsNk54ySQBaOBlzCB +lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxV0DX8jX5odQyecAGFV4bBLjVhcA +kKLT5M1Ed3BbQNwwKAYDVR0RBCEwH4IWcGVlcjEub3JnMS5leGFtcGxlLmNvbYIF +cGVlcjEwCgYIKoZIzj0EAwIDSAAwRQIhAI2ZpaUW94I8N14ssLvvW194pKpNl7Bp +1kqcSpfCkpCvAiARSeo9lxDiOV1CAyOm1nbn/OFdz4Wh4m8iBz6RLZ6V5Q== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key new file mode 100644 index 00000000..1dded069 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg1H2Yv70N9yTJ3wRa +rorj5uf6eD2YgVue7roLupwNuh+hRANCAASKEUmb/o49iWONxwzQXgp/k063eR2z +jFRc2H2a/Uvs2Mzpbr0Qc5PW4qJOkyWkxZ7MuqZ06zV4n+Cw2TnjJJAF +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/c55d035fc8d7e68750c9e7001855786c12e356170090a2d3e4cd4477705b40dc_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/c55d035fc8d7e68750c9e7001855786c12e356170090a2d3e4cd4477705b40dc_sk new file mode 100644 index 00000000..db529097 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/c55d035fc8d7e68750c9e7001855786c12e356170090a2d3e4cd4477705b40dc_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNZgTFjntL+pcg3lX +UjVY+fT9vvCWsEJA5Oq/Hmc3pJahRANCAAThXfCOmsOXZzJdsQlHslPPzdk6OiTJ +qpPBIIhCYvb59wo5xA2/x2KqyUM1Y9Fkb5goUEBxj+XFOiK2lxnDX5qz +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..084a3c94 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAPGRVw8QcfBpee3Ja3cvffkwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPjjEG2dSo7T7lJIMmx7Y5qtZfN3l53D +CuIgMqOKzPjk8FOxuoIkwH6qTYe1grDVZdfCJDZdnRvqBrKmiyVBVn2jTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMhD0/AhEYlj +zl00DpUobohpu3vQUUVM1BZqooh6KtRRMAoGCCqGSM49BAMCA0gAMEUCIQC5cqF2 +q0XWF5TtueZexFr9hx7d5jr8xZ21lLlJILlCoQIgOhVwxz9d5F5Svh6PYdZK8q/z +wfVH1xi8rCo0jv4Nee4= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..ce84ce73 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAemgAwIBAgIQAfA9He7xpAUEnXbP8v/01jAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +HY+ITUmFrqCtWRJ0dlL26zdY84qktqCgbcPx1+gsQ52FUteseD+27NEF28fZ4Pll +pXI6tV16uYiK2FirDkFMz6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgyEPT8CERiWPOXTQOlShu +iGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDSAAwRQIhAOhn/ntHd7sxk6Ds +TuZXwmeXoGDBCzQ+Dqyun7LC94BNAiAeRZa/ZKQCmjSogcaBhJHgjKG63IdMHCu2 +kAsF956AbA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d404db0397d50cf0b1a5d028561e78a2b47935e318ec1800de5fc5c164dae9ae_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d404db0397d50cf0b1a5d028561e78a2b47935e318ec1800de5fc5c164dae9ae_sk new file mode 100644 index 00000000..8e88a54d --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d404db0397d50cf0b1a5d028561e78a2b47935e318ec1800de5fc5c164dae9ae_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgg6uVXC5L+7kullxR +CYr44nbYJ0Lnb7DLKBqeyMKKOuKhRANCAAT44xBtnUqO0+5SSDJse2OarWXzd5ed +wwriIDKjisz45PBTsbqCJMB+qk2HtYKw1WXXwiQ2XZ0b6gayposlQVZ9 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..084a3c94 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAPGRVw8QcfBpee3Ja3cvffkwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPjjEG2dSo7T7lJIMmx7Y5qtZfN3l53D +CuIgMqOKzPjk8FOxuoIkwH6qTYe1grDVZdfCJDZdnRvqBrKmiyVBVn2jTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMhD0/AhEYlj +zl00DpUobohpu3vQUUVM1BZqooh6KtRRMAoGCCqGSM49BAMCA0gAMEUCIQC5cqF2 +q0XWF5TtueZexFr9hx7d5jr8xZ21lLlJILlCoQIgOhVwxz9d5F5Svh6PYdZK8q/z +wfVH1xi8rCo0jv4Nee4= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt new file mode 100644 index 00000000..2c1ea60d --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOzCCAeKgAwIBAgIRAIMSt9AP4hmYeHt8U1LCEOYwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBOOEkumNriBX3DEqLJEE3Y0XdgX +jYdFIryqjdzWO5qzcpAxQedlL0GTzQvo9SuC/bUWUg0LVkRerrou1l2QNgqjbDBq +MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCDFXQNfyNfmh1DJ5wAYVXhsEuNWFwCQ +otPkzUR3cFtA3DAKBggqhkjOPQQDAgNHADBEAiBPR9N7JQJdskOnln/VBW2JTlSG +WpaOhsLbpmnhJkCS5gIgRPhhKcJ1a4v0hFeViajyt2TXyMPKbTsWhvJKKl+JM2M= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key new file mode 100644 index 00000000..9ef27525 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgdFo0hnDG1JcuPPro +0G5Qcn+DkAtgS3FfHG+6B10xsrShRANCAAQTjhJLpja4gV9wxKiyRBN2NF3YF42H +RSK8qo3c1juas3KQMUHnZS9Bk80L6PUrgv21FlINC1ZEXq66LtZdkDYK +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem new file mode 100644 index 00000000..df375717 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQXztS0I3Ktycdzqu1lDxfCjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7TZtpjohiXFwEeG6gbskdsEMtFcQxOQP +1MO1JCxgVTxg+9IYvKuqUMqmhQA0jlueI2Me5kW40blbhAtIKQ4+7KNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgyEPT8CERiWPO +XTQOlShuiGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDRwAwRAIgI7fCElam +9GuzoHW9nFi4jcbuGTMJ3gBHFZdyM37XB0MCIH3CoJDVZ401CnJGJNwrnL6cQJ2j +MgRs18HgngzZpPpo +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..ce84ce73 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAemgAwIBAgIQAfA9He7xpAUEnXbP8v/01jAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +HY+ITUmFrqCtWRJ0dlL26zdY84qktqCgbcPx1+gsQ52FUteseD+27NEF28fZ4Pll +pXI6tV16uYiK2FirDkFMz6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgyEPT8CERiWPOXTQOlShu +iGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDSAAwRQIhAOhn/ntHd7sxk6Ds +TuZXwmeXoGDBCzQ+Dqyun7LC94BNAiAeRZa/ZKQCmjSogcaBhJHgjKG63IdMHCu2 +kAsF956AbA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/6200c95bc5314763ddca31ad86ce6f18989d35301fbdf10582e31a872da8200e_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/6200c95bc5314763ddca31ad86ce6f18989d35301fbdf10582e31a872da8200e_sk new file mode 100644 index 00000000..69931061 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/6200c95bc5314763ddca31ad86ce6f18989d35301fbdf10582e31a872da8200e_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmeOkDC6jW5YSAOZE +WnIYm30JTzWv8BHG72DJZOtwX1mhRANCAATtNm2mOiGJcXAR4bqBuyR2wQy0VxDE +5A/Uw7UkLGBVPGD70hi8q6pQyqaFADSOW54jYx7mRbjRuVuEC0gpDj7s +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem new file mode 100644 index 00000000..df375717 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQXztS0I3Ktycdzqu1lDxfCjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7TZtpjohiXFwEeG6gbskdsEMtFcQxOQP +1MO1JCxgVTxg+9IYvKuqUMqmhQA0jlueI2Me5kW40blbhAtIKQ4+7KNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgyEPT8CERiWPO +XTQOlShuiGm7e9BRRUzUFmqiiHoq1FEwCgYIKoZIzj0EAwIDRwAwRAIgI7fCElam +9GuzoHW9nFi4jcbuGTMJ3gBHFZdyM37XB0MCIH3CoJDVZ401CnJGJNwrnL6cQJ2j +MgRs18HgngzZpPpo +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt new file mode 100644 index 00000000..f9f1e67c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIRAPcfHzsJAOL/eOpjlvm+hgwwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABOFd8I6aw5dnMl2xCUeyU8/N2To6JMmqk8EgiEJi9vn3CjnEDb/HYqrJ +QzVj0WRvmChQQHGP5cU6IraXGcNfmrOjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMVdA1/I1+aH +UMnnABhVeGwS41YXAJCi0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDHSo/7 +y73NLCfyt4HUVH3tzk8BcK5b2HR8eJQdqjAFtQIgJ5oWZ0Q0o0Y3YWmKmEKwiS62 +R6vTrnPnUxn89Zp5IzU= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt new file mode 100644 index 00000000..8ce96d29 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOzCCAeGgAwIBAgIQaDKtYPBdqA6HCkJRnYE5QzAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAw +NDJaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXLHheXZQcGdaAUigHgFNPeAaLRgp +lsdSMYsiuBb9rkqcSgptyvGeGsjTDuee5L3suBekZrD+gnVTkiA3wjt646NsMGow +DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIMVdA1/I1+aHUMnnABhVeGwS41YXAJCi +0+TNRHdwW0DcMAoGCCqGSM49BAMCA0gAMEUCIQDnQSd6SFqnLylHqBdnMQQrU09d +DgIXCiMqzZqo21alOgIgBdl8Mz85fL12VeYVZh92cG9d3OU4D43IofjysAzhNhE= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key new file mode 100644 index 00000000..7d36a43d --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4Axz04NiqnAKLmBk +1dzVbOrTOZm2Oqlbn2rVJZ6vZIGhRANCAARcseF5dlBwZ1oBSKAeAU094BotGCmW +x1IxiyK4Fv2uSpxKCm3K8Z4ayNMO557kvey4F6RmsP6CdVOSIDfCO3rj +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk new file mode 100644 index 00000000..3ff056cc --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWMWVOsOqHMxvIR2H +9MRWWAUOzvMLydKhbZQ21ih27lShRANCAAQSNgQpT5K5L8J8tQNr96X2ZCicqGf6 +25mwVJPxWNsFO074q6/3Vx99M7/Sz2K0NhncvjRCeyOfJH6EZ+/nJsIY +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..80898236 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUGdYQPMsBSzrjEMQ1mzYWCKJvlfkwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTE3MDkwMTExMDcwMFoXDTMyMDgyODExMDcwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEF/LEuIBfqBVhG3KiVJPnWPzA +m6g00Z28jyHWAv8ciNxRpe6Gk81XeTYSUQAnJeWkKjk1J4GNmMIT5QJD/zfJWKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FI1TmoFkXMUG9WsyR/UWPJUJ5fNsMAoGCCqGSM49BAMCA0gAMEUCIQDxjxJvZS0k +U7ELxF8wuk7KmgPvCCA5zRY5GUJFBRsflAIgev7lr2JhO8HqGN7QVcjXT9ifq/wt +xnDx7AQLyuDkEGw= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..6ffacd78 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQPIMUuRjlh71SW+Sn67Q6KjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEneCaSXZGBA5pxTFPHzX1Sx8lWSi1M/q9 +nGtGEX5/GQpBHjNKZKd/26oMeSrnGU/70QGyC7xnydq59+JRqt0+GaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgHuVRqHUxccA3 +c2bpah1+wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDSAAwRQIhANpYTaXh +MzUpbL9RfAWR4u1im5Y7YfTdfKWJ5WymzifIAiAH/5kua//B8Qlh2Z9SznF/Q5GO +Q4FQr670WIeJETNDZg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..a15bace6 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQjCCAemgAwIBAgIQCyQoiiSl3HG4F0LpZZhkxTAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +EjYEKU+SuS/CfLUDa/el9mQonKhn+tuZsFST8VjbBTtO+Kuv91cffTO/0s9itDYZ +3L40QnsjnyR+hGfv5ybCGKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHuVRqHUxccA3c2bpah1+ +wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDRwAwRAIgZkyHcr3gJnjRtHcy +dpqX7pZtyro/aeJKGrfjYGU5YFICIAHfMz8vKeCse5wweAUHM8TwwCYWzMyHAf0F +YdVb6zro +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..6ffacd78 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQPIMUuRjlh71SW+Sn67Q6KjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEneCaSXZGBA5pxTFPHzX1Sx8lWSi1M/q9 +nGtGEX5/GQpBHjNKZKd/26oMeSrnGU/70QGyC7xnydq59+JRqt0+GaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgHuVRqHUxccA3 +c2bpah1+wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDSAAwRQIhANpYTaXh +MzUpbL9RfAWR4u1im5Y7YfTdfKWJ5WymzifIAiAH/5kua//B8Qlh2Z9SznF/Q5GO +Q4FQr670WIeJETNDZg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..a15bace6 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQjCCAemgAwIBAgIQCyQoiiSl3HG4F0LpZZhkxTAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +EjYEKU+SuS/CfLUDa/el9mQonKhn+tuZsFST8VjbBTtO+Kuv91cffTO/0s9itDYZ +3L40QnsjnyR+hGfv5ybCGKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHuVRqHUxccA3c2bpah1+ +wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDRwAwRAIgZkyHcr3gJnjRtHcy +dpqX7pZtyro/aeJKGrfjYGU5YFICIAHfMz8vKeCse5wweAUHM8TwwCYWzMyHAf0F +YdVb6zro +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/55f89f6171583cc40724941aa0954c8d339a2a293c5643a3217a55c6b14668cc_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/55f89f6171583cc40724941aa0954c8d339a2a293c5643a3217a55c6b14668cc_sk new file mode 100644 index 00000000..babd0c76 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/55f89f6171583cc40724941aa0954c8d339a2a293c5643a3217a55c6b14668cc_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkkT62Nb44Fsdyhvb +hSve2YU5+ogPDP52M7jYMhozsfqhRANCAAQ6n6iJprQGbdLVMYk+a8M+izvLRnKB +3E56hUVDsfHG/W8g3TMiQ5uvAfStU9s/wx3E2xnrlnngPE3QCfRLe6kA +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem new file mode 100644 index 00000000..e9f58790 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAJ0AFGGhkKzObCWXnBQ6nJYwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEwMDQy +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABDqfqImmtAZt0tUxiT5rwz6LO8tGcoHc +TnqFRUOx8cb9byDdMyJDm68B9K1T2z/DHcTbGeuWeeA8TdAJ9Et7qQCjTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIB7lUah1MXHA +N3Nm6WodfsAa/duGjJSDzFAbb4rHrnUvMAoGCCqGSM49BAMCA0gAMEUCIQDtt8py +pdFLxQ6y1t2wA69SeFsHVSvy97hktoiP0zFO5gIgd2E4eXL/pUSxlUGs3RzlEk1J +AAthjt2Bxkc8zNGwoCE= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt new file mode 100644 index 00000000..9fb7eed8 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICaDCCAg6gAwIBAgIRAKXEWX6cU9xZ4zUEc/qEXqEwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMi5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFmL7xzltDeI2IuyoXfcxg8OvTNw +ezwlqzaia0GanQsnvsbzoem08sP1MoE141URx7D6hrstHPcKcjzJo+0rqjKjgZcw +gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD +AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAICyLU20/1KMoSty7iF9COYjmA3sW +4sun4MHuLAdPjRghMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzIuZXhhbXBsZS5jb22C +BXBlZXIwMAoGCCqGSM49BAMCA0gAMEUCIQCbs+ypDbf0LkUltfL98DDd0NBuJ2Lc +opudMBqYgQd2MgIgebBbWQm0qTeRvAy0yMWGsbPWmXnrPo8qCJ5uN58lTW4= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key new file mode 100644 index 00000000..e34a532b --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrEVSHddCzgt/bebN +WK6Mn/Nmw4bul+oLPqNvcKEBOQqhRANCAARZi+8c5bQ3iNiLsqF33MYPDr0zcHs8 +Jas2omtBmp0LJ77G86HptPLD9TKBNeNVEcew+oa7LRz3CnI8yaPtK6oy +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..6ffacd78 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQPIMUuRjlh71SW+Sn67Q6KjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEneCaSXZGBA5pxTFPHzX1Sx8lWSi1M/q9 +nGtGEX5/GQpBHjNKZKd/26oMeSrnGU/70QGyC7xnydq59+JRqt0+GaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgHuVRqHUxccA3 +c2bpah1+wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDSAAwRQIhANpYTaXh +MzUpbL9RfAWR4u1im5Y7YfTdfKWJ5WymzifIAiAH/5kua//B8Qlh2Z9SznF/Q5GO +Q4FQr670WIeJETNDZg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..a15bace6 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQjCCAemgAwIBAgIQCyQoiiSl3HG4F0LpZZhkxTAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +EjYEKU+SuS/CfLUDa/el9mQonKhn+tuZsFST8VjbBTtO+Kuv91cffTO/0s9itDYZ +3L40QnsjnyR+hGfv5ybCGKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHuVRqHUxccA3c2bpah1+ +wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDRwAwRAIgZkyHcr3gJnjRtHcy +dpqX7pZtyro/aeJKGrfjYGU5YFICIAHfMz8vKeCse5wweAUHM8TwwCYWzMyHAf0F +YdVb6zro +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/ec648ac689f099ccf1b79d56e17acad0701f44e9b6c08f99af1b7fb0220808e7_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/ec648ac689f099ccf1b79d56e17acad0701f44e9b6c08f99af1b7fb0220808e7_sk new file mode 100644 index 00000000..da6d5d20 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/ec648ac689f099ccf1b79d56e17acad0701f44e9b6c08f99af1b7fb0220808e7_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgSB2awBKFfwQXSKYq +O1b9QwlKdVzg8FAf5MBQ6s/0T7+hRANCAAR9bXAk4NDrb91L5/wSfkv7RrnNkKcV +fcngncUN7iw/ThzruSv2qAbskWUPDbaoFQA7iVP799K7eKsADUIEBUbJ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem new file mode 100644 index 00000000..2504ee9a --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQLER8KhhC6lVOth63tWLBDDAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfW1wJODQ62/dS+f8En5L+0a5zZCnFX3J +4J3FDe4sP04c67kr9qgG7JFlDw22qBUAO4lT+/fSu3irAA1CBAVGyaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgHuVRqHUxccA3 +c2bpah1+wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDRwAwRAIgf4N7xS7J +r2E3AE23A5j1jZGOJhbd4/jBLG5jhQmQ1JMCIHQZTsZcEI/E1gTGrex4WAocOk7N +9nwZjIQ5JMbC0Zo5 +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt new file mode 100644 index 00000000..b8143bd4 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICaDCCAg6gAwIBAgIRAOIAEsDplhG/9cgY3vCfxhcwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMi5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLMduSDc7AQoWW8WLqOPA7mlSxnB +vJeapRX9Gjm/YRILCgqYLmAOYb58JlA4l3t2/oO6VMeLMN36vUuJ6OCUcbyjgZcw +gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD +AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAICyLU20/1KMoSty7iF9COYjmA3sW +4sun4MHuLAdPjRghMCgGA1UdEQQhMB+CFnBlZXIxLm9yZzIuZXhhbXBsZS5jb22C +BXBlZXIxMAoGCCqGSM49BAMCA0gAMEUCIQDaWW80GyurwJoXuqT87tJSc4WZWGdA +ZB64hoMZQzWCbgIgU5ptcg+ZTZR3x67HX0vtwA3mYsTzfdS/YHho67zoYKs= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key new file mode 100644 index 00000000..7c618377 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguECyN4MYLvcdMajS +wBPSIN7K1NJqftoQdYsyIDrIGjmhRANCAASzHbkg3OwEKFlvFi6jjwO5pUsZwbyX +mqUV/Ro5v2ESCwoKmC5gDmG+fCZQOJd7dv6DulTHizDd+r1LiejglHG8 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/2c8b536d3fd4a3284adcbb885f423988e6037b16e2cba7e0c1ee2c074f8d1821_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/2c8b536d3fd4a3284adcbb885f423988e6037b16e2cba7e0c1ee2c074f8d1821_sk new file mode 100644 index 00000000..1e3c65e1 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/2c8b536d3fd4a3284adcbb885f423988e6037b16e2cba7e0c1ee2c074f8d1821_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg57hbOELvgqPt1UXK +lf0dQNLkn8rAqe5UNdUwsMqh/AShRANCAARpJkSmNfZWUZVgUkBYmnqiYDbeCxRf +glxE9mCO36niOLHrELFolknuhhCPh/XOhGKvGH2UvurTVe8llunMZmX8 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..6ffacd78 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQPIMUuRjlh71SW+Sn67Q6KjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEneCaSXZGBA5pxTFPHzX1Sx8lWSi1M/q9 +nGtGEX5/GQpBHjNKZKd/26oMeSrnGU/70QGyC7xnydq59+JRqt0+GaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgHuVRqHUxccA3 +c2bpah1+wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDSAAwRQIhANpYTaXh +MzUpbL9RfAWR4u1im5Y7YfTdfKWJ5WymzifIAiAH/5kua//B8Qlh2Z9SznF/Q5GO +Q4FQr670WIeJETNDZg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..a15bace6 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQjCCAemgAwIBAgIQCyQoiiSl3HG4F0LpZZhkxTAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +EjYEKU+SuS/CfLUDa/el9mQonKhn+tuZsFST8VjbBTtO+Kuv91cffTO/0s9itDYZ +3L40QnsjnyR+hGfv5ybCGKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHuVRqHUxccA3c2bpah1+ +wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDRwAwRAIgZkyHcr3gJnjRtHcy +dpqX7pZtyro/aeJKGrfjYGU5YFICIAHfMz8vKeCse5wweAUHM8TwwCYWzMyHAf0F +YdVb6zro +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/ed4e11d28881807d16d07609be517005a9905816bc2fc2ab3aece92e0daff4c8_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/ed4e11d28881807d16d07609be517005a9905816bc2fc2ab3aece92e0daff4c8_sk new file mode 100644 index 00000000..634393a7 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/ed4e11d28881807d16d07609be517005a9905816bc2fc2ab3aece92e0daff4c8_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgRAnHbo7t4+SOH0l7 +tnQUb9SftRzUgms0l7MhSrEV2+GhRANCAASd4JpJdkYEDmnFMU8fNfVLHyVZKLUz ++r2ca0YRfn8ZCkEeM0pkp3/bqgx5KucZT/vRAbILvGfJ2rn34lGq3T4Z +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..6ffacd78 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQPIMUuRjlh71SW+Sn67Q6KjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAwNDNa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEneCaSXZGBA5pxTFPHzX1Sx8lWSi1M/q9 +nGtGEX5/GQpBHjNKZKd/26oMeSrnGU/70QGyC7xnydq59+JRqt0+GaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgHuVRqHUxccA3 +c2bpah1+wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDSAAwRQIhANpYTaXh +MzUpbL9RfAWR4u1im5Y7YfTdfKWJ5WymzifIAiAH/5kua//B8Qlh2Z9SznF/Q5GO +Q4FQr670WIeJETNDZg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt new file mode 100644 index 00000000..3f1812ab --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOzCCAeGgAwIBAgIQSjoJ34cTmiyj8n+/c3HahDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDNaFw0yNzA4MzAxMTAw +NDNaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0MIGokHp4Ww9L8oK3N6zrVDW/LeC +xoGter3KRKZlp8dA/GCXbEcX53dhh9gRz0ZpzKxTHzuVb7oKkc8I5aVLnqNsMGow +DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAICyLU20/1KMoSty7iF9COYjmA3sW4sun +4MHuLAdPjRghMAoGCCqGSM49BAMCA0gAMEUCIQD63nQFwhVhPJ0vp50LVQweqLN9 +C0TcTW/uMdAwkMbLVAIgTA+anZV4fqB/cvh07xbzdALG4N/cUR3q0FJeflFQpuc= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key new file mode 100644 index 00000000..b7f9ee17 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgb2hIVDMesM7EZACV +vY3P68ssiSn6SFDixGexbcDOuGWhRANCAATQwgaiQenhbD0vygrc3rOtUNb8t4LG +ga16vcpEpmWnx0D8YJdsRxfnd2GH2BHPRmnMrFMfO5VvugqRzwjlpUue +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem new file mode 100644 index 00000000..acce9ad0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAInIZR/3hXJWaRWzunW9jWIwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQzWhcNMjcwODMwMTEwMDQz +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABG/aL7wTIUhKZHEG2x/ADZtlDPDFe4A8 +C5M/cwFTUm7Y1hfZgJioXMMiojbZbtEB3P7OhlEfhS7W5osrlAiXT3OjTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIB7lUah1MXHA +N3Nm6WodfsAa/duGjJSDzFAbb4rHrnUvMAoGCCqGSM49BAMCA0gAMEUCIQCFpT7x +2YsjX/w+V6l3LBT/VEs2t6cKxiwKV/BnXJrY0AIgAg+rlKojdiNEYWKu9DdOB109 +cTeAUGWnOiqS0LXS3rQ= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..a15bace6 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQjCCAemgAwIBAgIQCyQoiiSl3HG4F0LpZZhkxTAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA5MDExMTAwNDJaFw0yNzA4MzAxMTAwNDJa +MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD +ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +EjYEKU+SuS/CfLUDa/el9mQonKhn+tuZsFST8VjbBTtO+Kuv91cffTO/0s9itDYZ +3L40QnsjnyR+hGfv5ybCGKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG +BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHuVRqHUxccA3c2bpah1+ +wBr924aMlIPMUBtviseudS8wCgYIKoZIzj0EAwIDRwAwRAIgZkyHcr3gJnjRtHcy +dpqX7pZtyro/aeJKGrfjYGU5YFICIAHfMz8vKeCse5wweAUHM8TwwCYWzMyHAf0F +YdVb6zro +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/37d54f666be5b439c52b5503cd8efaed2db1095645a9ec5a6ff6276ed6e24893_sk b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/37d54f666be5b439c52b5503cd8efaed2db1095645a9ec5a6ff6276ed6e24893_sk new file mode 100644 index 00000000..42a8052c --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/37d54f666be5b439c52b5503cd8efaed2db1095645a9ec5a6ff6276ed6e24893_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrf4DcQ4ilC70itT+ +7ahh1pbMlOd6W2q8Gf2mMsxqIL6hRANCAARv2i+8EyFISmRxBtsfwA2bZQzwxXuA +PAuTP3MBU1Ju2NYX2YCYqFzDIqI22W7RAdz+zoZRH4Uu1uaLK5QIl09z +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem new file mode 100644 index 00000000..acce9ad0 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRAInIZR/3hXJWaRWzunW9jWIwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQzWhcNMjcwODMwMTEwMDQz +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABG/aL7wTIUhKZHEG2x/ADZtlDPDFe4A8 +C5M/cwFTUm7Y1hfZgJioXMMiojbZbtEB3P7OhlEfhS7W5osrlAiXT3OjTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIB7lUah1MXHA +N3Nm6WodfsAa/duGjJSDzFAbb4rHrnUvMAoGCCqGSM49BAMCA0gAMEUCIQCFpT7x +2YsjX/w+V6l3LBT/VEs2t6cKxiwKV/BnXJrY0AIgAg+rlKojdiNEYWKu9DdOB109 +cTeAUGWnOiqS0LXS3rQ= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt new file mode 100644 index 00000000..fecd05c5 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSTCCAfCgAwIBAgIRANfRQrxjYNMcwLUIo2xqNqUwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQyWhcNMjcwODMwMTEw +MDQyWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGkmRKY19lZRlWBSQFiaeqJgNt4LFF+CXET2YI7fqeI4sesQsWiWSe6G +EI+H9c6EYq8YfZS+6tNV7yWW6cxmZfyjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV +HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICyLU20/1KMo +Sty7iF9COYjmA3sW4sun4MHuLAdPjRghMAoGCCqGSM49BAMCA0cAMEQCIFP3bgrV +ncqWr+yzoKBkENzQl0m4vsZclIB0u4op2+azAiAAxLpNKBAaFa4b4kJgJ/pwBDiR +tQW8S/Y5eHLgLj3d/g== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt new file mode 100644 index 00000000..514fa15d --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOzCCAeKgAwIBAgIRAMObKli4UM2rqWKfrpYyuWowCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwOTAxMTEwMDQzWhcNMjcwODMwMTEw +MDQzWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGy05kOY0lZ+8+HilYWga6psAb3Z +wNhTAz5+Vlow/UAJfDeIIUJ4ujQ3wuCtnJoJq7CyCnNhNrPCKnkcMGIQg6ejbDBq +MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCAsi1NtP9SjKErcu4hfQjmI5gN7FuLL +p+DB7iwHT40YITAKBggqhkjOPQQDAgNHADBEAiAkO04TT5EVuG+hOuQrCQnOLDya +njdbFsAfusJnz4r9DgIgXzIhYBhtU5NIxoWvojfY1OoOmVszGkeYwhXqlLGW8pY= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key new file mode 100644 index 00000000..4aafbb6b --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeuhUcD3Koj+7GkCM +D06OuKNUIqH5OBNe8uuXMivpv0ShRANCAARstOZDmNJWfvPh4pWFoGuqbAG92cDY +UwM+flZaMP1ACXw3iCFCeLo0N8LgrZyaCauwsgpzYTazwip5HDBiEIOn +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/e2e_cli/docker-compose-cli.yaml b/hyperledger/1.0.1/e2e_cli/docker-compose-cli.yaml new file mode 100644 index 00000000..8df8fae3 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/docker-compose-cli.yaml @@ -0,0 +1,163 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +version: '2' + +services: + zookeeper0: + container_name: zookeeper0 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=1 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper1: + container_name: zookeeper1 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=2 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper2: + container_name: zookeeper2 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=3 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + kafka0: + container_name: kafka0 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=0 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka1: + container_name: kafka1 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=1 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka2: + container_name: kafka2 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=2 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka3: + container_name: kafka3 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=3 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + orderer.example.com: + extends: + file: base/docker-compose-base.yaml + service: orderer.example.com + container_name: orderer.example.com + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + - kafka0 + - kafka1 + - kafka2 + - kafka3 + + peer0.org1.example.com: + container_name: peer0.org1.example.com + extends: + file: base/docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + container_name: peer1.org1.example.com + extends: + file: base/docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + container_name: peer0.org2.example.com + extends: + file: base/docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + container_name: peer1.org2.example.com + extends: + file: base/docker-compose-base.yaml + service: peer1.org2.example.com + + cli: + container_name: cli + image: hyperledger/fabric-tools + tty: true + environment: + - GOPATH=/opt/gopath + - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ID=cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_ENABLED=true + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT' + volumes: + - /var/run/:/host/var/run/ + - ../chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go + - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com diff --git a/hyperledger/1.0.1/e2e_cli/docker-compose-couch.yaml b/hyperledger/1.0.1/e2e_cli/docker-compose-couch.yaml new file mode 100644 index 00000000..d2049b7f --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/docker-compose-couch.yaml @@ -0,0 +1,67 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +version: '2' + +services: + couchdb0: + container_name: couchdb0 + image: hyperledger/fabric-couchdb + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "5984:5984" + + peer0.org1.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984 + depends_on: + - couchdb0 + + couchdb1: + container_name: couchdb1 + image: hyperledger/fabric-couchdb + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "6984:5984" + + peer1.org1.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1:5984 + depends_on: + - couchdb1 + + couchdb2: + container_name: couchdb2 + image: hyperledger/fabric-couchdb + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "7984:5984" + + peer0.org2.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb2:5984 + depends_on: + - couchdb2 + + couchdb3: + container_name: couchdb3 + image: hyperledger/fabric-couchdb + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "8984:5984" + + peer1.org2.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb3:5984 + depends_on: + - couchdb3 diff --git a/hyperledger/1.0.1/e2e_cli/docker-compose-e2e-template.yaml b/hyperledger/1.0.1/e2e_cli/docker-compose-e2e-template.yaml new file mode 100644 index 00000000..c5f160da --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/docker-compose-e2e-template.yaml @@ -0,0 +1,159 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +version: '2' + +services: + ca0: + image: hyperledger/fabric-ca + environment: + - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server + - FABRIC_CA_SERVER_CA_NAME=ca-org1 + - FABRIC_CA_SERVER_TLS_ENABLED=true + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/CA1_PRIVATE_KEY + ports: + - "7054:7054" + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/CA1_PRIVATE_KEY -b admin:adminpw -d' + volumes: + - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + container_name: ca_peerOrg1 + + ca1: + image: hyperledger/fabric-ca + environment: + - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server + - FABRIC_CA_SERVER_CA_NAME=ca-org2 + - FABRIC_CA_SERVER_TLS_ENABLED=true + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/CA2_PRIVATE_KEY + ports: + - "8054:7054" + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/CA2_PRIVATE_KEY -b admin:adminpw -d' + volumes: + - ./crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + container_name: ca_peerOrg2 + + zookeeper0: + container_name: zookeeper0 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=1 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper1: + container_name: zookeeper1 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=2 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper2: + container_name: zookeeper2 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=3 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + kafka0: + container_name: kafka0 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=0 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka1: + container_name: kafka1 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=1 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka2: + container_name: kafka2 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=2 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka3: + container_name: kafka3 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=3 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + orderer.example.com: + extends: + file: base/docker-compose-base.yaml + service: orderer.example.com + container_name: orderer.example.com + depends_on: + - kafka0 + - kafka1 + - kafka2 + - kafka3 + + peer0.org1.example.com: + container_name: peer0.org1.example.com + extends: + file: base/docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + container_name: peer1.org1.example.com + extends: + file: base/docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + container_name: peer0.org2.example.com + extends: + file: base/docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + container_name: peer1.org2.example.com + extends: + file: base/docker-compose-base.yaml + service: peer1.org2.example.com diff --git a/hyperledger/1.0.1/e2e_cli/docker-compose-e2e.yaml b/hyperledger/1.0.1/e2e_cli/docker-compose-e2e.yaml new file mode 100644 index 00000000..d5b57833 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/docker-compose-e2e.yaml @@ -0,0 +1,159 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +version: '2' + +services: + ca0: + image: hyperledger/fabric-ca + environment: + - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server + - FABRIC_CA_SERVER_CA_NAME=ca-org1 + - FABRIC_CA_SERVER_TLS_ENABLED=true + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/2628c774d6def25e2bf6147c30f25fe76469d63d257965ac867544acd090148c_sk + ports: + - "7054:7054" + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/2628c774d6def25e2bf6147c30f25fe76469d63d257965ac867544acd090148c_sk -b admin:adminpw -d' + volumes: + - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + container_name: ca_peerOrg1 + + ca1: + image: hyperledger/fabric-ca + environment: + - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server + - FABRIC_CA_SERVER_CA_NAME=ca-org2 + - FABRIC_CA_SERVER_TLS_ENABLED=true + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/3f39c678fc9b1f79cddb94f1e896cc3c487aa25c2ebf8b7f3e0205c2d21a37ec_sk + ports: + - "8054:7054" + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/3f39c678fc9b1f79cddb94f1e896cc3c487aa25c2ebf8b7f3e0205c2d21a37ec_sk -b admin:adminpw -d' + volumes: + - ./crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + container_name: ca_peerOrg2 + + zookeeper0: + container_name: zookeeper0 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=1 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper1: + container_name: zookeeper1 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=2 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper2: + container_name: zookeeper2 + extends: + file: base/docker-compose-base.yaml + service: zookeeper + environment: + - ZOO_MY_ID=3 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + kafka0: + container_name: kafka0 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=0 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka1: + container_name: kafka1 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=1 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka2: + container_name: kafka2 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=2 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka3: + container_name: kafka3 + extends: + file: base/docker-compose-base.yaml + service: kafka + environment: + - KAFKA_BROKER_ID=3 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + orderer.example.com: + extends: + file: base/docker-compose-base.yaml + service: orderer.example.com + container_name: orderer.example.com + depends_on: + - kafka0 + - kafka1 + - kafka2 + - kafka3 + + peer0.org1.example.com: + container_name: peer0.org1.example.com + extends: + file: base/docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + container_name: peer1.org1.example.com + extends: + file: base/docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + container_name: peer0.org2.example.com + extends: + file: base/docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + container_name: peer1.org2.example.com + extends: + file: base/docker-compose-base.yaml + service: peer1.org2.example.com diff --git a/hyperledger/1.0.1/e2e_cli/download-dockerimages.sh b/hyperledger/1.0.1/e2e_cli/download-dockerimages.sh new file mode 100644 index 00000000..cbe966b8 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/download-dockerimages.sh @@ -0,0 +1,81 @@ +#!/bin/bash -eu +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +################################################## +# This script pulls docker images from hyperledger +# docker hub repository and Tag it as +# hyperledger/fabric- latest tag +################################################## + +#Set ARCH variable i.e ppc64le,s390x,x86_64,i386 +ARCH=`uname -m` + +dockerFabricPull() { + local FABRIC_TAG=$1 + for IMAGES in peer orderer couchdb ccenv javaenv kafka tools zookeeper; do + echo "==> FABRIC IMAGE: $IMAGES" + echo + docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG + docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES + done +} + +dockerCaPull() { + local CA_TAG=$1 + echo "==> FABRIC CA IMAGE" + echo + docker pull hyperledger/fabric-ca:$CA_TAG + docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca +} +usage() { + echo "Description " + echo + echo "Pulls docker images from hyperledger dockerhub repository" + echo "tag as hyperledger/fabric-:latest" + echo + echo "USAGE: " + echo + echo "./download-dockerimages.sh [-c ] [-f ]" + echo " -c fabric-ca docker image tag" + echo " -f fabric docker image tag" + echo + echo + echo "EXAMPLE:" + echo "./download-dockerimages.sh -c x86_64-1.0.0-beta -f x86_64-1.0.0-beta" + echo + echo "By default, pulls fabric-ca and fabric 1.0.0-beta docker images" + echo "from hyperledger dockerhub" + exit 0 +} + +while getopts "\?hc:f:" opt; do + case "$opt" in + c) CA_TAG="$OPTARG" + echo "Pull CA IMAGES" + ;; + + f) FABRIC_TAG="$OPTARG" + echo "Pull FABRIC TAG" + ;; + \?|h) usage + echo "Print Usage" + ;; + esac +done + +: ${CA_TAG:="$ARCH-1.0.0-beta"} +: ${FABRIC_TAG:="$ARCH-1.0.0-beta"} + +echo "===> Pulling fabric Images" +dockerFabricPull ${FABRIC_TAG} + +echo "===> Pulling fabric ca Image" +dockerCaPull ${CA_TAG} +echo +echo "===> List out hyperledger docker images" +docker images | grep hyperledger* diff --git a/hyperledger/1.0.1/e2e_cli/end-to-end.rst b/hyperledger/1.0.1/e2e_cli/end-to-end.rst new file mode 100644 index 00000000..9f187339 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/end-to-end.rst @@ -0,0 +1,912 @@ +End-to-End Flow +=============== + +The end-to-end verification provisions a sample Fabric network consisting of +two organizations, each maintaining two peers, and a Kafka-based ordering service. + +This verification makes use of two fundamental tools, which are necessary to +create a functioning transactional network with digital signature validation +and access control: + +* cryptogen - generates the x509 certificates used to identify and authenticate the various components in the network. +* configtxgen - generates the requisite configuration artifacts for orderer bootstrap and channel creation. + +Each tool consumes a configuration yaml file, within which we specify the topology +of our network (cryptogen) and the location of our certificates for various +configuration operations (configtxgen). Once the tools have been successfully run, +we are able to launch our network. More detail on the tools and the structure of +the network will be provided later in this document. For now, let's get going... + +Prerequisites +------------- + +- `Git client `__ +- `Docker `__ - v1.12 or higher +- `Docker Compose `__ - v1.8 or higher +- `Homebrew `__ - OSX only +- `Xcode `__ - OSX only (this can take upwards of an hour) +- `Docker Toolbox `__ - Windows users only +- `Go `__ - 1.7 or higher + +On Windows machines you will also need the following which provides a better alternative to the Windows command prompt: + +- `Git Bash `__ + +.. note:: On older versions of Windows, such as Windows 7, you + typically get this as part of installing Docker + Toolbox. However experience has shown this to be a poor + development environment with limited functionality. It is + suitable to run docker based scenarios, such as + :doc:`getting_started`, but you may not be able to find a + suitable ``make`` command to successfuly go through the + scenario described here. + +Setting the $GOPATH +^^^^^^^^^^^^^^^^^^^ +Make sure you have properly setup your Host's `GOPATH environment +variable `__. This is necessary for the +code to compile properly. + +Now create the following directory structure and ``cd`` into it: + +.. code:: bash + + mkdir -p $GOPATH/src/github.com/hyperledger + cd $GOPATH/src/github.com/hyperledger + +- Clone the Fabric code base into this path. + +.. code:: bash + + git clone http://gerrit.hyperledger.org/r/fabric + +or though a mirrored repository in github: + +.. code:: bash + + git clone https://github.com/hyperledger/fabric.git + +- If you are running OSX, perform the following: + +.. code:: bash + + brew install gnu-tar --with-default-names + brew install libtool + +Build the binaries +^^^^^^^^^^^^^^^^^^ + +- Now make the platform-specific binaries for ``cryptogen`` and ``configtxgen``. + +.. code:: bash + + cd $GOPATH/src/github.com/hyperledger/fabric + # ensure sure you are in the /fabric directory where the Makefile resides + make release + +This will output platform-specific binaries into the ``fabric/release`` folder. + +- Next, make the Fabric images. This typically takes between five to ten minutes, so + be patient: + +.. code:: bash + + # make sure you are in the /fabric directory + make docker + +Execute a ``docker images`` command in your terminal. If the images compiled +successfully, you should see an output similar to the following: + +.. code:: bash + + REPOSITORY TAG IMAGE ID CREATED SIZE + hyperledger/fabric-couchdb latest e2df4dd39ca9 38 minutes ago 1.51 GB + hyperledger/fabric-couchdb x86_64-1.0.0-beta e2df4dd39ca9 38 minutes ago 1.51 GB + hyperledger/fabric-kafka latest 08af4d797266 40 minutes ago 1.3 GB + hyperledger/fabric-kafka x86_64-1.0.0-beta 08af4d797266 40 minutes ago 1.3 GB + hyperledger/fabric-zookeeper latest 444e9e695367 40 minutes ago 1.31 GB + hyperledger/fabric-zookeeper x86_64-1.0.0-beta 444e9e695367 40 minutes ago 1.31 GB + hyperledger/fabric-testenv latest 8678d3101930 41 minutes ago 1.41 GB + hyperledger/fabric-testenv x86_64-1.0.0-beta 8678d3101930 41 minutes ago 1.41 GB + hyperledger/fabric-buildenv latest 60911392c82e 41 minutes ago 1.33 GB + hyperledger/fabric-buildenv x86_64-1.0.0-beta 60911392c82e 41 minutes ago 1.33 GB + hyperledger/fabric-orderer latest 2afab937b9cc 41 minutes ago 182 MB + hyperledger/fabric-orderer x86_64-1.0.0-beta 2afab937b9cc 41 minutes ago 182 MB + hyperledger/fabric-peer latest 9560e58e8089 41 minutes ago 185 MB + hyperledger/fabric-peer x86_64-1.0.0-beta 9560e58e8089 41 minutes ago 185 MB + hyperledger/fabric-javaenv latest 881ca5219fad 42 minutes ago 1.43 GB + hyperledger/fabric-javaenv x86_64-1.0.0-beta 881ca5219fad 42 minutes ago 1.43 GB + hyperledger/fabric-ccenv latest 28af77ffe9e9 43 minutes ago 1.29 GB + hyperledger/fabric-ccenv x86_64-1.0.0-beta 28af77ffe9e9 43 minutes ago 1.29 GB + hyperledger/fabric-baseimage x86_64-0.3.0 f4751a503f02 3 months ago 1.27 GB + hyperledger/fabric-baseos x86_64-0.3.0 c3a4cf3b3350 3 months ago 161 MB + +If you failed to compile the ``fabric-testenv`` image, then you can +perform a ``make clean`` followed by another ``make docker``. + +Cryptogen Tool +-------------- +We will use the cryptogen tool to generate the cryptographic material (x509 certs) +for our various network entities. The certificates are based on a standard PKI +implementation where validation is achieved by reaching a common trust anchor. + +How does it work? +^^^^^^^^^^^^^^^^^ + +Cryptogen consumes a file - ``crypto-config.yaml`` - that contains the network +topology and allows us to generate a library of certificates for both the +Organizations and the components that belong to those Organizations. Each +Organization is provisioned a unique root certificate (``ca-cert``), that binds +specific components (peers and orderers) to that Org. Transactions and communications +within Fabric are signed by an entity's private key (``keystore``), and then verified +by means of a public key (``signcerts``). You will notice a "count" variable within +this file. We use this to specify the number of peers per Organization; in our +case it's two peers per Org. The rest of this template is extremely +self-explanatory. + +After we run the tool, the certs will be parked in a folder titled ``crypto-config``. + +Configuration Transaction Generator +----------------------------------- + +The `configtxgen +tool `__ +is used to create four artifacts: orderer **bootstrap block**, fabric +**channel configuration transaction**, and two **anchor peer transactions** - one +for each Peer Org. + +The orderer block is the genesis block for the ordering service, and the +channel transaction file is broadcast to the orderer at channel creation +time. The anchor peer transactions, as the name might suggest, specify each +Org's anchor peer on this channel. + +How does it work? +^^^^^^^^^^^^^^^^^ + +Configtxgen consumes a file - ``configtx.yaml`` - that contains the definitions +for the sample network. There are three members - one Orderer Org (``OrdererOrg``) +and two Peer Orgs (``Org1`` & ``Org2``) each managing and maintaining two peer nodes. +This file also specifies a consortium - ``SampleConsortium`` - consisting of our +two Peer Orgs. Pay specific attention to the "Profiles" section at the top of +this file. You will notice that we have two unique headers. One for the orderer genesis +block - ``TwoOrgsOrdererGenesis`` - and one for our channel - ``TwoOrgsChannel``. +These headers are important, as we will pass them in as arguments when we create +our artifacts. This file also contains two additional specifications that are worth +noting. Firstly, we specify the anchor peers for each Peer Org +(``peer0.org1.example.com`` & ``peer0.org2.example.com``). Secondly, we point to +the location of the MSP directory for each member, in turn allowing us to store the +root certificates for each Org in the orderer genesis block. This is a critical +concept. Now any network entity communicating with the ordering service can have +its digital signature verified. + +For ease of use, a script - ``generateArtifacts.sh`` - is provided. The +script will generate the crypto material and our four configuration artifacts, and +subsequently output these files into the ``channel-artifacts`` folder. + +Run the shell script +^^^^^^^^^^^^^^^^^^^^ + +Make sure you are in the ``examples/e2e_cli`` directory where the script resides. +Decide upon a unique name for your channel and replace the parm +with a name of your choice. The script will fail if you do not supply a name. + +.. code:: bash + + cd examples/e2e_cli + ./generateArtifacts.sh + +The output of the script is somewhat verbose, as it generates the crypto +libraries and multiple artifacts. However, you will notice five distinct +and self-explanatory messages in your terminal. They are as follows: + +.. code:: bash + + ########################################################## + ##### Generate certificates using cryptogen tool ######### + ########################################################## + + ########################################################## + ######### Generating Orderer Genesis block ############## + ########################################################## + + ################################################################# + ### Generating channel configuration transaction 'channel.tx' ### + ################################################################# + + ################################################################# + ####### Generating anchor peer update for Org0MSP ########## + ################################################################# + + ################################################################# + ####### Generating anchor peer update for Org1MSP ########## + ################################################################# + + +These configuration transactions will bundle the crypto material for the +participating members and their network components and output an orderer +genesis block and three channel transaction artifacts. These artifacts are +required to successfully bootstrap a Fabric network and create a channel to +transact upon. + +Manually generate the artifacts (optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can refer to the ``generateArtifacts.sh`` script for the commands, however +for the sake of convenience we will also provide them here. + +First, let's set the environment variable for our platform architecture. +This command will detect your OS and use the appropriate binaries for the subsequent steps: + +.. code:: bash + + # for power or z + os_arch=$(echo "$(uname -s)-$(uname -m)" | awk '{print tolower($0)}') + + # for linux, osx or windows + os_arch=$(echo "$(uname -s)-amd64" | awk '{print tolower($0)}') + +Check to make sure it is set properly: + +.. code:: bash + + echo $os_arch + +Now let's run the tool. Our platform specific binary is in the ``release`` +directory, so we need to provide the relative path to where the tool resides. +Make sure you are in ``examples/e2e_cli``: + +.. code:: bash + + ./../../release/$os_arch/bin/cryptogen generate --config=./crypto-config.yaml + +You will likely see the following warning. It's innocuous, ignore it: + +.. code:: bash + + [bccsp] GetDefault -> WARN 001 Before using BCCSP, please call InitFactories(). Falling back to bootBCCSP. + +Next, we need to tell the ``configtxgen`` tool where to look for the +``configtx.yaml`` file that it needs to ingest. We will tell it look in our +present working directory: + +.. code:: bash + + FABRIC_CFG_PATH=$PWD + +Create the orderer genesis block: + +.. code:: bash + + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block + +You can ignore the logs regarding intermediate certs, we are not using them in +this crypto implementation. + +Create the channel transaction artifact: + +.. code:: bash + + # make sure to set the parm + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID + +Define the anchor peer for Org1 on the channel: + +.. code:: bash + + # make sure to set the parm + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID -asOrg Org1MSP + +Define the anchor peer for Org2 on the channel: + +.. code:: bash + + # make sure to set the parm + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID -asOrg Org2MSP + +Run the end-to-end test with Docker +----------------------------------- + +Make sure you are in the ``/e2e_cli`` directory. Then use docker-compose +to spawn the network entities and drive the tests. Notice that you can set a +``TIMEOUT`` variable (specified in seconds) so that your cli container does not +exit after the script completes. You can choose any value: + +.. code:: bash + + # the TIMEOUT variable is optional + CHANNEL_NAME= TIMEOUT= docker-compose -f docker-compose-cli.yaml up -d + +If you created a unique channel name, be sure to pass in that parameter. +For example, + +.. code:: bash + + CHANNEL_NAME=abc TIMEOUT=1000 docker-compose -f docker-compose-cli.yaml up -d + +Wait, 60 seconds or so. Behind the scenes, there are transactions being sent +to the peers. Execute a ``docker ps`` to view your active containers. +You should see an output identical to the following: + +.. code:: bash + + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + b568de3fe931 dev-peer1.org2.example.com-mycc-1.0 "chaincode -peer.a..." 4 minutes ago Up 4 minutes dev-peer1.org2.example.com-mycc-1.0 + 17c1c82087e7 dev-peer0.org1.example.com-mycc-1.0 "chaincode -peer.a..." 4 minutes ago Up 4 minutes dev-peer0.org1.example.com-mycc-1.0 + 0e1c5034c47b dev-peer0.org2.example.com-mycc-1.0 "chaincode -peer.a..." 4 minutes ago Up 4 minutes dev-peer0.org2.example.com-mycc-1.0 + 71339e7e1d38 hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com + add6113ffdcf hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com + 689396c0e520 hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com + 65424407a653 hyperledger/fabric-orderer "orderer" 5 minutes ago Up 5 minutes 0.0.0.0:7050->7050/tcp orderer.example.com + ce14853db660 hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com + +If you set a moderately high ``TIMEOUT`` value, then you will see your cli +container as well. + +What's happening behind the scenes? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- A script - ``script.sh`` - is baked inside the CLI container. The + script drives the ``createChannel`` command against the supplied channel name + and uses the channel.tx file for channel configuration. + +- The output of ``createChannel`` is a genesis block - + ``.block`` - which gets stored on the peers' file systems and contains + the channel configuration specified from channel.tx. + +- The ``joinChannel`` command is exercised for all four peers, which takes as + input the previously generated genesis block. This command instructs the + peers to join ```` and create a chain starting with ``.block``. + +- Now we have a channel consisting of four peers, and two + organizations. This is our ``TwoOrgsChannel`` profile. + +- ``peer0.org1.example.com`` and ``peer1.org1.example.com`` belong to Org1; + ``peer0.org2.example.com`` and ``peer1.org2.example.com`` belong to Org2 + +- These relationships are defined through the ``crypto-config.yaml`` and + the MSP path is specified in our docker compose. + +- The anchor peers for Org1MSP (``peer0.org1.example.com``) and + Org2MSP (``peer0.org2.example.com``) are then updated. We do this by passing + the ``Org1MSPanchors.tx`` and ``Org2MSPanchors.tx`` artifacts to the ordering + service along with the name of our channel. + +- A chaincode - **chaincode_example02** - is installed on ``peer0.org1.example.com`` and + ``peer0.org2.example.com`` + +- The chaincode is then "instantiated" on ``peer0.org2.example.com``. Instantiation + adds the chaincode to the channel, starts the container for the target peer, + and initializes the key value pairs associated with the chaincode. The initial + values for this example are ["a","100" "b","200"]. This "instantiation" results + in a container by the name of ``dev-peer0.org2.example.com-mycc-1.0`` starting. + +- The instantiation also passes in an argument for the endorsement + policy. The policy is defined as + ``-P "OR ('Org1MSP.member','Org2MSP.member')"``, meaning that any + transaction must be endorsed by a peer tied to Org1 or Org2. + +- A query against the value of "a" is issued to ``peer0.org1.example.com``. The + chaincode was previously installed on ``peer0.org1.example.com``, so this will start + a container for Org1 peer0 by the name of ``dev-peer0.org1.example.com-mycc-1.0``. The result + of the query is also returned. No write operations have occurred, so + a query against "a" will still return a value of "100". + +- An invoke is sent to ``peer0.org1.example.com`` to move "10" from "a" to "b" + +- The chaincode is then installed on ``peer1.org2.example.com`` + +- A query is sent to ``peer1.org2.example.com`` for the value of "a". This starts a + third chaincode container by the name of ``dev-peer1.org2.example.com-mycc-1.0``. A + value of 90 is returned, correctly reflecting the previous + transaction during which the value for key "a" was modified by 10. + +What does this demonstrate? +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Chaincode **MUST** be installed on a peer in order for it to +successfully perform read/write operations against the ledger. +Furthermore, a chaincode container is not started for a peer until an ``init`` or +traditional transaction - read/write - is performed against that chaincode (e.g. query for +the value of "a"). The transaction causes the container to start. Also, +all peers in a channel maintain an exact copy of the ledger which +comprises the blockchain to store the immutable, sequenced record in +blocks, as well as a state database to maintain current fabric state. +This includes those peers that do not have chaincode installed on them +(like ``peer1.org1.example.com`` in the above example) . Finally, the chaincode is accessible +after it is installed (like ``peer1.org2.example.com`` in the above example) because it +has already been instantiated. + +How do I see these transactions? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Check the logs for the CLI docker container. + +.. code:: bash + + docker logs -f cli + +You should see the following output: + +.. code:: bash + + 2017-05-16 17:08:01.366 UTC [msp] GetLocalMSP -> DEBU 004 Returning existing local MSP + 2017-05-16 17:08:01.366 UTC [msp] GetDefaultSigningIdentity -> DEBU 005 Obtaining default signing identity + 2017-05-16 17:08:01.366 UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AB1070A6708031A0C08F1E3ECC80510...6D7963631A0A0A0571756572790A0161 + 2017-05-16 17:08:01.367 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: E61DB37F4E8B0D32C9FE10E3936BA9B8CD278FAA1F3320B08712164248285C54 + Query Result: 90 + 2017-05-16 17:08:15.158 UTC [main] main -> INFO 008 Exiting..... + ===================== Query on PEER3 on channel 'mychannel' is successful ===================== + + ===================== All GOOD, End-2-End execution completed ===================== + + + _____ _ _ ____ _____ ____ _____ + | ____| | \ | | | _ \ | ____| |___ \ | ____| + | _| | \| | | | | | _____ | _| __) | | _| + | |___ | |\ | | |_| | |_____| | |___ / __/ | |___ + |_____| |_| \_| |____/ |_____| |_____| |_____| + +How can I see the chaincode logs? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Inspect the individual chaincode containers to see the separate +transactions executed against each container. Here is the combined +output from each container: + +.. code:: bash + + $ docker logs dev-peer0.org2.example.com-mycc-1.0 + 04:30:45.947 [BCCSP_FACTORY] DEBU : Initialize BCCSP [SW] + ex02 Init + Aval = 100, Bval = 200 + + $ docker logs dev-peer0.org1.example.com-mycc-1.0 + 04:31:10.569 [BCCSP_FACTORY] DEBU : Initialize BCCSP [SW] + ex02 Invoke + Query Response:{"Name":"a","Amount":"100"} + ex02 Invoke + Aval = 90, Bval = 210 + + $ docker logs dev-peer1.org2.example.com-mycc-1.0 + 04:31:30.420 [BCCSP_FACTORY] DEBU : Initialize BCCSP [SW] + ex02 Invoke + Query Response:{"Name":"a","Amount":"90"} + +All in one +^^^^^^^^^^ + +You can also generate the artifacts and crypto, and drive the tests using a single +shell script. The ``cryptogen``, ``configtxgen`` and ``docker-compose`` commands are +embedded in the script. If you choose not to supply a channel ID, then the +script will use a default name of ``mychannel``. The cli timeout parameter +is an optional value; if you choose not to set it, then your cli container +will exit upon conclusion of the script. + +.. code:: bash + + ./network_setup.sh up + +OR + +.. code:: bash + + ./network_setup.sh up + +Understanding the docker-compose topology +----------------------------------------- + +The ``e2e_cli`` folder offers us two flavors of docker-compose files, both of which +are extended from the ``docker-compose-base.yaml``. Our first flavor, +``docker-compose-cli.yaml``, provides us with a CLI container, along with an orderer, +four peers, and the optional couchDB containers. We use this docker-compose for +the entirety of the instructions on this page. + +The second flavor, ``docker-compose-e2e.yaml``, is constructed to run end-to-end tests +using the Node.js SDK. Aside from functioning with the SDK, its primary differentiation +is that there are containers for the fabric-ca servers. As a result, we are able +to send REST calls to the organizational CAs for user registration and enrollment. + +If you want to use the ``docker-compose-e2e.yaml`` without first running the +**All in one** script, then we will need to make four slight modifications. +We need to point to the private keys for our Organization's CA's. You can locate +these values in your crypto-config folder. For example, to locate the private +key for Org1 we would follow this path - ``crypto-config/peerOrganizations/org1.example.com/ca/``. +The private key is a long hash value followed by ``_sk``. The path for Org2 +would be - ``crypto-config/peerOrganizations/org2.example.com/ca/``. + +In the ``docker-compose-e2e.yaml`` update the FABRIC_CA_SERVER_TLS_KEYFILE variable +for ca0 and ca1. You also need to edit the path that is provided in the command +to start the ca server. You are providing the same private key twice for each +CA container. + +Manually exercise the commands +------------------------------ + +Exit the currently-running containers: + +.. code:: bash + + docker rm -f $(docker ps -aq) + +Execute a ``docker images`` command in your terminal to view the +chaincode images. They will look similar to the following: + +.. code:: bash + + REPOSITORY TAG IMAGE ID CREATED SIZE + dev-peer1.org2.example.com-mycc-1.0 latest 4bc5e9b5dd97 5 seconds ago 176 MB + dev-peer0.org1.example.com-mycc-1.0 latest 6f2aeb032076 22 seconds ago 176 MB + dev-peer0.org2.example.com-mycc-1.0 latest 509b8e393cc6 39 seconds ago 176 MB + +Remove these images: + +.. code:: bash + + docker rmi + +For example: + +.. code:: bash + + docker rmi -f 4bc 6f2 509 + +Ensure you have the configuration artifacts. If you deleted them, run +the shell script again: + +.. code:: bash + + # remember to supply a channel ID + ./generateArtifacts.sh + +Modify the docker-compose file +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Open the ``docker-compose-cli.yaml`` file and comment out the command to run +``script.sh``. Navigate down to the cli container and place a ``#`` to the +left of the command. For example: + +.. code:: bash + + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + # command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT' + +Save the file and return to the ``/e2e_cli`` directory. + +Now restart your network: + +.. code:: bash + + # make sure you are in the /e2e_cli directory where your docker-compose script resides + CHANNEL_NAME= TIMEOUT= docker-compose -f docker-compose-cli.yaml up -d + +If you want to see the realtime logs for your network, then do not supply the ``-d`` flag. +If you let the logs stream, then you will need to open a second terminal to execute the CLI calls. + +Command syntax +^^^^^^^^^^^^^^ + +Refer to the create and join commands in the ``script.sh`` for the exact syntax. + +For the following CLI commands against `peer0.org1.example.com` to work, we need +to preface our commands with the four environment variables given below. These +variables for ``peer0.org1.example.com`` are baked into the CLI container, +therefore we can operate without passing them. **HOWEVER**, if you want to send +calls to other peers or the orderer, then you will need to provide these +values accordingly. Inspect the ``docker-compose-base.yaml`` for the specific +paths: + +.. code:: bash + + # Environment variables for PEER0 + + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + +Create channel +^^^^^^^^^^^^^^ + +Exec into the cli container: + +.. code:: bash + + docker exec -it cli bash + +If successful you should see the following: + +.. code:: bash + + root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer# + +Specify your channel name with the ``-c`` flag. Specify your channel +configuration transaction with the ``-f`` flag. In this case it is +``channel.tx``, however you can mount your own configuration transaction +with a different name. + +.. code:: bash + + # the channel.tx file is mounted in the channel-artifacts directory within your cli container + # as a result, we pass the full path for the file + # we also pass the path for the orderer ca-cert in order to verify the TLS handshake + # be sure to replace the $CHANNEL_NAME variable appropriately + + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem + + +.. note:: You will remain in the CLI container for the remainder of + these manual commands. You must also remember to preface all commands + with the corresponding environment variables when targeting a peer other than + ``peer0.org1.example.com``. + +Join channel +^^^^^^^^^^^^ + +Join specific peers to the channel + +.. code:: bash + + # By default, this joins ``peer0.org1.example.com`` only + # the channel.block was returned by the previous command + + peer channel join -b + +You can make other peers join the channel as necessary by making appropriate +changes in the four environment variables. + +Install chaincode onto a remote peer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Install the sample go code onto one of the four peer nodes + +.. code:: bash + + peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 + +Instantiate chaincode and define the endorsement policy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Instantiate the chaincode on a peer. This will launch a chaincode +container for the targeted peer and set the endorsement policy for the +chaincode. In this snippet, we define the policy as requiring an +endorsement from one peer node that is a part of either ``Org1`` or ``Org2``. +The command is: + +.. code:: bash + + # be sure to replace the $CHANNEL_NAME environment variable + # if you did not install your chaincode with a name of mycc, then modify that argument as well + + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" + +See the `endorsement +policies `__ +documentation for more details on policy implementation. + +Invoke chaincode +^^^^^^^^^^^^^^^^ + +.. code:: bash + + # be sure to set the -C and -n flags appropriately + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' + +Make sure to wait a few seconds for the operation to complete. + +Query chaincode +^^^^^^^^^^^^^^^ + +.. code:: bash + + # be sure to set the -C and -n flags appropriately + peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' + +The result of the above command should be the following: + +.. code:: bash + + Query Result: 90 + +Feel free to start over and manipulate the key value pairs and subsequent +invocations. + +Using CouchDB +------------- + +The state database can be switched from the default (goleveldb) to CouchDB. +The same chaincode functions are available with CouchDB, however, there is the +added ability to perform rich and complex queries against the state database +data content contingent upon the chaincode data being modeled as JSON. + +To use CouchDB instead of the default database (goleveldb), follow the same +procedure in the **Manually exercise the commands** section, except when starting +the network pass the couchdb docker-compose as well: + +.. code:: bash + + # make sure you are in the /e2e_cli directory where your docker-compose script resides + CHANNEL_NAME= TIMEOUT= docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up -d + +**chaincode_example02** should now work using CouchDB underneath. + +.. note:: If you choose to implement mapping of the fabric-couchdb container + port to a host port, please make sure you are aware of the security + implications. Mapping of the port in a development environment makes the + CouchDB REST API available, and allows the + visualization of the database via the CouchDB web interface (Fauxton). + Production environments would likely refrain from implementing port mapping in + order to restrict outside access to the CouchDB containers. + +You can use **chaincode_example02** chaincode against the CouchDB state database +using the steps outlined above, however in order to exercise the CouchDB query +capabilities you will need to use a chaincode that has data modeled as JSON, +(e.g. **marbles02**). You can locate the **marbles02** chaincode in the +``fabric/examples/chaincode/go`` directory. + +We will follow the same process to create and join the channel as outlined in the +**Manually exercise the commands** section above. Once you have joined your +peer(s) to the channel, use the following steps to interact with the **marbles02** +chaincode: + +- Install and instantiate the chaincode on ``peer0.org1.example.com``: + +.. code:: bash + + # be sure to modify the $CHANNEL_NAME variable accordingly for the instantiate command + + peer chaincode install -o orderer.example.com:7050 -n marbles -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02 + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02 -c '{"Args":["init"]}' -P "OR ('Org0MSP.member','Org1MSP.member')" + +- Create some marbles and move them around: + +.. code:: bash + + # be sure to modify the $CHANNEL_NAME variable accordingly + + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble1","blue","35","tom"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble2","red","50","tom"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble3","blue","70","tom"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["transferMarble","marble2","jerry"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["transferMarblesBasedOnColor","blue","jerry"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["delete","marble1"]}' + + +- If you chose to map the CouchDB ports in docker-compose, you can now view + the state database through the CouchDB web interface (Fauxton) by opening + a browser and navigating to the following URL: + + ``http://localhost:5984/_utils`` + +You should see a database named ``mychannel`` (or your unique channel name) and +the documents inside it. + +.. note:: For the below commands, be sure to update the $CHANNEL_NAME variable appropriately. + +You can run regular queries from the CLI (e.g. reading ``marble2``): + +.. code:: bash + + peer chaincode query -C $CHANNEL_NAME -n marbles -c '{"Args":["readMarble","marble2"]}' + +The output should display the details of ``marble2``: + +.. code:: bash + + Query Result: {"color":"red","docType":"marble","name":"marble2","owner":"jerry","size":50} + +You can retrieve the history of a specific marble - e.g. ``marble1``: + +.. code:: bash + + peer chaincode query -C $CHANNEL_NAME -n marbles -c '{"Args":["getHistoryForMarble","marble1"]}' + +The output should display the transactions on ``marble1``: + +.. code:: bash + + Query Result: [{"TxId":"1c3d3caf124c89f91a4c0f353723ac736c58155325f02890adebaa15e16e6464", "Value":{"docType":"marble","name":"marble1","color":"blue","size":35,"owner":"tom"}},{"TxId":"755d55c281889eaeebf405586f9e25d71d36eb3d35420af833a20a2f53a3eefd", "Value":{"docType":"marble","name":"marble1","color":"blue","size":35,"owner":"jerry"}},{"TxId":"819451032d813dde6247f85e56a89262555e04f14788ee33e28b232eef36d98f", "Value":}] + +You can also perform rich queries on the data content, such as querying marble fields by owner ``jerry``: + +.. code:: bash + + peer chaincode query -C $CHANNEL_NAME -n marbles -c '{"Args":["queryMarblesByOwner","jerry"]}' + +The output should display the two marbles owned by ``jerry``: + +.. code:: bash + + Query Result: [{"Key":"marble2", "Record":{"color":"red","docType":"marble","name":"marble2","owner":"jerry","size":50}},{"Key":"marble3", "Record":{"color":"blue","docType":"marble","name":"marble3","owner":"jerry","size":70}}] + +A Note on Data Persistence +-------------------------- + +If data persistence is desired on the peer container or the CouchDB container, +one option is to mount a directory in the docker-host into a relevant directory +in the container. For example, you may add the following two lines in +the peer container specification in the ``docker-compose-base.yaml`` file: + +.. code:: bash + + volumes: + - /var/hyperledger/peer0:/var/hyperledger/production + + +For the CouchDB container, you may add the following two lines in the CouchDB +container specification: + +.. code:: bash + + volumes: + - /var/hyperledger/couchdb0:/opt/couchdb/data + +Troubleshooting +--------------- + +- It's recommended to start your network fresh. Use the following command + to remove artifacts, crypto, containers and chaincode images: + +.. code:: bash + + ./network_setup.sh down + +- If you see docker errors, first check your version (should be 1.12 or above), + and then try restarting your docker process. Problems with Docker are + oftentimes not immediately recognizable. For example, you may see errors + resulting from an inability to access crypto material mounted within a + container. + +- If they persist remove your images and start from scratch: + +.. code:: bash + + make clean + make docker + +- If you see the below error: + +.. code:: bash + + Error: Error endorsing chaincode: rpc error: code = 2 desc = Error installing chaincode code mycc:1.0(chaincode /var/hyperledger/production/chaincodes/mycc.1.0 exits) + +You likely have chaincode images (e.g. ``dev-peer1.org2.example.com-mycc-1.0`` or +``dev-peer0.org1.example.com-mycc-1.0``) from prior runs. Remove them and try +again. + +.. code:: bash + + docker rmi -f $(docker images | grep peer[0-9]-peer[0-9] | awk '{print $3}') + +- If you see something similar to the following: + +.. code:: bash + + Error connecting: rpc error: code = 14 desc = grpc: RPC failed fast due to transport failure + Error: rpc error: code = 14 desc = grpc: RPC failed fast due to transport failure + +Make sure you pointed to the correct binaries in the release folder when +generating the artifacts, and that your backend is running against "beta" images +or compiled images from the current master branch. + +If you see the below error: + +.. code:: bash + + [configtx/tool/localconfig] Load -> CRIT 002 Error reading configuration: Unsupported Config Type "" + panic: Error reading configuration: Unsupported Config Type "" + +Then you did not set the ``FABRIC_CFG_PATH`` environment variable properly. The +configtxgen tool needs this variable in order to locate the configtx.yaml. Go +back and recreate your channel artifacts. + +- To cleanup the network, use the ``down`` option: + +.. code:: bash + + ./network_setup.sh down + +- If you continue to see errors, share your logs on the **# fabric-questions** + channel on `Hyperledger Rocket Chat `__. + +.. Licensed under Creative Commons Attribution 4.0 International License + https://creativecommons.org/licenses/by/4.0/ diff --git a/hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go b/hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go new file mode 100644 index 00000000..53438066 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go @@ -0,0 +1,199 @@ +/* +Copyright IBM Corp. 2016 All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +//WARNING - this chaincode's ID is hard-coded in chaincode_example04 to illustrate one way of +//calling chaincode from a chaincode. If this example is modified, chaincode_example04.go has +//to be modified as well with the new ID of chaincode_example02. +//chaincode_example05 show's how chaincode ID can be passed in as a parameter instead of +//hard-coding. + +import ( + "fmt" + "strconv" + + "github.com/hyperledger/fabric/core/chaincode/shim" + pb "github.com/hyperledger/fabric/protos/peer" +) + +// SimpleChaincode example simple Chaincode implementation +type SimpleChaincode struct { +} + +func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response { + fmt.Println("ex02 Init") + _, args := stub.GetFunctionAndParameters() + var A, B string // Entities + var Aval, Bval int // Asset holdings + var err error + + if len(args) != 4 { + return shim.Error("Incorrect number of arguments. Expecting 4") + } + + // Initialize the chaincode + A = args[0] + Aval, err = strconv.Atoi(args[1]) + if err != nil { + return shim.Error("Expecting integer value for asset holding") + } + B = args[2] + Bval, err = strconv.Atoi(args[3]) + if err != nil { + return shim.Error("Expecting integer value for asset holding") + } + fmt.Printf("Aval = %d, Bval = %d\n", Aval, Bval) + + // Write the state to the ledger + err = stub.PutState(A, []byte(strconv.Itoa(Aval))) + if err != nil { + return shim.Error(err.Error()) + } + + err = stub.PutState(B, []byte(strconv.Itoa(Bval))) + if err != nil { + return shim.Error(err.Error()) + } + + return shim.Success(nil) +} + +func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response { + fmt.Println("ex02 Invoke") + function, args := stub.GetFunctionAndParameters() + if function == "invoke" { + // Make payment of X units from A to B + return t.invoke(stub, args) + } else if function == "delete" { + // Deletes an entity from its state + return t.delete(stub, args) + } else if function == "query" { + // the old "Query" is now implemtned in invoke + return t.query(stub, args) + } + + return shim.Error("Invalid invoke function name. Expecting \"invoke\" \"delete\" \"query\"") +} + +// Transaction makes payment of X units from A to B +func (t *SimpleChaincode) invoke(stub shim.ChaincodeStubInterface, args []string) pb.Response { + var A, B string // Entities + var Aval, Bval int // Asset holdings + var X int // Transaction value + var err error + + if len(args) != 3 { + return shim.Error("Incorrect number of arguments. Expecting 3") + } + + A = args[0] + B = args[1] + + // Get the state from the ledger + // TODO: will be nice to have a GetAllState call to ledger + Avalbytes, err := stub.GetState(A) + if err != nil { + return shim.Error("Failed to get state") + } + if Avalbytes == nil { + return shim.Error("Entity not found") + } + Aval, _ = strconv.Atoi(string(Avalbytes)) + + Bvalbytes, err := stub.GetState(B) + if err != nil { + return shim.Error("Failed to get state") + } + if Bvalbytes == nil { + return shim.Error("Entity not found") + } + Bval, _ = strconv.Atoi(string(Bvalbytes)) + + // Perform the execution + X, err = strconv.Atoi(args[2]) + if err != nil { + return shim.Error("Invalid transaction amount, expecting a integer value") + } + Aval = Aval - X + Bval = Bval + X + fmt.Printf("Aval = %d, Bval = %d\n", Aval, Bval) + + // Write the state back to the ledger + err = stub.PutState(A, []byte(strconv.Itoa(Aval))) + if err != nil { + return shim.Error(err.Error()) + } + + err = stub.PutState(B, []byte(strconv.Itoa(Bval))) + if err != nil { + return shim.Error(err.Error()) + } + + return shim.Success(nil) +} + +// Deletes an entity from state +func (t *SimpleChaincode) delete(stub shim.ChaincodeStubInterface, args []string) pb.Response { + if len(args) != 1 { + return shim.Error("Incorrect number of arguments. Expecting 1") + } + + A := args[0] + + // Delete the key from the state in ledger + err := stub.DelState(A) + if err != nil { + return shim.Error("Failed to delete state") + } + + return shim.Success(nil) +} + +// query callback representing the query of a chaincode +func (t *SimpleChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response { + var A string // Entities + var err error + + if len(args) != 1 { + return shim.Error("Incorrect number of arguments. Expecting name of the person to query") + } + + A = args[0] + + // Get the state from the ledger + Avalbytes, err := stub.GetState(A) + if err != nil { + jsonResp := "{\"Error\":\"Failed to get state for " + A + "\"}" + return shim.Error(jsonResp) + } + + if Avalbytes == nil { + jsonResp := "{\"Error\":\"Nil amount for " + A + "\"}" + return shim.Error(jsonResp) + } + + jsonResp := "{\"Name\":\"" + A + "\",\"Amount\":\"" + string(Avalbytes) + "\"}" + fmt.Printf("Query Response:%s\n", jsonResp) + return shim.Success(Avalbytes) +} + +func main() { + err := shim.Start(new(SimpleChaincode)) + if err != nil { + fmt.Printf("Error starting Simple chaincode: %s", err) + } +} diff --git a/hyperledger/1.0.1/e2e_cli/generateArtifacts.sh b/hyperledger/1.0.1/e2e_cli/generateArtifacts.sh new file mode 100644 index 00000000..c78bff00 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/generateArtifacts.sh @@ -0,0 +1,103 @@ +#!/bin/bash +x +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +#set -e + +CHANNEL_NAME=$1 +: ${CHANNEL_NAME:="mychannel"} +echo $CHANNEL_NAME + +export FABRIC_ROOT=$PWD/../.. +export FABRIC_CFG_PATH=$PWD +echo + +OS_ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}') + +## Using docker-compose template replace private key file names with constants +function replacePrivateKey () { + ARCH=`uname -s | grep Darwin` + if [ "$ARCH" == "Darwin" ]; then + OPTS="-it" + else + OPTS="-i" + fi + + cp docker-compose-e2e-template.yaml docker-compose-e2e.yaml + + CURRENT_DIR=$PWD + cd crypto-config/peerOrganizations/org1.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA1_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml + cd crypto-config/peerOrganizations/org2.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA2_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml +} + +## Generates Org certs using cryptogen tool +function generateCerts (){ + CRYPTOGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/cryptogen + + if [ -f "$CRYPTOGEN" ]; then + echo "Using cryptogen -> $CRYPTOGEN" + else + echo "Building cryptogen" + make -C $FABRIC_ROOT release + fi + + echo + echo "##########################################################" + echo "##### Generate certificates using cryptogen tool #########" + echo "##########################################################" + $CRYPTOGEN generate --config=./crypto-config.yaml + echo +} + +## Generate orderer genesis block , channel configuration transaction and anchor peer update transactions +function generateChannelArtifacts() { + + CONFIGTXGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/configtxgen + if [ -f "$CONFIGTXGEN" ]; then + echo "Using configtxgen -> $CONFIGTXGEN" + else + echo "Building configtxgen" + make -C $FABRIC_ROOT release + fi + + echo "##########################################################" + echo "######### Generating Orderer Genesis block ##############" + echo "##########################################################" + # Note: For some unknown reason (at least for now) the block file can't be + # named orderer.genesis.block or the orderer will fail to launch! + $CONFIGTXGEN -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block + + echo + echo "#################################################################" + echo "### Generating channel configuration transaction 'channel.tx' ###" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org1MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org2MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP + echo +} + +generateCerts +replacePrivateKey +generateChannelArtifacts + diff --git a/hyperledger/1.0.1/e2e_cli/network_setup.sh b/hyperledger/1.0.1/e2e_cli/network_setup.sh new file mode 100644 index 00000000..85fbd924 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/network_setup.sh @@ -0,0 +1,101 @@ +#!/bin/bash +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +UP_DOWN="$1" +CH_NAME="$2" +CLI_TIMEOUT="$3" +IF_COUCHDB="$4" + +: ${CLI_TIMEOUT:="10000"} + +COMPOSE_FILE=docker-compose-cli.yaml +COMPOSE_FILE_COUCH=docker-compose-couch.yaml +#COMPOSE_FILE=docker-compose-e2e.yaml + +function printHelp () { + echo "Usage: ./network_setup <\$channel-name> <\$cli_timeout> .\nThe arguments must be in order." +} + +function validateArgs () { + if [ -z "${UP_DOWN}" ]; then + echo "Option up / down / restart not mentioned" + printHelp + exit 1 + fi + if [ -z "${CH_NAME}" ]; then + echo "setting to default channel 'mychannel'" + CH_NAME=mychannel + fi +} + +function clearContainers () { + CONTAINER_IDS=$(docker ps -aq) + if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" = " " ]; then + echo "---- No containers available for deletion ----" + else + docker rm -f $CONTAINER_IDS + fi +} + +function removeUnwantedImages() { + DOCKER_IMAGE_IDS=$(docker images | grep "dev\|none\|test-vp\|peer[0-9]-" | awk '{print $3}') + if [ -z "$DOCKER_IMAGE_IDS" -o "$DOCKER_IMAGE_IDS" = " " ]; then + echo "---- No images available for deletion ----" + else + docker rmi -f $DOCKER_IMAGE_IDS + fi +} + +function networkUp () { + if [ -f "./crypto-config" ]; then + echo "crypto-config directory already exists." + else + #Generate all the artifacts that includes org certs, orderer genesis block, + # channel configuration transaction + source generateArtifacts.sh $CH_NAME + fi + + if [ "${IF_COUCHDB}" == "couchdb" ]; then + CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH up -d 2>&1 + else + CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 + fi + if [ $? -ne 0 ]; then + echo "ERROR !!!! Unable to pull the images " + exit 1 + fi + docker logs -f cli +} + +function networkDown () { + docker-compose -f $COMPOSE_FILE down + + #Cleanup the chaincode containers + clearContainers + + #Cleanup images + removeUnwantedImages + + # remove orderer block and other channel configuration transactions and certs + rm -rf channel-artifacts/*.block channel-artifacts/*.tx crypto-config +} + +validateArgs + +#Create the network using docker compose +if [ "${UP_DOWN}" == "up" ]; then + networkUp +elif [ "${UP_DOWN}" == "down" ]; then ## Clear the network + networkDown +elif [ "${UP_DOWN}" == "restart" ]; then ## Restart the network + networkDown + networkUp +else + printHelp + exit 1 +fi diff --git a/hyperledger/1.0.1/e2e_cli/scripts/script.sh b/hyperledger/1.0.1/e2e_cli/scripts/script.sh new file mode 100644 index 00000000..46d92067 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/scripts/script.sh @@ -0,0 +1,273 @@ +#!/bin/bash +# Copyright London Stock Exchange Group All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# +echo +echo " ____ _____ _ ____ _____ _____ ____ _____ " +echo "/ ___| |_ _| / \ | _ \ |_ _| | ____| |___ \ | ____|" +echo "\___ \ | | / _ \ | |_) | | | _____ | _| __) | | _| " +echo " ___) | | | / ___ \ | _ < | | |_____| | |___ / __/ | |___ " +echo "|____/ |_| /_/ \_\ |_| \_\ |_| |_____| |_____| |_____|" +echo + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="mychannel"} +: ${TIMEOUT:="60"} +COUNTER=1 +MAX_RETRY=5 +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +echo "Channel name : "$CHANNEL_NAME + +verifyResult () { + if [ $1 -ne 0 ] ; then + echo "!!!!!!!!!!!!!!! "$2" !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +setGlobals () { + + if [ $1 -eq 0 -o $1 -eq 1 ] ; then + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + if [ $1 -eq 0 ]; then + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + fi + else + CORE_PEER_LOCALMSPID="Org2MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp + if [ $1 -eq 2 ]; then + CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + fi + fi + + env |grep CORE +} + +checkOSNAvailability() { + #Use orderer's MSP for fetching system channel config block + CORE_PEER_LOCALMSPID="OrdererMSP" + CORE_PEER_TLS_ROOTCERT_FILE=$ORDERER_CA + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp + + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to fetch system channel 'testchainid' ...$(($(date +%s)-starttime)) secs" + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" >&log.txt + else + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Received block/ {print $NF}') + test "$VALUE" = "0" && let rc=0 + done + cat log.txt + verifyResult $rc "Ordering Service is not available, Please try again ..." + echo "===================== Ordering Service is up and running ===================== " + echo +} + +createChannel() { + setGlobals 0 + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Channel creation failed" + echo "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== " + echo +} + +updateAnchorPeers() { + PEER=$1 + setGlobals $PEER + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx >&log.txt + else + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Anchor peer update failed" + echo "===================== Anchor peers for org \"$CORE_PEER_LOCALMSPID\" on \"$CHANNEL_NAME\" is updated successfully ===================== " + sleep 5 + echo +} + +## Sometimes Join takes time hence RETRY atleast for 5 times +joinWithRetry () { + peer channel join -b $CHANNEL_NAME.block >&log.txt + res=$? + cat log.txt + if [ $res -ne 0 -a $COUNTER -lt $MAX_RETRY ]; then + COUNTER=` expr $COUNTER + 1` + echo "PEER$1 failed to join the channel, Retry after 2 seconds" + sleep 2 + joinWithRetry $1 + else + COUNTER=1 + fi + verifyResult $res "After $MAX_RETRY attempts, PEER$ch has failed to Join the Channel" +} + +joinChannel () { + for ch in 0 1 2 3; do + setGlobals $ch + joinWithRetry $ch + echo "===================== PEER$ch joined on the channel \"$CHANNEL_NAME\" ===================== " + sleep 2 + echo + done +} + +installChaincode () { + PEER=$1 + setGlobals $PEER + peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt + res=$? + cat log.txt + verifyResult $res "Chaincode installation on remote peer PEER$PEER has Failed" + echo "===================== Chaincode is installed on remote peer PEER$PEER ===================== " + echo +} + +instantiateChaincode () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + else + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Chaincode instantiation on PEER$PEER on channel '$CHANNEL_NAME' failed" + echo "===================== Chaincode Instantiation on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +chaincodeQuery () { + PEER=$1 + echo "===================== Querying on PEER$PEER on channel '$CHANNEL_NAME'... ===================== " + setGlobals $PEER + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to Query PEER$PEER ...$(($(date +%s)-starttime)) secs" + peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Query Result/ {print $NF}') + test "$VALUE" = "$2" && let rc=0 + done + echo + cat log.txt + if test $rc -eq 0 ; then + echo "===================== Query on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + else + echo "!!!!!!!!!!!!!!! Query result on PEER$PEER is INVALID !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +chaincodeInvoke () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + else + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Invoke execution on PEER$PEER failed " + echo "===================== Invoke transaction on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +## Check for orderering service availablility +echo "Check orderering service availability..." +checkOSNAvailability + +## Create channel +echo "Creating channel..." +createChannel + +## Join all the peers to the channel +echo "Having all peers join the channel..." +joinChannel + +## Set the anchor peers for each org in the channel +echo "Updating anchor peers for org1..." +updateAnchorPeers 0 +echo "Updating anchor peers for org2..." +updateAnchorPeers 2 + +## Install chaincode on Peer0/Org1 and Peer2/Org2 +echo "Installing chaincode on org1/peer0..." +installChaincode 0 +echo "Install chaincode on org2/peer2..." +installChaincode 2 + +#Instantiate chaincode on Peer2/Org2 +echo "Instantiating chaincode on org2/peer2..." +instantiateChaincode 2 + +#Query on chaincode on Peer0/Org1 +echo "Querying chaincode on org1/peer0..." +chaincodeQuery 0 100 + +#Invoke on chaincode on Peer0/Org1 +echo "Sending invoke transaction on org1/peer0..." +chaincodeInvoke 0 + +## Install chaincode on Peer3/Org2 +echo "Installing chaincode on org2/peer3..." +installChaincode 3 + +#Query on chaincode on Peer3/Org2, check if the result is 90 +echo "Querying chaincode on org2/peer3..." +chaincodeQuery 3 90 + +echo +echo "===================== All GOOD, End-2-End execution completed ===================== " +echo + +echo +echo " _____ _ _ ____ _____ ____ _____ " +echo "| ____| | \ | | | _ \ | ____| |___ \ | ____|" +echo "| _| | \| | | | | | _____ | _| __) | | _| " +echo "| |___ | |\ | | |_| | |_____| | |___ / __/ | |___ " +echo "|_____| |_| \_| |____/ |_____| |_____| |_____|" +echo + +exit 0 diff --git a/hyperledger/1.0.1/kafka/README.md b/hyperledger/1.0.1/kafka/README.md new file mode 100644 index 00000000..3509ba7d --- /dev/null +++ b/hyperledger/1.0.1/kafka/README.md @@ -0,0 +1,24 @@ +[WIP] + +## Start a network base on kafka + +```bash +$ cd ~/docker-compose-files/tree/master/hyperledger/1.0/kafka +$ docker-compose -f orderer-kafka.yaml up (-d) +``` +When the fabric-network fully started, it takes about 15-20s. + +## Test chaincode + +```bash +$ docker exec -it fabric-cli bash +$ bash ./scripts/initialize.sh # initialize the fabric network +$ bash ./scripts/test_4peers.sh +``` + +>(Optional) If you want to use official images, you can run the following command first +> +> ```bash +> $ cd ~/docker-compose-files/tree/master/hyperledger/1.0 +> $ bash ./scripts/download_official_images.sh +> ``` diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/.gitkeep b/hyperledger/1.0.1/kafka/channel-artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/Org1MSPanchors.tx b/hyperledger/1.0.1/kafka/channel-artifacts/Org1MSPanchors.tx new file mode 100644 index 0000000000000000000000000000000000000000..21c6e973efed77c78baba77e4832abcfb91f892e GIT binary patch literal 262 zcmd;TX5td%66Ro1;!i3q&df_KE>6x!%*#v75qinU^^B1VL)c%)my6r6pdcqRIk6-& zKTpVxgHgzei`~B{-Ox8UKuBMTor@X7U{K=bVh>79Oi3*&hH%1*GD{#FE-p65l-$fb zpoCN-qfkAni3LCta}XvbaxlWpl+pt#%}dV6FA7Kn86__y%O%YvRsiG}=;Z^QpqE;a Wm|KvOs+XLfE6{DOgk%$L_W%H~+eA$O literal 0 HcmV?d00001 diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/Org2MSPanchors.tx b/hyperledger/1.0.1/kafka/channel-artifacts/Org2MSPanchors.tx new file mode 100644 index 0000000000000000000000000000000000000000..337b1adba39cb46c873d6ece410147a8a3458441 GIT binary patch literal 262 zcmd;TX5td%66Ro1;!i3q&df_KE>6x!%*#v75qinU^^B1VL)c%)my6r6pdcqRIk6-& zKTpVxgHgzei`~B{-N-jMKuBMTor@X7U{K=bVh=CMEJ-aY26DK#*c?-GGxI=fphQq= zVhUJ7s*zEs9@WGGpouvM6B9WYrSyO*@{%+1ivm(Xy5xmqxum(o3V<8~y?mg}dZ`tO Wxdl0?ddc~@0^Q~)Zh%{b(?I|L!9-91 literal 0 HcmV?d00001 diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/channel.tx b/hyperledger/1.0.1/kafka/channel-artifacts/channel.tx new file mode 100644 index 0000000000000000000000000000000000000000..d99299606d9cb073be34f6ccb312ff061ddaadd7 GIT binary patch literal 381 zcma)$u}Z^09EVNBHvWq?{BgQ5o1MJtrOj;?XQ|l1N#yQ&(Szg?aw+%*K7im0xcdyw zK8~Z4RiaWsaQuEBeEi@oge$m=Leh&KpI={glA&68>x}pMMmlGT(Xkn;Bh5JzS+1$3 zT*zGITxUW|awQmNQ)xIge8PniW3D9^sSs36vy`bUP4OXw`w)JIagK*DnALS*wQOzW zkl+CN^X8hKF3xbP1NI3d0XV6gubS4bN<2V>cp=NWFh47K3h*x2Ox{Mp-_e9XZ?-J0 p^BCiPw2kn^akzHmXH#@U4^X;;2 znUQAVzt8dY{LcBE-wAkh{^p-=-uT)(fAJ@O^smo_@BZ2^Brm+Fed8?u{fB?{57;-p z{)a#Jou5MflLi0Ig72~*13!EA^n<6*pFjJ(KYjl%pL_ITWQLKk((R4Cc0$k*Nm4^4j^oJOrOAKmOxGI_KRDH6`8Nqllv$c3piJ#o0mrh0krM=5c@|7q99pahhr_kkTlBiS>5|*(j%P_i zn!$vyG7Qw)DUoR-Gk_a!dD!jC|pYAP{b`>DUKu)YkoEFx!%0qk9Czw zX$MXY`wW>>ihVZT1BOS(8s_F2)=7IZoE{8(nd)`3Sx&{X>1s8f;^9ncI&-X+G9=Uw zHk?dh{0a=c4>e4fmBDkek?=W0InqjbnM>7j&DpQz$2Fijc+Lr7LI@hE2ttoa`pP7y zWUhE-<*gAoHxMv7)YaLA;Wf9KOsO0$9Bw=1crd}}n5AZ!rZydY$~*I%nsK;sa9(jj zasL}mYPx2Rj*MRF4n6*2E>i}F`+FMzQ%=?}D*kXoyf_%w!?Rsa;u>9OQ9XjV{G3n> ztg#T_WN0PxY_@Bisriw#>gjUbvV5hwNMPCru zA`Y}3PL~@nA(Oqad@!CQFrn~j4!7lNV}u69T7nhF)vjms8eFS7(xpld42uuByAX|_ zHCF<*h7Oe(gS)=g=_G^00UewW64r+|oJ(JDoAb4>B_#+GQD9e)Ux;bLCaPXWw{tuN z6K-nDM@xWi4e8BTS}hHM?^TS*eg^8 zO$F6ScQVn0ci#njd{I1k6LXJ#_4)nIJ0RI33rNl@M@S0PY`C&QdhB`v)=^q`yrojh zfdkyKcB{2B8VkiMxeR0QapU+H#^B?|@iC0ShsQBA>74GVe`_Ow^4ydYu3&(U{9*M?m3} z_(&)iq+mfxAw74BdD+tCv7|nc#uCw;tvPz=6WG`{>R{y8pquZePTj1GH{C=`nJqEa zg=n}Al3-KB-7au@gF0$YoAyTUFo{PE20YJE;T~<^gK#q;2a`SAs1i+yKyXDI-vta% z!s;$mT?d9(09AynC0EgKsa-%2seLle=sCp)Yr6~8akylNWi;8=hjZGs$)MvCEQRyA zuAtg%cwux&v5!Y9F`TXVxFUf{lu;LPhwDyj$;vaNJ3xWI0-lu^h#}9Hf19oTSMIG_ zi+$Z{oj_tXl4&zpHV7XMeV7MuF>jLO4Uk}EuK&J+WXa*ReX=h=qAq%A4sK8QPX-iF zqK9L&j}4R}#!>kuP}T`urdvT6Q0XlIxdam^j7Tb-)#eQEXj1c5G~EU!a6}W;%%mAN zFzT&U%VY)>PUoqmRY{j7JBhdy3oUV1i_oTpyLDcSXN#pZ?F~A0Ksh6=HdF1C^>90! zJA$4y5}DlaT&p+Vjc`XMaNB{SL+R<@aM_`7$PrN2_GPL>nOks`1h+J*{0vDr-W!YD z!B{RP;*?tFT$LWbdk7=g-51 zXK%tsHSmHO*pV58$d4mGa`rUxS>z0PzWD#l*;D5)BA-4H(31xWE`5p}@~s0s-tYYKy=lg9 zuF+$5;;8A6LObNr3?``*$pzJ&{6Oe2`=s>vhT;D=dTc)_J-%W1B=ndWv+2fMvn;ob zlSbxqOe;u(Ez>j4>Y@0CwY#3uz)tQgktUepG>*}o49IE7KEGGpESZ(r|&~6M( zKT!KogTi!Wl=Wf3;bXjKXT5Czq~^4x%vb&$Ea1_v-%pL@0*(f8tolW_%4J?iMzKnS z%cx)3O;*eC=m*oS-ay%H-Rcd)j|9j0C*7?+CMQXv3aS|CY7_2B{D+_o+}DlbW0xsj zKxAftki+@PqEmEXv-4HbUUvht1q?GKlP$%M(Acrmd6(a1<3=>X`E9$io+>q6pghGM zYE;*6+cX`HebO;J+mU5_$iYSrlwBuzpuwdQ!B`~Zt`=?Rz@o;7d%Daf!kQxnkR_QK zWlq^f`{E>>!z&O!gwWbf%h&43&w5G>KI!=7b= z!KfKY+(r$m+jX5txWEfNue+v;qM9g8bk%618np2S45p(%gw~`tl7~_)uj2KVtSt?| zk7{;($c+OBc1G+%cC0&l#vAnbH}0)lW(kzlsfQHdAYF}`bFm?X)d@*PYgfrD4eLhT zS~%Z(S?5Olr%VnPLBghFn%JifW6-1;Cs6Naav-47uwFTC%&^K zz5x3W)7*n#`HUPctI!f1w+uO=!Nj30IIws>j&j$Uv>yg>L^=pr`Qs4Qg z@=mLlVc~i;0n)T6n{wAn7*VF%t*PcWY>8>3W;7Eqy^>uJ>l^j!=v?}O`<$=WugCIE zmGviE2eAscsXkKV^Dlu{iIu+D zm@W~RdSv^XvG3YOR?zd8&OU{l9qIb{XRDWX)lpDzaWkkM==oc>?RfOY(HB9Gvx4eB zi#&rob-c@4-H^X|y=(&Zr$GMdb>v&G0&uxmDBZ|kzk2?=mo)yj9wNW|5c%@M)Bcj? zfA?PMFfEz9r9P$(eN{7O>sk~TZO(KvREklaU*E`xy8KCJM4E)sA=~*ffnAfIL?fXu zr79|EmW}mZIR=lV<0lgc_WD3?ebNU24nMk*c2yrJb8?}i2?_DThyv zI>)F?dRO&(Pzd;mDnl8!j7!~;#UE>!9F8YE0inQ?WR+nTeAH^>O=A+I>jA2no0bPy zZKMlZM(=E=0_nEtcF!jl!eG|t)A@MR3+Q#Lu@0s>!!;PR6A^M1GHhF(5je5%8$G@l zc=QG(hqy)|@U3&%_e+J~Pr@EXASNHdx#T6_sQ!O|nBdxKl&CwU z$kemGS06}IENo-3xA4hcot)KbbZ54XTfJN$L7^VhCPI+6O>$|q=GAUpK!c$QLn6%< zil1}N#+_XV<4Rkk_~cGr^60;xyHCp|N**#l5q81o?Q)ZEDNfv-EwHe9fyK?%O)Y!- ziOX~o4rlkFNvycx)vzqbN^}mDBmW@1l6o9a2~Mgo-k6dyRcP16_(+BgPM+kP;umY| zevQjdYl%`&sN-M^eB8;{aWGa0g~epdf!gKeanyuf&s8@Tde;(1p<92L(guow-AT75 zX4YmsX?V?fDK9xCR-HeXV9EgGP~9{Txqpw zsO?!DH-*dvisGZydeBL0)b;dC9(C(JY54+eCL@AwUWC3rV6$nBZw)I3uK;7)o7VzV zNm18UVwPZ;9?3-lRr6E_Q)dn>G@BAL8&=5vK<2Z_#xGb^pHDPmpx@E3-r(i`ac>pU zO4-`l9jlNa^ov~OWJ`RZt~wi`ZSb9VBj1p%!|yL1t^}M+O~vp)$CXAgS-CPP`3RVp zlLt)fS@Hh`69pa))8e~}s9#J=_EoA-sOh6ZeZ7$0&b?36n+moU?#3N;b3Ev((+|^Adv$p+tAl0xa8)n?5h-YUC zn6-T`_bw~cZPdFE&dWLMhmTf=WK~twKq7Lb?aq2tfs8tsBDGB_cEya|HY(@@B%-M$ z8|?=7eiG->7nIJ|x%Ux?lO*0|nM>FO_A-LUE*cfg9uG525gkY2^Qv6YL8`lx%z;Hu z?dqcqc44_?Cc;u|Ki?U{ZY zA+I3Mf@iSscuD6!27dUGcZ|Ty_$0u?WmCG()6`oP*c>L%Z>gneM-1^N!(r zUu@T!wOgB>^Pd0@7(HCs8w&log.txt + else + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Received block/ {print $NF}') + test "$VALUE" = "0" && let rc=0 + done + cat log.txt + verifyResult $rc "Ordering Service is not available, Please try again ..." + echo "===================== Ordering Service is up and running ===================== " + echo +} + +# Use peer0/org1 to create a channel +createChannel() { + setGlobals 0 + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --timeout $TIMEOUT >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA --timeout $TIMEOUT >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Channel creation failed" + echo_g "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== " + echo +} + +updateAnchorPeers() { + PEER=$1 + setGlobals $PEER + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx >&log.txt + else + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Anchor peer update failed" + echo "===================== Anchor peers for org \"$CORE_PEER_LOCALMSPID\" on \"$CHANNEL_NAME\" is updated successfully ===================== " + sleep 5 + echo +} + +## Sometimes Join takes time hence RETRY atleast for 5 times +joinWithRetry () { + peer channel join -b $CHANNEL_NAME.block >&log.txt + res=$? + cat log.txt + if [ $res -ne 0 -a $COUNTER -lt $MAX_RETRY ]; then + COUNTER=` expr $COUNTER + 1` + echo_b "PEER$1 failed to join the channel, Retry after 2 seconds" + sleep 2 + joinWithRetry $1 + else + COUNTER=1 + fi + verifyResult $res "After $MAX_RETRY attempts, PEER$ch has failed to Join the Channel" +} + +# Join given (by default all) peers into the channel +joinChannel () { + peer_to_join=$(seq 0 3) + if [ $# -gt 0 ]; then + peer_to_join=$@ + fi + for i in $peer_to_join; do + setGlobals $i + joinWithRetry $i + echo_g "===================== PEER$i joined on the channel \"$CHANNEL_NAME\" ===================== " + sleep 2 + echo + done +} + +# Install chaincode on specifized peer node +installChaincode () { + PEER=$1 + setGlobals $PEER + peer chaincode install -n $CC_NAME -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt + res=$? + cat log.txt + verifyResult $res "Chaincode installation on remote peer PEER$PEER has Failed" + echo_g "===================== Chaincode is installed on remote peer PEER$PEER ===================== " + echo +} + +# Instantiate chaincode on specifized peer node +instantiateChaincode () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n $CC_NAME -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + else + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n $CC_NAME -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Chaincode instantiation on PEER$PEER on channel '$CHANNEL_NAME' failed" + echo_g "===================== Chaincode Instantiation on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +chaincodeQuery () { + PEER=$1 + echo_b "===================== Querying on PEER$PEER on channel '$CHANNEL_NAME'... ===================== " + setGlobals $PEER + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo_b "Attempting to Query PEER$PEER ...$(($(date +%s)-starttime)) secs" + peer chaincode query -C $CHANNEL_NAME -n $CC_NAME -c '{"Args":["query","a"]}' >&log.txt + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Query Result/ {print $NF}') + test "$VALUE" = "$2" && let rc=0 + done + echo + cat log.txt + if test $rc -eq 0 ; then + echo_g "===================== Query on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + else + echo_r "!!!!!!!!!!!!!!! Query result on PEER$PEER is INVALID !!!!!!!!!!!!!!!!" + echo_r "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +chaincodeInvoke () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n $CC_NAME -c '{"Args":["invoke","a","b","10"]}' >&log.txt + else + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n $CC_NAME -c '{"Args":["invoke","a","b","10"]}' >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Invoke execution on PEER$PEER failed " + echo_g "===================== Invoke transaction on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + diff --git a/hyperledger/1.0.1/scripts/header.sh b/hyperledger/1.0.1/scripts/header.sh new file mode 100644 index 00000000..7620a87e --- /dev/null +++ b/hyperledger/1.0.1/scripts/header.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +## DO NOT MODIFY THE FOLLOWING PART, UNLESS YOU KNOW WHAT IT MEANS ## +echo_r () { + [ $# -ne 1 ] && return 0 + echo -e "\033[31m$1\033[0m" +} +echo_g () { + [ $# -ne 1 ] && return 0 + echo -e "\033[32m$1\033[0m" +} +echo_y () { + [ $# -ne 1 ] && return 0 + echo -e "\033[33m$1\033[0m" +} +echo_b () { + [ $# -ne 1 ] && return 0 + echo -e "\033[34m$1\033[0m" +} \ No newline at end of file diff --git a/hyperledger/1.0.1/scripts/initialize_all.sh b/hyperledger/1.0.1/scripts/initialize_all.sh new file mode 100644 index 00000000..767ef334 --- /dev/null +++ b/hyperledger/1.0.1/scripts/initialize_all.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo +echo " ============================================== " +echo " ==========initialize businesschannel========== " +echo " ============================================== " +echo + +echo_b "Channel name : "$CHANNEL_NAME + +## Create channel +echo_b "Creating channel..." +createChannel + +## Join all the peers to the channel +echo_b "Having all peers join the channel..." +joinChannel + + +## Set the anchor peers for each org in the channel +echo_b "Updating anchor peers for org1..." +updateAnchorPeers 0 +echo_b "Updating anchor peers for org2..." +updateAnchorPeers 2 + +## Install chaincode on all peers +echo_b "Installing chaincode on all 4 peers..." +installChaincode 0 +installChaincode 1 +installChaincode 2 +installChaincode 3 + +# Instantiate chaincode on all peers +# Instantiate can only be executed once on any node +echo_b "Instantiating chaincode on all 2 channels (once for each channel)..." +instantiateChaincode 0 +instantiateChaincode 2 + + +echo +echo_g "===================== All GOOD, initialization completed ===================== " +echo + +echo +echo " _____ _ _ ____ " +echo "| ____| | \ | | | _ \ " +echo "| _| | \| | | | | |" +echo "| |___ | |\ | | |_| |" +echo "|_____| |_| \_| |____/ " +echo + +exit 0 diff --git a/hyperledger/1.0.1/scripts/initialize_peer0.sh b/hyperledger/1.0.1/scripts/initialize_peer0.sh new file mode 100644 index 00000000..c1f6f6ee --- /dev/null +++ b/hyperledger/1.0.1/scripts/initialize_peer0.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo +echo " ============================================== " +echo " ==========initialize businesschannel========== " +echo " ============================================== " +echo + +echo_b "Channel name : "$CHANNEL_NAME + +## Create channel +echo_b "Creating channel..." +createChannel + +## Join all the peers to the channel +echo_b "Having all peers join the channel..." +joinChannel 0 + + +## Set the anchor peers for each org in the channel +echo_b "Updating anchor peers for peer0/org1..." +updateAnchorPeers 0 + +## Install chaincode on all peers +echo_b "Installing chaincode on peer0..." +installChaincode 0 + +# Instantiate chaincode on all peers +# Instantiate can only be executed once on any node +echo_b "Instantiating chaincode on the channel..." +instantiateChaincode 0 + + +echo +echo_g "===================== All GOOD, initialization completed ===================== " +echo + +echo +echo " _____ _ _ ____ " +echo "| ____| | \ | | | _ \ " +echo "| _| | \| | | | | |" +echo "| |___ | |\ | | |_| |" +echo "|_____| |_| \_| |____/ " +echo + +exit 0 diff --git a/hyperledger/1.0.1/scripts/setup_Docker.sh b/hyperledger/1.0.1/scripts/setup_Docker.sh new file mode 100644 index 00000000..7e5a534d --- /dev/null +++ b/hyperledger/1.0.1/scripts/setup_Docker.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +# Install docker on Ubuntu/Debian system + +# Detecting whether can import the header file to render colorful cli output +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +if [ xroot != x$(whoami) ] +then + echo_r "You must run as root (Hint: sudo su)" + exit +fi + +apt-get update && apt-get install curl -y + +echo_b "Install Docker..." + +wget -qO- https://get.docker.com/ | sh +sudo service docker stop +nohup sudo docker daemon --api-cors-header="*" -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock& + +echo_g "Docker Installation Done" + +echo_b "Install Docker-Compose..." + +curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +docker-compose --version + + +echo_g "Docker-Compose Installation Done" + diff --git a/hyperledger/1.0.1/scripts/test_cc_all.sh b/hyperledger/1.0.1/scripts/test_cc_all.sh new file mode 100644 index 00000000..9e13635a --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_cc_all.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo_b "Channel name : "$CHANNEL_NAME + +#Query on chaincode on Peer0/Org1 +echo_b "Querying chaincode on all 4 peers..." +chaincodeQuery 0 100 +chaincodeQuery 1 100 +chaincodeQuery 2 100 +chaincodeQuery 3 100 + +#Invoke on chaincode on Peer0/Org1 +echo_b "Sending invoke transaction (transfer 10) on org1/peer0..." +chaincodeInvoke 0 + +#Query on chaincode on Peer1/Org2, check if the result is 90 +echo_b "Querying chaincode on all 4 peers..." +chaincodeQuery 0 90 +chaincodeQuery 1 90 +chaincodeQuery 2 90 +chaincodeQuery 3 90 + +#Invoke on chaincode on Peer1/Org2 +echo_b "Sending invoke transaction on org2/peer3..." +chaincodeInvoke 3 + +#Query on chaincode on Peer1/Org2, check if the result is 80 +echo_b "Querying chaincode on all 4peers..." +chaincodeQuery 0 80 +chaincodeQuery 1 80 +chaincodeQuery 2 80 +chaincodeQuery 3 80 + +echo +echo_g "===================== All GOOD, End-2-End execution completed ===================== " +echo + +exit 0 diff --git a/hyperledger/1.0.1/scripts/test_cc_peer0.sh b/hyperledger/1.0.1/scripts/test_cc_peer0.sh new file mode 100644 index 00000000..658e4d6e --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_cc_peer0.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo_b "Channel name : "$CHANNEL_NAME + + +echo_b "====================Query the existing value of a====================================" +chaincodeQuery 0 100 + +echo_b "=====================Invoke a transaction to transfer 10 from a to b==================" +chaincodeInvoke 0 + +sleep 2 + +echo_b "=====================Check if the result of a is 90===================================" +chaincodeQuery 0 90 + +echo +echo_g "=====================All GOOD, MVE Test completed ===================== " +echo +exit 0 diff --git a/hyperledger/1.0.1/scripts/test_lscc.sh b/hyperledger/1.0.1/scripts/test_lscc.sh new file mode 100644 index 00000000..14b6b371 --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_lscc.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +# This script will run some qscc queries for testing. + +# Detecting whether can import the header file to render colorful cli output +# Need add choice option +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="businesschannel"} + +echo_b "LSCC testing" + +# invoke required following params + #-o orderer.example.com:7050 \ + #--tls "true" \ + #--cafile ${ORDERER_CA} \ + +echo_b "Get id" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getid","businesschannel", "mycc"]}' + +echo_b "Get cc ChaincodeDeploymentSpec" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getdepspec","businesschannel", "mycc"]}' + +echo_b "Get cc bytes" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getccdata","businesschannel", "mycc"]}' + +echo_b "Get all chaincodes installed on the channel" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getinstalledchaincodes"]}' + +echo_b "Get all chaincodes instantiated on the channel" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getchaincodes"]}' + +echo_g "LSCC testing done!" \ No newline at end of file diff --git a/hyperledger/1.0.1/scripts/test_qscc.sh b/hyperledger/1.0.1/scripts/test_qscc.sh new file mode 100644 index 00000000..41bddd72 --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_qscc.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +# This script will run some qscc queries for testing. + +# Detecting whether can import the header file to render colorful cli output +# Need add choice option +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + + +#CHANNEL_NAME="$1" +#: ${CHANNEL_NAME:="businesschannel"} + +echo_b "Qscc GetChainInfo" +peer chaincode query -C "" -n qscc -c '{"Args":["GetChainInfo","businesschannel"]}' + +echo_b "Qscc GetBlockByNumber 2" +peer chaincode query -C "" -n qscc -c '{"Args":["GetBlockByNumber","businesschannel","2"]}' + +echo_g "Qscc testing done!" \ No newline at end of file