├── .gitignore ├── LICENSE ├── README.md ├── benchmark ├── drm │ ├── config.json │ ├── fabric.json │ ├── main.js │ ├── publish.js │ └── query.js └── simple │ ├── config-fabric.json │ ├── config-iroha.json │ ├── config-sawtooth.json │ ├── config-zookeeper.json │ ├── config.json │ ├── fabric-remote.json │ ├── fabric.json │ ├── iroha.json │ ├── main.js │ ├── open.js │ ├── query.js │ └── sawtooth.json ├── docs ├── Architecture.md ├── Fabric Configuration.md ├── Zookeeper client design.md ├── architecture.png ├── fabric-flow.png ├── report.png ├── test-framework.png ├── zk-arch.png └── zk-structure.png ├── network ├── fabric │ └── simplenetwork │ │ ├── configtx.yaml │ │ ├── crypto-config.yaml │ │ ├── crypto-config │ │ ├── ordererOrganizations │ │ │ └── example.com │ │ │ │ ├── ca │ │ │ │ ├── 8854fbdf1c73508089f7a2b1ca44f6c9ef153cd51ba9de677567170cfa6de132_sk │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ ├── orderers │ │ │ │ └── orderer.example.com │ │ │ │ │ ├── msp │ │ │ │ │ ├── admincerts │ │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ │ ├── cacerts │ │ │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ │ ├── keystore │ │ │ │ │ │ └── 159a3d8dc0cafd93810739f43b1d91db0c41eec7a6a34ae1509e07850e2d28d7_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── orderer.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── server.crt │ │ │ │ │ └── server.key │ │ │ │ ├── tlsca │ │ │ │ ├── b3e491b2d86f0cd4929c5c048e04d96c0a13a84fc8cc4446508d2d84cbbc1680_sk │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ └── users │ │ │ │ └── Admin@example.com │ │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ ├── keystore │ │ │ │ │ └── be595291403ff68280a724d7e868521815ad9e2fc8c5486f6d7ce6b62d6357cd_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ └── peerOrganizations │ │ │ ├── org1.example.com │ │ │ ├── ca │ │ │ │ ├── 2fbb10374113397e45316b7487a605f800a1a4883e769b3ade3c65b903ae48fc_sk │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ ├── peers │ │ │ │ ├── peer0.org1.example.com │ │ │ │ │ ├── msp │ │ │ │ │ │ ├── admincerts │ │ │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ │ │ ├── cacerts │ │ │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ │ │ ├── keystore │ │ │ │ │ │ │ └── d4570d6dd037a2cab7aa4574947b3197891b2968ed3c3f0b3a7b6e17f7480d70_sk │ │ │ │ │ │ ├── signcerts │ │ │ │ │ │ │ └── peer0.org1.example.com-cert.pem │ │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ │ ├── ca.crt │ │ │ │ │ │ ├── server.crt │ │ │ │ │ │ └── server.key │ │ │ │ └── peer1.org1.example.com │ │ │ │ │ ├── msp │ │ │ │ │ ├── admincerts │ │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ │ ├── cacerts │ │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ │ ├── keystore │ │ │ │ │ │ └── d010c48f1defc5617d8504028d9ba99285b64d5f271f6540972b29a52c8f095d_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── peer1.org1.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── server.crt │ │ │ │ │ └── server.key │ │ │ ├── tlsca │ │ │ │ ├── 43b3771112e9204fe9aa1b7053e898192396cdd63f4c2e013bb8ca65651d4688_sk │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ └── users │ │ │ │ ├── Admin@org1.example.com │ │ │ │ ├── msp │ │ │ │ │ ├── admincerts │ │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ │ ├── cacerts │ │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ │ ├── keystore │ │ │ │ │ │ └── 0d2b2fc385b10fa59003217e1bb5af2d24a3d762266e287867a1bc290eb44657_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── server.crt │ │ │ │ │ └── server.key │ │ │ │ └── User1@org1.example.com │ │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── User1@org1.example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ ├── keystore │ │ │ │ │ └── 5d199bc2e226583a82ae5b3bb94fe471bfb1523d774f5a4a3d23dad52aed59b2_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── User1@org1.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ └── org2.example.com │ │ │ ├── ca │ │ │ ├── bf56c23fc917c718d3461b2c9de54e75c36575e883e808091e25e4d64520c4f9_sk │ │ │ └── ca.org2.example.com-cert.pem │ │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@org2.example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.org2.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org2.example.com-cert.pem │ │ │ ├── peers │ │ │ ├── peer0.org2.example.com │ │ │ │ ├── msp │ │ │ │ │ ├── admincerts │ │ │ │ │ │ └── Admin@org2.example.com-cert.pem │ │ │ │ │ ├── cacerts │ │ │ │ │ │ └── ca.org2.example.com-cert.pem │ │ │ │ │ ├── keystore │ │ │ │ │ │ └── 84194068906c55a5b80ca3237d265ca718518d38c8864ee245382b517af637bc_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── peer0.org2.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.org2.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── server.crt │ │ │ │ │ └── server.key │ │ │ └── peer1.org2.example.com │ │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@org2.example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.org2.example.com-cert.pem │ │ │ │ ├── keystore │ │ │ │ │ └── 86deba2e7b6b1e5181504582309db0f8a6b21088473c27ba4b5b78be0ba7ca8e_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── peer1.org2.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.org2.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ ├── tlsca │ │ │ ├── b5c282dcf44af80154ba336b2c7919d604a0ec41f0f9938df1f123240a814d50_sk │ │ │ └── tlsca.org2.example.com-cert.pem │ │ │ └── users │ │ │ ├── Admin@org2.example.com │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@org2.example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.org2.example.com-cert.pem │ │ │ │ ├── keystore │ │ │ │ │ └── febc59257fd86c4e1020727d6915f6af9c5b698abdb1133cc7b2c8105961d96d_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── Admin@org2.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.org2.example.com-cert.pem │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ └── User1@org2.example.com │ │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── User1@org2.example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.org2.example.com-cert.pem │ │ │ ├── keystore │ │ │ │ └── ff3381273256aa3d4ad48cdc59bafc683a3fbb817cf4ddb9154790b86ae91172_sk │ │ │ ├── signcerts │ │ │ │ └── User1@org2.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org2.example.com-cert.pem │ │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── server.crt │ │ │ └── server.key │ │ ├── docker-compose.yaml │ │ ├── generate.sh │ │ ├── mychannel.tx │ │ └── twoorgs.genesis.block ├── iroha │ └── simplenetwork │ │ ├── admin@test.priv │ │ ├── admin@test.pub │ │ ├── docker-compose.yml │ │ ├── genesis.block │ │ ├── node0 │ │ ├── config.sample │ │ ├── node0.priv │ │ └── node0.pub │ │ ├── node1 │ │ ├── config.sample │ │ ├── node1.priv │ │ └── node1.pub │ │ ├── peers.list │ │ ├── test@test.priv │ │ ├── test@test.pub │ │ └── wait-for-it.sh └── sawtooth │ └── simplenetwork │ └── sawtooth-default-validators-simple.yaml ├── package.json ├── scripts ├── list.js ├── start.sh └── test.js └── src ├── comm ├── bench-flow.js ├── blockchain-interface.js ├── blockchain.js ├── client │ ├── client-util.js │ ├── client.js │ ├── local-client.js │ ├── zoo-client.js │ └── zoo-util.js ├── monitor-docker.js ├── monitor-interface.js ├── monitor-process.js ├── monitor.js ├── rate-control │ ├── fixedRate.js │ ├── rateControl.js │ └── rateInterface.js ├── report.js ├── sleep.js └── template │ └── report.html ├── contract ├── fabric │ ├── drm │ │ └── drmtest.go │ └── simple │ │ └── simpletest.go ├── iroha │ └── simple │ │ └── factory.js └── sawtooth │ ├── docker │ └── sawtooth-int-simple-tp-python │ └── simple │ ├── simple-tp-python │ └── simple_python │ ├── build │ └── lib │ │ └── sawtooth_simple │ │ ├── __init__.py │ │ ├── intkey_message_factory.py │ │ └── processor │ │ ├── __init__.py │ │ ├── handler.py │ │ └── main.py │ ├── dist │ └── sawtooth_simple-0.8.8.dev1-py3.5.egg │ ├── nose2.cfg │ ├── packaging │ └── systemd │ │ ├── sawtooth-simple-tp-python │ │ └── sawtooth-simple-tp-python.service │ ├── sawtooth_simple.egg-info │ ├── PKG-INFO │ ├── SOURCES.txt │ ├── dependency_links.txt │ ├── entry_points.txt │ ├── requires.txt │ └── top_level.txt │ ├── sawtooth_simple │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-35.pyc │ │ └── intkey_message_factory.cpython-35.pyc │ └── processor │ │ ├── __init__.py │ │ ├── __pycache__ │ │ ├── __init__.cpython-35.pyc │ │ ├── handler.cpython-35.pyc │ │ └── main.cpython-35.pyc │ │ ├── handler.py │ │ └── main.py │ └── setup.py ├── fabric ├── constant.js ├── create-channel.js ├── e2eUtils.js ├── fabric.js ├── install-chaincode.js ├── instantiate-chaincode.js ├── join-channel.js └── util.js ├── gui ├── README.md ├── output │ └── demo.json ├── src │ └── demo.js └── www │ ├── .idea │ ├── caliper.iml │ ├── modules.xml │ └── workspace.xml │ ├── echart │ ├── LICENSE.txt │ └── js │ │ ├── .DS_Store │ │ ├── chart │ │ ├── bar.js │ │ ├── chord.js │ │ ├── eventRiver.js │ │ ├── force.js │ │ ├── funnel.js │ │ ├── gauge.js │ │ ├── heatmap.js │ │ ├── k.js │ │ ├── line.js │ │ ├── map.js │ │ ├── pie.js │ │ ├── radar.js │ │ ├── scatter.js │ │ ├── tree.js │ │ ├── treemap.js │ │ ├── venn.js │ │ └── wordCloud.js │ │ └── echarts.js │ ├── index.html │ ├── polyfills │ ├── README.md │ └── eventsource.js │ ├── remotecontrol.php │ └── stop.php ├── iroha ├── external │ ├── README.md │ ├── block_pb.js │ ├── commands_pb.js │ ├── endpoint_grpc_pb.js │ ├── endpoint_pb.js │ ├── irohanode.node │ ├── libiroha.so │ ├── loader_grpc_pb.js │ ├── loader_pb.js │ ├── ordering_grpc_pb.js │ ├── ordering_pb.js │ ├── primitive_pb.js │ ├── queries_pb.js │ ├── responses_pb.js │ ├── yac_grpc_pb.js │ └── yac_pb.js ├── iroha.js └── type.js └── sawtooth └── sawtooth.js /.gitignore: -------------------------------------------------------------------------------- 1 | architecture.pptx 2 | .idea/* 3 | *.bak 4 | node_modules/* 5 | -------------------------------------------------------------------------------- /benchmark/drm/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "blockchain": { 3 | "type": "fabric", 4 | "config": "benchmark/drm/fabric.json" 5 | }, 6 | "command" : { 7 | "start": "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml up -d", 8 | "end" : "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml down;docker rm $(docker ps -aq)" 9 | }, 10 | "test": { 11 | "name": "drm", 12 | "description" : "Benchmark for DRM scenario", 13 | "clients": { 14 | "type": "local", 15 | "number": 1 16 | }, 17 | "rounds": [ 18 | { 19 | "label" : "publish", 20 | "txNumbAndTps" : [[1,1]], 21 | "arguments": { "itemBytes": 2048000 }, 22 | "callback" : "benchmark/drm/publish.js" 23 | }, 24 | { 25 | "label" : "query", 26 | "txNumbAndTps" : [[1,1]], 27 | "callback" : "benchmark/drm/query.js" 28 | }] 29 | }, 30 | "monitor": { 31 | "type": "docker", 32 | "docker":{ 33 | "name": ["peer0.org1.example.com", "peer1.org1.example.com", "peer0.org2.example.com", "peer1.org2.example.com", "orderer.example.com"] 34 | }, 35 | "interval": 1 36 | } 37 | } -------------------------------------------------------------------------------- /benchmark/drm/fabric.json: -------------------------------------------------------------------------------- 1 | { 2 | "fabric": { 3 | "cryptodir": "network/fabric/simplenetwork/crypto-config", 4 | "network": { 5 | "orderer": { 6 | "url": "grpcs://localhost:7050", 7 | "mspid": "OrdererMSP", 8 | "msp": "network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/msp/", 9 | "server-hostname": "orderer.example.com", 10 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt" 11 | }, 12 | "org1": { 13 | "name": "peerOrg1", 14 | "mspid": "Org1MSP", 15 | "msp": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/msp/", 16 | "ca": { 17 | "url": "https://localhost:7054", 18 | "name": "ca-org1" 19 | }, 20 | "peer1": { 21 | "requests": "grpcs://localhost:7051", 22 | "events": "grpcs://localhost:7053", 23 | "server-hostname": "peer0.org1.example.com", 24 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" 25 | }, 26 | "peer2": { 27 | "requests": "grpcs://localhost:7057", 28 | "events": "grpcs://localhost:7059", 29 | "server-hostname": "peer1.org1.example.com", 30 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt" 31 | } 32 | }, 33 | "org2": { 34 | "name": "peerOrg2", 35 | "mspid": "Org2MSP", 36 | "msp": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/msp/", 37 | "ca": { 38 | "url": "https://localhost:8054", 39 | "name": "ca-org2" 40 | }, 41 | "peer1": { 42 | "requests": "grpcs://localhost:8051", 43 | "events": "grpcs://localhost:8053", 44 | "server-hostname": "peer0.org2.example.com", 45 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" 46 | }, 47 | "peer2": { 48 | "requests": "grpcs://localhost:8057", 49 | "events": "grpcs://localhost:8059", 50 | "server-hostname": "peer1.org2.example.com", 51 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt" 52 | } 53 | } 54 | }, 55 | "channel": [ 56 | { 57 | "name": "mychannel", 58 | "deployed": false, 59 | "config": "network/fabric/simplenetwork/mychannel.tx", 60 | "organizations": ["org1", "org2"] 61 | } 62 | ], 63 | "chaincodes": [{"id": "drm", "path": "contract/fabric/drm", "version": "v0", "language":"golang", "channel": "mychannel"}], 64 | "endorsement-policy": { 65 | "identities": [ 66 | { 67 | "role": { 68 | "name": "member", 69 | "mspId": "Org1MSP" 70 | } 71 | }, 72 | { 73 | "role": { 74 | "name": "member", 75 | "mspId": "Org2MSP" 76 | } 77 | }, 78 | { 79 | "role": { 80 | "name": "admin", 81 | "mspId": "Org1MSP" 82 | } 83 | } 84 | ], 85 | "policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]} 86 | }, 87 | "context": { 88 | "publish": "mychannel", 89 | "query": "mychannel" 90 | } 91 | }, 92 | "info" : { 93 | "Version": "1.0.0", 94 | "Size": "4 Peers", 95 | "Orderer": "Solo", 96 | "Distribution": "Single Host" 97 | } 98 | } -------------------------------------------------------------------------------- /benchmark/drm/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 9 | 'use strict' 10 | 11 | var configFile; 12 | var networkFile; 13 | function setConfig(file) { 14 | configFile = file; 15 | } 16 | 17 | function setNetwork(file) { 18 | networkFile = file; 19 | } 20 | 21 | function main() { 22 | var program = require('commander'); 23 | program.version('0.1') 24 | .option('-c, --config ', 'config file of the benchmark, default is config.json', setConfig) 25 | .option('-n, --network ', 'config file of the blockchain system under test, if not provided, blockchain property in benchmark config is used', setNetwork) 26 | .parse(process.argv); 27 | 28 | var path = require('path'); 29 | var fs = require('fs-extra'); 30 | var absConfigFile; 31 | if(typeof configFile === 'undefined') { 32 | absConfigFile = path.join(__dirname, 'config.json'); 33 | } 34 | else { 35 | absConfigFile = path.join(__dirname, configFile); 36 | } 37 | if(!fs.existsSync(absConfigFile)) { 38 | console.log('file ' + absConfigFile + ' does not exist'); 39 | return; 40 | } 41 | 42 | var absNetworkFile; 43 | var absCaliperDir = path.join(__dirname, '../..'); 44 | if(typeof networkFile === 'undefined') { 45 | try{ 46 | let config = require(absConfigFile); 47 | absNetworkFile = path.join(absCaliperDir, config.blockchain.config); 48 | } 49 | catch(err) { 50 | console.log('failed to find blockchain.config in ' + absConfigFile); 51 | return; 52 | } 53 | } 54 | else { 55 | absNetworkFile = path.join(__dirname, networkFile); 56 | } 57 | if(!fs.existsSync(absNetworkFile)) { 58 | console.log('file ' + absNetworkFile + ' does not exist'); 59 | return; 60 | } 61 | 62 | 63 | var framework = require('../../src/comm/bench-flow.js'); 64 | framework.run(absConfigFile, absNetworkFile); 65 | } 66 | 67 | main(); 68 | 69 | 70 | 71 | 72 | 73 | 74 | /* 75 | var config_path; 76 | if(process.argv.length < 3) { 77 | config_path = path.join(__dirname, 'config.json'); 78 | } 79 | else { 80 | config_path = path.join(__dirname, process.argv[2]); 81 | } 82 | 83 | // use default framework to run the tests 84 | var framework = require('../../src/comm/bench-flow.js'); 85 | framework.run(config_path); 86 | */ 87 | -------------------------------------------------------------------------------- /benchmark/drm/publish.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 9 | 'use strict' 10 | 11 | var crypto = require('crypto'); 12 | 13 | module.exports.info = "publishing digital items"; 14 | 15 | var bc, contx; 16 | var itemBytes = 1024; // default value 17 | var ids = []; // save the generated item ids 18 | 19 | module.exports.ids = ids; 20 | 21 | module.exports.init = function(blockchain, context, args) { 22 | if(args.hasOwnProperty('itemBytes') ) { 23 | itemBytes = args.itemBytes; 24 | } 25 | 26 | bc = blockchain; 27 | contx = context; 28 | return Promise.resolve(); 29 | } 30 | 31 | module.exports.run = function() { 32 | var date = new Date(); 33 | var today = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear(); 34 | var author = process.pid.toString(); 35 | var buf = crypto.randomBytes(itemBytes).toString('base64'); 36 | var item = { 37 | 'author' : author, 38 | 'createtime' : today, 39 | 'info' : '', 40 | 'item' : buf 41 | }; 42 | return bc.invokeSmartContract(contx, 'drm', 'v0', {verb : 'publish', item: JSON.stringify(item)}, 120); 43 | } 44 | 45 | module.exports.end = function(results) { 46 | for (let i in results){ 47 | let stat = results[i]; 48 | if(stat.status === 'success') { 49 | ids.push(stat.result.toString()); 50 | } 51 | } 52 | return Promise.resolve(); 53 | } 54 | /********************** 55 | * save published items' identity 56 | **********************/ 57 | /*var idfile = './tmp/ids.log' 58 | var fs = require('fs'); 59 | module.exports.end = function(results) { 60 | for (let i in results){ 61 | let stat = results[i]; 62 | if(stat.status === 'success') { 63 | fs.appendFileSync(idfile, stat.result.toString() + '\n'); 64 | } 65 | } 66 | return Promise.resolve(); 67 | }*/ 68 | -------------------------------------------------------------------------------- /benchmark/drm/query.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 9 | 'use strict' 10 | 11 | module.exports.info = "querying digital items"; 12 | 13 | var bc, contx; 14 | var itemIDs; 15 | module.exports.init = function(blockchain, context, args) { 16 | var publish = require('./publish.js'); 17 | bc = blockchain; 18 | contx = context; 19 | itemIDs = publish.ids; 20 | return Promise.resolve(); 21 | } 22 | 23 | module.exports.run = function() { 24 | var id = itemIDs[Math.floor(Math.random()*(itemIDs.length))]; 25 | return bc.queryState(contx, 'drm', 'v0', id); 26 | } 27 | 28 | module.exports.end = function(results) { 29 | return Promise.resolve(); 30 | } 31 | -------------------------------------------------------------------------------- /benchmark/simple/config-fabric.json: -------------------------------------------------------------------------------- 1 | { 2 | "blockchain": { 3 | "type": "fabric", 4 | "config": "benchmark/simple/fabric.json" 5 | }, 6 | "command" : { 7 | "start": "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml up -d", 8 | "end" : "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml down;docker rm $(docker ps -aq)" 9 | }, 10 | "test": { 11 | "clients": { 12 | "type": "local", 13 | "number": 5 14 | }, 15 | "rounds": [{ 16 | "label" : "open", 17 | "txNumber" : [5000, 5000, 5000], 18 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 100}}, {"type": "fixed-rate", "opts": {"tps" : 200}}, {"type": "fixed-rate", "opts": {"tps" : 300}}], 19 | "arguments": { "money": 10000 }, 20 | "callback" : "benchmark/simple/open.js" 21 | }, 22 | { 23 | "label" : "query", 24 | "txNumbAndTps" : [5000, 5000], 25 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 300}}, {"type": "fixed-rate", "opts": {"tps" : 400}}], 26 | "callback" : "benchmark/simple/query.js" 27 | }] 28 | }, 29 | "monitor": { 30 | "type": ["docker", "process"], 31 | "docker":{ 32 | "name": ["all"] 33 | }, 34 | "process": [ 35 | { 36 | "command" : "node", 37 | "arguments" : "local-client.js", 38 | "multiOutput" : "avg" 39 | } 40 | ], 41 | "interval": 1 42 | } 43 | } -------------------------------------------------------------------------------- /benchmark/simple/config-iroha.json: -------------------------------------------------------------------------------- 1 | { 2 | "blockchain": { 3 | "type": "iroha", 4 | "config": "benchmark/simple/iroha.json" 5 | }, 6 | "command" : { 7 | "start": "docker-compose -f network/iroha/simplenetwork/docker-compose.yml up -d", 8 | "end" : "docker-compose -f network/iroha/simplenetwork/docker-compose.yml down;docker rm $(docker ps -aq)" 9 | }, 10 | "test": { 11 | "clients": { 12 | "type": "local", 13 | "number": 5 14 | }, 15 | "rounds": [{ 16 | "label" : "open", 17 | "txNumbAndTps" : [500], 18 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}], 19 | "arguments": { "money": 10000 }, 20 | "callback" : "benchmark/simple/open.js" 21 | }, 22 | { 23 | "label" : "query", 24 | "txNumbAndTps" : [500], 25 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}], 26 | "callback" : "benchmark/simple/query.js" 27 | }] 28 | }, 29 | "monitor": { 30 | "type": ["docker", "process"], 31 | "docker":{ 32 | "name": ["all"] 33 | }, 34 | "process": [ 35 | { 36 | "command" : "node", 37 | "arguments" : "local-client.js", 38 | "multiOutput" : "avg" 39 | } 40 | ], 41 | "interval": 1 42 | } 43 | } -------------------------------------------------------------------------------- /benchmark/simple/config-sawtooth.json: -------------------------------------------------------------------------------- 1 | { 2 | "blockchain": { 3 | "type": "sawtooth", 4 | "config": "benchmark/simple/sawtooth.json" 5 | }, 6 | "test": { 7 | "clients": { 8 | "type": "local", 9 | "number": 1 10 | }, 11 | "rounds": [{ 12 | "label" : "open", 13 | "txNumber" : [100], 14 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 1}}], 15 | "arguments": { "money": 10000 }, 16 | "callback" : "benchmark/simple/open.js" 17 | }, 18 | { 19 | "label" : "query", 20 | "txNumber" : [100], 21 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 1}}], 22 | "callback" : "benchmark/simple/query.js" 23 | }] 24 | }, 25 | "monitor": { 26 | "type": "docker", 27 | "docker":{ 28 | "name": ["all"] 29 | }, 30 | "interval": 1 31 | } 32 | } -------------------------------------------------------------------------------- /benchmark/simple/config-zookeeper.json: -------------------------------------------------------------------------------- 1 | { 2 | "blockchain": { 3 | "type": "fabric", 4 | "config": "benchmark/simple/fabric-remote.json" 5 | }, 6 | "command" : { 7 | "start": "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml up -d", 8 | "end" : "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml down;docker rm $(docker ps -aq)" 9 | }, 10 | "test": { 11 | "name": "simple", 12 | "description" : "This is an example benchmark for caliper, to test the backend DLT's performance with simple account opening & querying transactions", 13 | "clients": { 14 | "type": "zookeeper", 15 | "zoo" : { 16 | "server": "10.229.42.159:2181", 17 | "clientsPerHost": 5 18 | } 19 | }, 20 | "rounds": [{ 21 | "label" : "open", 22 | "txNumber" : [2000], 23 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 200}}], 24 | "arguments": { "money": 10000 }, 25 | "callback" : "benchmark/simple/open.js" 26 | }, 27 | { 28 | "label" : "query", 29 | "txNumber" : [2000], 30 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 200}}], 31 | "callback" : "benchmark/simple/query.js" 32 | }] 33 | }, 34 | "monitor": { 35 | "type": ["docker"], 36 | "docker":{ 37 | "name": ["all"] 38 | }, 39 | "interval": 1 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /benchmark/simple/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "blockchain": { 3 | "type": "fabric", 4 | "config": "benchmark/simple/fabric.json" 5 | }, 6 | "command" : { 7 | "start": "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml up -d", 8 | "end" : "docker-compose -f network/fabric/simplenetwork/docker-compose.yaml down;docker rm $(docker ps -aq)" 9 | }, 10 | "test": { 11 | "name": "simple", 12 | "description" : "This is an example benchmark for caliper, to test the backend DLT's performance with simple account opening & querying transactions", 13 | "clients": { 14 | "type": "local", 15 | "number": 5 16 | }, 17 | "rounds": [{ 18 | "label" : "open", 19 | "txNumber" : [5000, 5000, 5000], 20 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 100}}, {"type": "fixed-rate", "opts": {"tps" : 200}}, {"type": "fixed-rate", "opts": {"tps" : 300}}], 21 | "arguments": { "money": 10000 }, 22 | "callback" : "benchmark/simple/open.js" 23 | }, 24 | { 25 | "label" : "query", 26 | "txNumber" : [5000, 5000], 27 | "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 300}}, {"type": "fixed-rate", "opts": {"tps" : 400}}], 28 | "callback" : "benchmark/simple/query.js" 29 | }] 30 | }, 31 | "monitor": { 32 | "type": ["docker", "process"], 33 | "docker":{ 34 | "name": ["all"] 35 | }, 36 | "process": [ 37 | { 38 | "command" : "node", 39 | "arguments" : "local-client.js", 40 | "multiOutput" : "avg" 41 | } 42 | ], 43 | "interval": 1 44 | } 45 | } -------------------------------------------------------------------------------- /benchmark/simple/fabric-remote.json: -------------------------------------------------------------------------------- 1 | { 2 | "fabric": { 3 | "cryptodir": "network/fabric/simplenetwork/crypto-config", 4 | "network": { 5 | "orderer": { 6 | "url": "grpcs://10.229.42.159:7050", 7 | "mspid": "OrdererMSP", 8 | "msp": "network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/msp/", 9 | "server-hostname": "orderer.example.com", 10 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt" 11 | }, 12 | "org1": { 13 | "name": "peerOrg1", 14 | "mspid": "Org1MSP", 15 | "msp": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/msp/", 16 | "ca": { 17 | "url": "https://10.229.42.159:7054", 18 | "name": "ca-org1" 19 | }, 20 | "peer1": { 21 | "requests": "grpcs://10.229.42.159:7051", 22 | "events": "grpcs://10.229.42.159:7053", 23 | "server-hostname": "peer0.org1.example.com", 24 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" 25 | }, 26 | "peer2": { 27 | "requests": "grpcs://10.229.42.159:7057", 28 | "events": "grpcs://10.229.42.159:7059", 29 | "server-hostname": "peer1.org1.example.com", 30 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt" 31 | } 32 | }, 33 | "org2": { 34 | "name": "peerOrg2", 35 | "mspid": "Org2MSP", 36 | "msp": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/msp/", 37 | "ca": { 38 | "url": "https://10.229.42.159:8054", 39 | "name": "ca-org2" 40 | }, 41 | "peer1": { 42 | "requests": "grpcs://10.229.42.159:8051", 43 | "events": "grpcs://10.229.42.159:8053", 44 | "server-hostname": "peer0.org2.example.com", 45 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" 46 | }, 47 | "peer2": { 48 | "requests": "grpcs://10.229.42.159:8057", 49 | "events": "grpcs://10.229.42.159:8059", 50 | "server-hostname": "peer1.org2.example.com", 51 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt" 52 | } 53 | } 54 | }, 55 | "channel": [ 56 | { 57 | "name": "mychannel", 58 | "config": "network/fabric/simplenetwork/mychannel.tx", 59 | "organizations": ["org1", "org2"] 60 | } 61 | ], 62 | "chaincodes": [{"id": "simple", "path": "contract/fabric/simple", "language":"golang", "version": "v0", "channel": "mychannel"}], 63 | "endorsement-policy": { 64 | "identities": [ 65 | { 66 | "role": { 67 | "name": "member", 68 | "mspId": "Org1MSP" 69 | } 70 | }, 71 | { 72 | "role": { 73 | "name": "member", 74 | "mspId": "Org2MSP" 75 | } 76 | }, 77 | { 78 | "role": { 79 | "name": "admin", 80 | "mspId": "Org1MSP" 81 | } 82 | } 83 | ], 84 | "policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]} 85 | }, 86 | "context": { 87 | "open": "mychannel", 88 | "query": "mychannel" 89 | } 90 | }, 91 | "info" : { 92 | "Version": "1.0.5", 93 | "Size": "4 Peers", 94 | "Orderer": "Solo", 95 | "Distribution": "Single Host" 96 | } 97 | } -------------------------------------------------------------------------------- /benchmark/simple/fabric.json: -------------------------------------------------------------------------------- 1 | { 2 | "fabric": { 3 | "cryptodir": "network/fabric/simplenetwork/crypto-config", 4 | "network": { 5 | "orderer": { 6 | "url": "grpcs://localhost:7050", 7 | "mspid": "OrdererMSP", 8 | "msp": "network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/msp/", 9 | "server-hostname": "orderer.example.com", 10 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt" 11 | }, 12 | "org1": { 13 | "name": "peerOrg1", 14 | "mspid": "Org1MSP", 15 | "msp": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/msp/", 16 | "ca": { 17 | "url": "https://localhost:7054", 18 | "name": "ca-org1" 19 | }, 20 | "peer1": { 21 | "requests": "grpcs://localhost:7051", 22 | "events": "grpcs://localhost:7053", 23 | "server-hostname": "peer0.org1.example.com", 24 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" 25 | }, 26 | "peer2": { 27 | "requests": "grpcs://localhost:7057", 28 | "events": "grpcs://localhost:7059", 29 | "server-hostname": "peer1.org1.example.com", 30 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt" 31 | } 32 | }, 33 | "org2": { 34 | "name": "peerOrg2", 35 | "mspid": "Org2MSP", 36 | "msp": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/msp/", 37 | "ca": { 38 | "url": "https://localhost:8054", 39 | "name": "ca-org2" 40 | }, 41 | "peer1": { 42 | "requests": "grpcs://localhost:8051", 43 | "events": "grpcs://localhost:8053", 44 | "server-hostname": "peer0.org2.example.com", 45 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" 46 | }, 47 | "peer2": { 48 | "requests": "grpcs://localhost:8057", 49 | "events": "grpcs://localhost:8059", 50 | "server-hostname": "peer1.org2.example.com", 51 | "tls_cacerts": "network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt" 52 | } 53 | } 54 | }, 55 | "channel": [ 56 | { 57 | "name": "mychannel", 58 | "config": "network/fabric/simplenetwork/mychannel.tx", 59 | "organizations": ["org1", "org2"] 60 | } 61 | ], 62 | "chaincodes": [{"id": "simple", "path": "contract/fabric/simple", "language":"golang", "version": "v0", "channel": "mychannel"}], 63 | "endorsement-policy": { 64 | "identities": [ 65 | { 66 | "role": { 67 | "name": "member", 68 | "mspId": "Org1MSP" 69 | } 70 | }, 71 | { 72 | "role": { 73 | "name": "member", 74 | "mspId": "Org2MSP" 75 | } 76 | }, 77 | { 78 | "role": { 79 | "name": "admin", 80 | "mspId": "Org1MSP" 81 | } 82 | } 83 | ], 84 | "policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]} 85 | }, 86 | "context": { 87 | "open": "mychannel", 88 | "query": "mychannel" 89 | } 90 | }, 91 | "info" : { 92 | "Version": "1.0.5", 93 | "Size": "4 Peers", 94 | "Orderer": "Solo", 95 | "Distribution": "Single Host" 96 | } 97 | } -------------------------------------------------------------------------------- /benchmark/simple/iroha.json: -------------------------------------------------------------------------------- 1 | { 2 | "iroha": { 3 | "admin" :{ 4 | "account":"admin", 5 | "domain" : "test", 6 | "key-pub":"network/iroha/simplenetwork/admin@test.pub", 7 | "key-priv":"network/iroha/simplenetwork/admin@test.priv" 8 | }, 9 | "network": { 10 | "node0": { 11 | "torii": "localhost:50051" 12 | }, 13 | "node1": { 14 | "torii": "localhost:50052" 15 | } 16 | }, 17 | "fakecontract": [ 18 | {"factory": "src/contract/iroha/simple/factory.js", "id":["simple"]} 19 | ] 20 | }, 21 | "info" : { 22 | "Version": "develop", 23 | "Size": "2 Peers", 24 | "Distribution": "Single Host" 25 | } 26 | } -------------------------------------------------------------------------------- /benchmark/simple/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 9 | 'use strict' 10 | 11 | var configFile; 12 | var networkFile; 13 | function setConfig(file) { 14 | configFile = file; 15 | } 16 | 17 | function setNetwork(file) { 18 | networkFile = file; 19 | } 20 | 21 | function main() { 22 | var program = require('commander'); 23 | program.version('0.1') 24 | .option('-c, --config ', 'config file of the benchmark, default is config.json', setConfig) 25 | .option('-n, --network ', 'config file of the blockchain system under test, if not provided, blockchain property in benchmark config is used', setNetwork) 26 | .parse(process.argv); 27 | 28 | var path = require('path'); 29 | var fs = require('fs-extra'); 30 | var absConfigFile; 31 | if(typeof configFile === 'undefined') { 32 | absConfigFile = path.join(__dirname, 'config.json'); 33 | } 34 | else { 35 | absConfigFile = path.join(__dirname, configFile); 36 | } 37 | if(!fs.existsSync(absConfigFile)) { 38 | console.log('file ' + absConfigFile + ' does not exist'); 39 | return; 40 | } 41 | 42 | var absNetworkFile; 43 | var absCaliperDir = path.join(__dirname, '../..'); 44 | if(typeof networkFile === 'undefined') { 45 | try{ 46 | let config = require(absConfigFile); 47 | absNetworkFile = path.join(absCaliperDir, config.blockchain.config); 48 | } 49 | catch(err) { 50 | console.log('failed to find blockchain.config in ' + absConfigFile); 51 | return; 52 | } 53 | } 54 | else { 55 | absNetworkFile = path.join(__dirname, networkFile); 56 | } 57 | if(!fs.existsSync(absNetworkFile)) { 58 | console.log('file ' + absNetworkFile + ' does not exist'); 59 | return; 60 | } 61 | 62 | 63 | var framework = require('../../src/comm/bench-flow.js'); 64 | framework.run(absConfigFile, absNetworkFile); 65 | } 66 | 67 | main(); 68 | 69 | 70 | 71 | 72 | 73 | 74 | /* 75 | var config_path; 76 | if(process.argv.length < 3) { 77 | config_path = path.join(__dirname, 'config.json'); 78 | } 79 | else { 80 | config_path = path.join(__dirname, process.argv[2]); 81 | } 82 | 83 | // use default framework to run the tests 84 | var framework = require('../../src/comm/bench-flow.js'); 85 | framework.run(config_path); 86 | */ 87 | -------------------------------------------------------------------------------- /benchmark/simple/open.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 'use strict' 9 | 10 | module.exports.info = "opening accounts"; 11 | 12 | var accounts = []; 13 | var initMoney; 14 | var bc, contx; 15 | module.exports.init = function(blockchain, context, args) { 16 | if(!args.hasOwnProperty('money')) { 17 | return Promise.reject(new Error("simple.open - 'money' is missed in the arguments")); 18 | } 19 | 20 | initMoney = args['money'].toString(); 21 | bc = blockchain; 22 | contx = context; 23 | return Promise.resolve(); 24 | } 25 | 26 | var dic = 'abcdefghijklmnopqrstuvwxyz'; 27 | function get26Num(number){ 28 | var result = ''; 29 | while(number > 0) { 30 | result += dic.charAt(number % 26); 31 | number = parseInt(number/26); 32 | } 33 | return result; 34 | } 35 | var prefix; 36 | function generateAccount() { 37 | // should be [a-z]{1,9} 38 | if(typeof prefix === 'undefined') { 39 | prefix = get26Num(process.pid); 40 | } 41 | return prefix + get26Num(accounts.length+1); 42 | } 43 | 44 | module.exports.run = function() { 45 | var newAcc = generateAccount(); 46 | accounts.push(newAcc); 47 | return bc.invokeSmartContract(contx, 'simple', 'v0', {verb: 'open', account: newAcc, money: initMoney}, 30); 48 | } 49 | 50 | module.exports.end = function(results) { 51 | return Promise.resolve(); 52 | } 53 | 54 | module.exports.accounts = accounts; -------------------------------------------------------------------------------- /benchmark/simple/query.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 'use strict' 9 | 10 | module.exports.info = "querying accounts"; 11 | 12 | 13 | var bc, contx; 14 | var accounts; 15 | module.exports.init = function(blockchain, context, args) { 16 | var open = require('./open.js'); 17 | bc = blockchain; 18 | contx = context; 19 | accounts = open.accounts; 20 | return Promise.resolve(); 21 | } 22 | 23 | module.exports.run = function() { 24 | var acc = accounts[Math.floor(Math.random()*(accounts.length))]; 25 | 26 | return bc.queryState(contx, 'simple', 'v0', acc); 27 | } 28 | 29 | module.exports.end = function(results) { 30 | // do nothing 31 | return Promise.resolve(); 32 | } 33 | -------------------------------------------------------------------------------- /benchmark/simple/sawtooth.json: -------------------------------------------------------------------------------- 1 | { 2 | "sawtooth": { 3 | "network": { 4 | "restapi": { 5 | "url": "http://127.0.0.1:8080" 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /docs/Zookeeper client design.md: -------------------------------------------------------------------------------- 1 | ![architecture](zk-arch.png) 2 | 3 | The architecture is as shown in the figure. The concept of master, zookeeper client, as well as local client can be found in [architecture](Architecture.md) document. 4 | 5 | Each zookeeper client creates three znodes under /caliper folder: 6 | * /caliper/clients/client_id, which uniquely identifies this zookeeper client 7 | * /caliper/client_id_in, which contains sequential child znodes which represent messages sent to this zookeeper client. 8 | * /caliper/client_id_out, which contains messages created by this zookeeper client 9 | 10 | The master learns the availability of zookeeper clients by getting children in /caliper/clients, then it can assign tasks to these clients by creating child znodes under each client's "in" folder. It also watch all "out" folder to get responses. 11 | 12 | If a new child is created in its "in" folder, the zookeeper client will get the notification, then it can read the data and handle the message accordingly. For example, if the message contains a testing task, the zookeeper client will launch multiple local clients to run the test according to the workload defined in the task. 13 | 14 | The zookeeper structure described before is as below: 15 | 16 | ![structure](zk-structure.png) 17 | 18 | The zookeeper client will try to remove znodes it creates when it is closed. Users can remove the caliper folder to clean up garbage manually. 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/docs/architecture.png -------------------------------------------------------------------------------- /docs/fabric-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/docs/fabric-flow.png -------------------------------------------------------------------------------- /docs/report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/docs/report.png -------------------------------------------------------------------------------- /docs/test-framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/docs/test-framework.png -------------------------------------------------------------------------------- /docs/zk-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/docs/zk-arch.png -------------------------------------------------------------------------------- /docs/zk-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/docs/zk-structure.png -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | # --------------------------------------------------------------------------- 7 | # "OrdererOrgs" - Definition of organizations managing orderer nodes 8 | # --------------------------------------------------------------------------- 9 | OrdererOrgs: 10 | # --------------------------------------------------------------------------- 11 | # Orderer 12 | # --------------------------------------------------------------------------- 13 | - Name: Orderer 14 | Domain: example.com 15 | # --------------------------------------------------------------------------- 16 | # "Specs" - See PeerOrgs below for complete description 17 | # --------------------------------------------------------------------------- 18 | Specs: 19 | - Hostname: orderer 20 | # --------------------------------------------------------------------------- 21 | # "PeerOrgs" - Definition of organizations managing peer nodes 22 | # --------------------------------------------------------------------------- 23 | PeerOrgs: 24 | # --------------------------------------------------------------------------- 25 | # Org1 26 | # --------------------------------------------------------------------------- 27 | - Name: Org1 28 | Domain: org1.example.com 29 | # --------------------------------------------------------------------------- 30 | # "Specs" 31 | # --------------------------------------------------------------------------- 32 | # Uncomment this section to enable the explicit definition of hosts in your 33 | # configuration. Most users will want to use Template, below 34 | # 35 | # Specs is an array of Spec entries. Each Spec entry consists of two fields: 36 | # - Hostname: (Required) The desired hostname, sans the domain. 37 | # - CommonName: (Optional) Specifies the template or explicit override for 38 | # the CN. By default, this is the template: 39 | # 40 | # "{{.Hostname}}.{{.Domain}}" 41 | # 42 | # which obtains its values from the Spec.Hostname and 43 | # Org.Domain, respectively. 44 | # --------------------------------------------------------------------------- 45 | # Specs: 46 | # - Hostname: foo # implicitly "foo.org1.example.com" 47 | # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above 48 | # - Hostname: bar 49 | # - Hostname: baz 50 | # --------------------------------------------------------------------------- 51 | # "Template" 52 | # --------------------------------------------------------------------------- 53 | # Allows for the definition of 1 or more hosts that are created sequentially 54 | # from a template. By default, this looks like "peer%d" from 0 to Count-1. 55 | # You may override the number of nodes (Count), the starting index (Start) 56 | # or the template used to construct the name (Hostname). 57 | # 58 | # Note: Template and Specs are not mutually exclusive. You may define both 59 | # sections and the aggregate nodes will be created for you. Take care with 60 | # name collisions 61 | # --------------------------------------------------------------------------- 62 | Template: 63 | Count: 2 64 | # Start: 5 65 | # Hostname: {{.Prefix}}{{.Index}} # default 66 | # --------------------------------------------------------------------------- 67 | # "Users" 68 | # --------------------------------------------------------------------------- 69 | # Count: The number of user accounts _in addition_ to Admin 70 | # --------------------------------------------------------------------------- 71 | Users: 72 | Count: 1 73 | # --------------------------------------------------------------------------- 74 | # Org2: See "Org1" for full specification 75 | # --------------------------------------------------------------------------- 76 | - Name: Org2 77 | Domain: org2.example.com 78 | Template: 79 | Count: 2 80 | Users: 81 | Count: 1 82 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/ca/8854fbdf1c73508089f7a2b1ca44f6c9ef153cd51ba9de677567170cfa6de132_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUVvt3NZ5jE0QYwtz 3 | Qx41+HNGv4GyUj3FVPMqy43JL0ihRANCAAQP9m5DGT+WxjlqvS4sO+gvsMLYixZP 4 | 8fT+t/o0EnMlo1pYWZh42iOMbTz0bi5MK3GKTQYJ9IY5RGe+YrMsFqG+ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICMDCCAdagAwIBAgIRAJsvIdytwaqRqSl+/iQzC0EwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQP9m5DGT+WxjlqvS4sO+gvsMLY 9 | ixZP8fT+t/o0EnMlo1pYWZh42iOMbTz0bi5MK3GKTQYJ9IY5RGe+YrMsFqG+o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCIVPvfHHNQgIn3orHKRPbJ7xU81Rup3md1ZxcM+m3hMjAK 12 | BggqhkjOPQQDAgNIADBFAiEAwPMYKvDQTTtiBa0MOYIioAY7fVO9RFXMOOuYA78s 13 | cL4CIFBlSZzjCVb88Qap4MJDodoR9LVZArlTwtukf9lWDI2F 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQDWwr2Oc9gseaHoDO6iv/QjAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEZLglaaXoQc3MHUUAcqJL7owxs7mbs+n6kbuHdEzvFHIq3TETJDg4 9 | UfsBUz9mOI3D//4Cz56MgMfSkaKXv9xayKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgiFT73xxzUICJ96KxykT2ye8VPNUbqd5n 11 | dWcXDPpt4TIwCgYIKoZIzj0EAwIDSAAwRQIhALSLBNZI4snmFD6xN+6htt2PqFHG 12 | qIwh9MLRfL4qMCz2AiAHQQfQvu5DEBZ/91Vn/0WfYbM6/etQpu4atyBaJdN4Ig== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICMDCCAdagAwIBAgIRAJsvIdytwaqRqSl+/iQzC0EwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQP9m5DGT+WxjlqvS4sO+gvsMLY 9 | ixZP8fT+t/o0EnMlo1pYWZh42iOMbTz0bi5MK3GKTQYJ9IY5RGe+YrMsFqG+o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCIVPvfHHNQgIn3orHKRPbJ7xU81Rup3md1ZxcM+m3hMjAK 12 | BggqhkjOPQQDAgNIADBFAiEAwPMYKvDQTTtiBa0MOYIioAY7fVO9RFXMOOuYA78s 13 | cL4CIFBlSZzjCVb88Qap4MJDodoR9LVZArlTwtukf9lWDI2F 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQSrq2RtcXxglHCeKe+NbiOjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPaortDMzWKuv6eiD3S2 9 | 0fly6PrFthL9lWODLPR2M32UXHgholATmpbU9go90drQ1QDr92O7Gv51LCzUJxU3 10 | t4WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTL 12 | vBaAMAoGCCqGSM49BAMCA0gAMEUCIQCtjJqpp4CFZSXm6n2TD2FQCkY/HYrrujcR 13 | 55vmzNemPwIgEH7CN+iPzBXSItHT3rYupyt/FlcwmJ3pZII/LIu3Sg8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQDWwr2Oc9gseaHoDO6iv/QjAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEZLglaaXoQc3MHUUAcqJL7owxs7mbs+n6kbuHdEzvFHIq3TETJDg4 9 | UfsBUz9mOI3D//4Cz56MgMfSkaKXv9xayKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgiFT73xxzUICJ96KxykT2ye8VPNUbqd5n 11 | dWcXDPpt4TIwCgYIKoZIzj0EAwIDSAAwRQIhALSLBNZI4snmFD6xN+6htt2PqFHG 12 | qIwh9MLRfL4qMCz2AiAHQQfQvu5DEBZ/91Vn/0WfYbM6/etQpu4atyBaJdN4Ig== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICMDCCAdagAwIBAgIRAJsvIdytwaqRqSl+/iQzC0EwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQP9m5DGT+WxjlqvS4sO+gvsMLY 9 | ixZP8fT+t/o0EnMlo1pYWZh42iOMbTz0bi5MK3GKTQYJ9IY5RGe+YrMsFqG+o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCIVPvfHHNQgIn3orHKRPbJ7xU81Rup3md1ZxcM+m3hMjAK 12 | BggqhkjOPQQDAgNIADBFAiEAwPMYKvDQTTtiBa0MOYIioAY7fVO9RFXMOOuYA78s 13 | cL4CIFBlSZzjCVb88Qap4MJDodoR9LVZArlTwtukf9lWDI2F 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/159a3d8dc0cafd93810739f43b1d91db0c41eec7a6a34ae1509e07850e2d28d7_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgwoLU4Z3FNnMNDzi5 3 | QjlyO4OqK4v9p1AyaAtGYMJeW7ChRANCAASR5rC2cIMgXefzhWh5iL2lX58JMuJ0 4 | 6oCyM47KUHm3ReX/yZ9egGdvw1y28Rq4bR9LGdc+BP8Zfu6+mShvW98G 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCzCCAbKgAwIBAgIQRJoF+kwLmyqebtAcqXcLyDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowWDELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggq 8 | hkjOPQMBBwNCAASR5rC2cIMgXefzhWh5iL2lX58JMuJ06oCyM47KUHm3ReX/yZ9e 9 | gGdvw1y28Rq4bR9LGdc+BP8Zfu6+mShvW98Go00wSzAOBgNVHQ8BAf8EBAMCB4Aw 10 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCIVPvfHHNQgIn3orHKRPbJ7xU81Rup 11 | 3md1ZxcM+m3hMjAKBggqhkjOPQQDAgNHADBEAiA7NsmJB/1sv0GJdEgVvwL0ka39 12 | NZ8JMjVXwaIdT0EOvQIgKRe17mKxHSASEysFVTf+wqvqW2L/BDVIxtJ2Ws6x7JY= 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQSrq2RtcXxglHCeKe+NbiOjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPaortDMzWKuv6eiD3S2 9 | 0fly6PrFthL9lWODLPR2M32UXHgholATmpbU9go90drQ1QDr92O7Gv51LCzUJxU3 10 | t4WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTL 12 | vBaAMAoGCCqGSM49BAMCA0gAMEUCIQCtjJqpp4CFZSXm6n2TD2FQCkY/HYrrujcR 13 | 55vmzNemPwIgEH7CN+iPzBXSItHT3rYupyt/FlcwmJ3pZII/LIu3Sg8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQSrq2RtcXxglHCeKe+NbiOjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPaortDMzWKuv6eiD3S2 9 | 0fly6PrFthL9lWODLPR2M32UXHgholATmpbU9go90drQ1QDr92O7Gv51LCzUJxU3 10 | t4WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTL 12 | vBaAMAoGCCqGSM49BAMCA0gAMEUCIQCtjJqpp4CFZSXm6n2TD2FQCkY/HYrrujcR 13 | 55vmzNemPwIgEH7CN+iPzBXSItHT3rYupyt/FlcwmJ3pZII/LIu3Sg8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWjCCAgCgAwIBAgIRANk0PFx4j8o5ypGzHLT2rrMwCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBaMFgxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C 8 | AQYIKoZIzj0DAQcDQgAE12Z3W9YJdSKJNIncry4ccFkPKhhE+/rtrnL/rKsAO1ck 9 | yl40h0RW7QnPpGn4O/Nl+BTZArzLIaJdsElo3bYMjKOBljCBkzAOBgNVHQ8BAf8E 10 | BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC 11 | MAAwKwYDVR0jBCQwIoAgs+SRsthvDNSSnFwEjgTZbAoTqE/IzERGUI0thMu8FoAw 12 | JwYDVR0RBCAwHoITb3JkZXJlci5leGFtcGxlLmNvbYIHb3JkZXJlcjAKBggqhkjO 13 | PQQDAgNIADBFAiEAjhUxmDQporV+TE0hw+fb6Aj/xNi/DDIgUTLOAOaBPz4CIFLe 14 | LJaUBqpjPmnujzNyrtZ8ovu/mCXfE9sLFtA5qJ9Y 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeMtlaiFuoQZB2mCW 3 | mB+eSL3hWAszlXgU2wOHJXrg2EihRANCAATXZndb1gl1Iok0idyvLhxwWQ8qGET7 4 | +u2ucv+sqwA7VyTKXjSHRFbtCc+kafg782X4FNkCvMshol2wSWjdtgyM 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/tlsca/b3e491b2d86f0cd4929c5c048e04d96c0a13a84fc8cc4446508d2d84cbbc1680_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgg52FQZLf+3d66Den 3 | LtFuwu14FLOphzba4rr5DpWZITqhRANCAAT2qK7QzM1irr+nog90ttH5cuj6xbYS 4 | /ZVjgyz0djN9lFx4IaJQE5qW1PYKPdHa0NUA6/djuxr+dSws1CcVN7eF 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQSrq2RtcXxglHCeKe+NbiOjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPaortDMzWKuv6eiD3S2 9 | 0fly6PrFthL9lWODLPR2M32UXHgholATmpbU9go90drQ1QDr92O7Gv51LCzUJxU3 10 | t4WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTL 12 | vBaAMAoGCCqGSM49BAMCA0gAMEUCIQCtjJqpp4CFZSXm6n2TD2FQCkY/HYrrujcR 13 | 55vmzNemPwIgEH7CN+iPzBXSItHT3rYupyt/FlcwmJ3pZII/LIu3Sg8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQDWwr2Oc9gseaHoDO6iv/QjAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEZLglaaXoQc3MHUUAcqJL7owxs7mbs+n6kbuHdEzvFHIq3TETJDg4 9 | UfsBUz9mOI3D//4Cz56MgMfSkaKXv9xayKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgiFT73xxzUICJ96KxykT2ye8VPNUbqd5n 11 | dWcXDPpt4TIwCgYIKoZIzj0EAwIDSAAwRQIhALSLBNZI4snmFD6xN+6htt2PqFHG 12 | qIwh9MLRfL4qMCz2AiAHQQfQvu5DEBZ/91Vn/0WfYbM6/etQpu4atyBaJdN4Ig== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICMDCCAdagAwIBAgIRAJsvIdytwaqRqSl+/iQzC0EwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQP9m5DGT+WxjlqvS4sO+gvsMLY 9 | ixZP8fT+t/o0EnMlo1pYWZh42iOMbTz0bi5MK3GKTQYJ9IY5RGe+YrMsFqG+o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCIVPvfHHNQgIn3orHKRPbJ7xU81Rup3md1ZxcM+m3hMjAK 12 | BggqhkjOPQQDAgNIADBFAiEAwPMYKvDQTTtiBa0MOYIioAY7fVO9RFXMOOuYA78s 13 | cL4CIFBlSZzjCVb88Qap4MJDodoR9LVZArlTwtukf9lWDI2F 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/be595291403ff68280a724d7e868521815ad9e2fc8c5486f6d7ce6b62d6357cd_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZ6E+uwidNO/Fn56C 3 | 2kUyNqtPMn8MoTIQXSiePuW1CvChRANCAARkuCVppehBzcwdRQByokvujDGzuZuz 4 | 6fqRu4d0TO8UcirdMRMkODhR+wFTP2Y4jcP//gLPnoyAx9KRope/3FrI 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQDWwr2Oc9gseaHoDO6iv/QjAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEZLglaaXoQc3MHUUAcqJL7owxs7mbs+n6kbuHdEzvFHIq3TETJDg4 9 | UfsBUz9mOI3D//4Cz56MgMfSkaKXv9xayKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgiFT73xxzUICJ96KxykT2ye8VPNUbqd5n 11 | dWcXDPpt4TIwCgYIKoZIzj0EAwIDSAAwRQIhALSLBNZI4snmFD6xN+6htt2PqFHG 12 | qIwh9MLRfL4qMCz2AiAHQQfQvu5DEBZ/91Vn/0WfYbM6/etQpu4atyBaJdN4Ig== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQSrq2RtcXxglHCeKe+NbiOjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPaortDMzWKuv6eiD3S2 9 | 0fly6PrFthL9lWODLPR2M32UXHgholATmpbU9go90drQ1QDr92O7Gv51LCzUJxU3 10 | t4WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTL 12 | vBaAMAoGCCqGSM49BAMCA0gAMEUCIQCtjJqpp4CFZSXm6n2TD2FQCkY/HYrrujcR 13 | 55vmzNemPwIgEH7CN+iPzBXSItHT3rYupyt/FlcwmJ3pZII/LIu3Sg8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQSrq2RtcXxglHCeKe+NbiOjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPaortDMzWKuv6eiD3S2 9 | 0fly6PrFthL9lWODLPR2M32UXHgholATmpbU9go90drQ1QDr92O7Gv51LCzUJxU3 10 | t4WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTL 12 | vBaAMAoGCCqGSM49BAMCA0gAMEUCIQCtjJqpp4CFZSXm6n2TD2FQCkY/HYrrujcR 13 | 55vmzNemPwIgEH7CN+iPzBXSItHT3rYupyt/FlcwmJ3pZII/LIu3Sg8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLDCCAdKgAwIBAgIQTT+3BwclwO4G2/p2iPi1szAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE3MDcyMTAxMjgxMFoXDTI3MDcxOTAxMjgxMFowVjELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI 8 | KoZIzj0DAQcDQgAEYFNHDoFzAQoJ45DGogmWBfb8f4jKkDIK4VfKKuLrIOOfvHRB 9 | Mjb7HGgYbXxxTUqoeuaelazL5vqKVkwcx/x1i6NsMGowDgYDVR0PAQH/BAQDAgWg 10 | MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG 11 | A1UdIwQkMCKAILPkkbLYbwzUkpxcBI4E2WwKE6hPyMxERlCNLYTLvBaAMAoGCCqG 12 | SM49BAMCA0gAMEUCIQDHDCgekjYEw54HDbrRlUjPDzXYdST0EEBqNalbhks6BQIg 13 | RSTjxpuo+x+d+yyYPRfjfbL0P+01/EMhNJPVReC5jNk= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgM5N6eXnKt8N6JClT 3 | H3TrwHkqyJo4Q++pMTsqGkEwXq6hRANCAARgU0cOgXMBCgnjkMaiCZYF9vx/iMqQ 4 | MgrhV8oq4usg45+8dEEyNvscaBhtfHFNSqh65p6VrMvm+opWTBzH/HWL 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/ca/2fbb10374113397e45316b7487a605f800a1a4883e769b3ade3c65b903ae48fc_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgq7znxiIs+3I66W+K 3 | 6fCRVeG2UoQQpgwVgMDtQUWYVeuhRANCAARX/tTvCJoANdWf/MtJZ3JZMSq8Q5wJ 4 | DzSzZHukMhtGeEcVGOQybArC5HTSAQoVmTNvmbRFnWdTR+/6PEgFyMky 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQb6tuRvKPPi4nV+AxJVjdhDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | V/7U7wiaADXVn/zLSWdyWTEqvEOcCQ80s2R7pDIbRnhHFRjkMmwKwuR00gEKFZkz 10 | b5m0RZ1nU0fv+jxIBcjJMqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgL7sQN0ETOX5FMWt0h6YF 12 | +AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhAKpiECpO9rIqUkLL 13 | DLFLH0YnToQCZko/9hxmNI2G1dSfAiAYGtP7Mx9ZEBYBtcb48PZLejwAhthfFPQj 14 | TM+QRqdlbQ== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRAIkS03lyoew8F67TTS93mW0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABOjx+2mV25b8P+6v9+Cq3GFVBSNNITny 9 | SSZgYGbsPZvhEq0SoMGQdmQEpnFgO0otbDOcOfWcM3AKO39Y08KDCJGjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCsXL0f 12 | VjBbpH5GXmsXngn01DAPqOFPofZ/gC/Gs/jMPAIgZgi7pICftF0ceuOwffxarMLy 13 | cSugSNob5B3IpccFwsM= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQb6tuRvKPPi4nV+AxJVjdhDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | V/7U7wiaADXVn/zLSWdyWTEqvEOcCQ80s2R7pDIbRnhHFRjkMmwKwuR00gEKFZkz 10 | b5m0RZ1nU0fv+jxIBcjJMqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgL7sQN0ETOX5FMWt0h6YF 12 | +AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhAKpiECpO9rIqUkLL 13 | DLFLH0YnToQCZko/9hxmNI2G1dSfAiAYGtP7Mx9ZEBYBtcb48PZLejwAhthfFPQj 14 | TM+QRqdlbQ== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRAIkS03lyoew8F67TTS93mW0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABOjx+2mV25b8P+6v9+Cq3GFVBSNNITny 9 | SSZgYGbsPZvhEq0SoMGQdmQEpnFgO0otbDOcOfWcM3AKO39Y08KDCJGjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCsXL0f 12 | VjBbpH5GXmsXngn01DAPqOFPofZ/gC/Gs/jMPAIgZgi7pICftF0ceuOwffxarMLy 13 | cSugSNob5B3IpccFwsM= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQb6tuRvKPPi4nV+AxJVjdhDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | V/7U7wiaADXVn/zLSWdyWTEqvEOcCQ80s2R7pDIbRnhHFRjkMmwKwuR00gEKFZkz 10 | b5m0RZ1nU0fv+jxIBcjJMqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgL7sQN0ETOX5FMWt0h6YF 12 | +AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhAKpiECpO9rIqUkLL 13 | DLFLH0YnToQCZko/9hxmNI2G1dSfAiAYGtP7Mx9ZEBYBtcb48PZLejwAhthfFPQj 14 | TM+QRqdlbQ== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/d4570d6dd037a2cab7aa4574947b3197891b2968ed3c3f0b3a7b6e17f7480d70_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgR2P4JhCZnd1FOo/1 3 | P8NV9TvAMbFjsghbToSpUDiy78ChRANCAARO/5YwLrvAiqytoAK799EP85F5FY7P 4 | QyDHUz7ng7+PbOHdkAwm/Ulc+lPkd3eEjnfaKt21Gz0Gt+zB98jIzDE/ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQJ8mBgslnx6BwJ/IEsGf3HDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETv+WMC67wIqsraACu/fRD/OReRWOz0Mg 9 | x1M+54O/j2zh3ZAMJv1JXPpT5Hd3hI532irdtRs9BrfswffIyMwxP6NNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgL7sQN0ETOX5F 11 | MWt0h6YF+AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhANalZ8ye 12 | ojX1IZe70Y3RqOp9k8Yv0Rty/YIJPdztNHogAiBRO7+iRpRYzF3b4W1F9jHna4JX 13 | NZgvU7eXq6xSy2Zpsg== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg2gAwIBAgIQdClk8hdfpXHTnMMf3UZa3zAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEatF8gsFGg0rTTR/4UY1UOSR9er7n 9 | 3cruMU2UlV8312ApIbOJBCZKrr5frUKq/i2nkgMjtHkOzizx/Ft4qlacSKOBlzCB 10 | lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC 11 | MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgQ7N3ERLpIE/pqhtwU+iYGSOWzdY/ 12 | TC4BO7jKZWUdRogwKAYDVR0RBCEwH4IWcGVlcjAub3JnMS5leGFtcGxlLmNvbYIF 13 | cGVlcjAwCgYIKoZIzj0EAwIDSAAwRQIhAIzI/tjLS7/mq8o3UNQUuIbp73lv3OwY 14 | GATHljc0pL08AiBtQ4e9L9jfH0Yn0G/iBCgiSk5oBfTOpdUxeWoKiCzFOg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgv0W9q+zh5ttK7rpy 3 | 5bEqzS7lwPoExFSVV4sgSlkQU3ihRANCAARq0XyCwUaDStNNH/hRjVQ5JH16vufd 4 | yu4xTZSVXzfXYCkhs4kEJkquvl+tQqr+LaeSAyO0eQ7OLPH8W3iqVpxI 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRAIkS03lyoew8F67TTS93mW0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABOjx+2mV25b8P+6v9+Cq3GFVBSNNITny 9 | SSZgYGbsPZvhEq0SoMGQdmQEpnFgO0otbDOcOfWcM3AKO39Y08KDCJGjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCsXL0f 12 | VjBbpH5GXmsXngn01DAPqOFPofZ/gC/Gs/jMPAIgZgi7pICftF0ceuOwffxarMLy 13 | cSugSNob5B3IpccFwsM= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQb6tuRvKPPi4nV+AxJVjdhDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | V/7U7wiaADXVn/zLSWdyWTEqvEOcCQ80s2R7pDIbRnhHFRjkMmwKwuR00gEKFZkz 10 | b5m0RZ1nU0fv+jxIBcjJMqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgL7sQN0ETOX5FMWt0h6YF 12 | +AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhAKpiECpO9rIqUkLL 13 | DLFLH0YnToQCZko/9hxmNI2G1dSfAiAYGtP7Mx9ZEBYBtcb48PZLejwAhthfFPQj 14 | TM+QRqdlbQ== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/d010c48f1defc5617d8504028d9ba99285b64d5f271f6540972b29a52c8f095d_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkTCla7+rcZqMj/uW 3 | TWRYW4771VTQ77PhU0XGcp8x47OhRANCAAQ3fs+51oGMNa3Xh9ZiDc4R3oj4KZae 4 | AZ4p2jWj/Z14T3D2KObIO1Z7KBIvZW8tvwFu2Q+aEVvSqEbaMJEP+FoX 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQTRlYT9PrIyK0+uYNR1fEyTAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEN37PudaBjDWt14fWYg3OEd6I+CmWngGe 9 | Kdo1o/2deE9w9ijmyDtWeygSL2VvLb8BbtkPmhFb0qhG2jCRD/haF6NNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgL7sQN0ETOX5F 11 | MWt0h6YF+AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDRwAwRAIgeTaV7hNA 12 | 79Cy/GyAPCFhuPTfwZDiOE/ZjKTUeCnJ6bECIC1SOB0dJg1TX/zY7pWixucfSrdy 13 | 18KcUrfYD+feI30y 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICaDCCAg6gAwIBAgIRANcdRzUI7qpNsF9Rc/NOQIkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOo24o5yToBP1oGhtRI2MK1Zk0HS 9 | zh1CCcoiKIk7n/FN0EWizH4FS62Zfons2oEuZaLx4gQvt4XblWzQYWFqf9OjgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEOzdxES6SBP6aobcFPomBkjls3W 12 | P0wuATu4ymVlHUaIMCgGA1UdEQQhMB+CFnBlZXIxLm9yZzEuZXhhbXBsZS5jb22C 13 | BXBlZXIxMAoGCCqGSM49BAMCA0gAMEUCIQCPP0fVxSzkm5OqUslW8FG4RDmhbKza 14 | wY0S8uZzOGOUYwIgUkSJ+/yrHo2gF7MABLzefVleu9iy+6odcL9pjv1rD1E= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgA7+EZTm8/A2jCC5Z 3 | aWTlkEOhifJevd2cAwOuxlUeAAihRANCAATqNuKOck6AT9aBobUSNjCtWZNB0s4d 4 | QgnKIiiJO5/xTdBFosx+BUutmX6J7NqBLmWi8eIEL7eF25Vs0GFhan/T 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/tlsca/43b3771112e9204fe9aa1b7053e898192396cdd63f4c2e013bb8ca65651d4688_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFF3uAoQQ6UDJAbWe 3 | al+DABYkBCPc3qqS6TiJzWzHdQahRANCAASmH8T8U47L+lrR/YSmJsy/Ltyf/apJ 4 | wIO1LUujwBxqGPAoYFEf7lSy5rmoNHTVjnVqrNKIwIZN9HgjyRvZiVfU 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRAIkS03lyoew8F67TTS93mW0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABOjx+2mV25b8P+6v9+Cq3GFVBSNNITny 9 | SSZgYGbsPZvhEq0SoMGQdmQEpnFgO0otbDOcOfWcM3AKO39Y08KDCJGjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCsXL0f 12 | VjBbpH5GXmsXngn01DAPqOFPofZ/gC/Gs/jMPAIgZgi7pICftF0ceuOwffxarMLy 13 | cSugSNob5B3IpccFwsM= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQb6tuRvKPPi4nV+AxJVjdhDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | V/7U7wiaADXVn/zLSWdyWTEqvEOcCQ80s2R7pDIbRnhHFRjkMmwKwuR00gEKFZkz 10 | b5m0RZ1nU0fv+jxIBcjJMqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgL7sQN0ETOX5FMWt0h6YF 12 | +AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhAKpiECpO9rIqUkLL 13 | DLFLH0YnToQCZko/9hxmNI2G1dSfAiAYGtP7Mx9ZEBYBtcb48PZLejwAhthfFPQj 14 | TM+QRqdlbQ== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/0d2b2fc385b10fa59003217e1bb5af2d24a3d762266e287867a1bc290eb44657_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggkdz0n0VVhawIGmX 3 | ZUQ9eDWxoiWLc/EWUweQL1v+vYKhRANCAATo8ftplduW/D/ur/fgqtxhVQUjTSE5 4 | 8kkmYGBm7D2b4RKtEqDBkHZkBKZxYDtKLWwznDn1nDNwCjt/WNPCgwiR 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRAIkS03lyoew8F67TTS93mW0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABOjx+2mV25b8P+6v9+Cq3GFVBSNNITny 9 | SSZgYGbsPZvhEq0SoMGQdmQEpnFgO0otbDOcOfWcM3AKO39Y08KDCJGjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCsXL0f 12 | VjBbpH5GXmsXngn01DAPqOFPofZ/gC/Gs/jMPAIgZgi7pICftF0ceuOwffxarMLy 13 | cSugSNob5B3IpccFwsM= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOjCCAeGgAwIBAgIQGMNdDB3Ej9QJUYD+vkD6YzAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEL13AAGSQf9/muJyCbJUst4SLXQeX 9 | 0y3qu5hG0U6UKhnwCRL9qIHyr8CicvOD0gY0uJCbz4goKnc7VsMTnubpCaNsMGow 10 | DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM 11 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEOzdxES6SBP6aobcFPomBkjls3WP0wu 12 | ATu4ymVlHUaIMAoGCCqGSM49BAMCA0cAMEQCIC/iW5bqUrSzcidKgKMpM5ZmuVk2 13 | w5KPVfyi7n14JSJlAiBx/cFUfCNG9VOHnKCe3n1NJTF/VFIRSwRcoZB/p3cqqQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgdi2FolHkn4TKQPq/ 3 | wOGx01NG+E6ed9R7bEsjhazDhTChRANCAAQvXcAAZJB/3+a4nIJslSy3hItdB5fT 4 | Leq7mEbRTpQqGfAJEv2ogfKvwKJy84PSBjS4kJvPiCgqdztWwxOe5ukJ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRANH0iSFFx0T5H/rbNg/5l30wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABIEbjRE+OBs9FzGxHst/I5C3Hdc4HhbZ 9 | BUW6LwOhkfcfkWVq9MqrDlAm5LSpIC/pDPiDVYwSQ85lxbDWWkid+P2jTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCuXiLr 12 | Fm/aC/5nm7jaYDY43E7nWhRkSNdpoDgGETHx1gIgSIUHArJ7lOIa81rSi6INjfnu 13 | piCcc0Y2NU025JVJiyA= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQb6tuRvKPPi4nV+AxJVjdhDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | V/7U7wiaADXVn/zLSWdyWTEqvEOcCQ80s2R7pDIbRnhHFRjkMmwKwuR00gEKFZkz 10 | b5m0RZ1nU0fv+jxIBcjJMqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgL7sQN0ETOX5FMWt0h6YF 12 | +AChpIg+dps63jxluQOuSPwwCgYIKoZIzj0EAwIDSAAwRQIhAKpiECpO9rIqUkLL 13 | DLFLH0YnToQCZko/9hxmNI2G1dSfAiAYGtP7Mx9ZEBYBtcb48PZLejwAhthfFPQj 14 | TM+QRqdlbQ== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/5d199bc2e226583a82ae5b3bb94fe471bfb1523d774f5a4a3d23dad52aed59b2_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgIYrDpRg8Zcl96vYy 3 | uMHgnRzzpQHGKJ3OctiN5yTonoOhRANCAASBG40RPjgbPRcxsR7LfyOQtx3XOB4W 4 | 2QVFui8DoZH3H5FlavTKqw5QJuS0qSAv6Qz4g1WMEkPOZcWw1lpInfj9 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRANH0iSFFx0T5H/rbNg/5l30wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABIEbjRE+OBs9FzGxHst/I5C3Hdc4HhbZ 9 | BUW6LwOhkfcfkWVq9MqrDlAm5LSpIC/pDPiDVYwSQ85lxbDWWkid+P2jTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIC+7EDdBEzl+ 11 | RTFrdIemBfgAoaSIPnabOt48ZbkDrkj8MAoGCCqGSM49BAMCA0gAMEUCIQCuXiLr 12 | Fm/aC/5nm7jaYDY43E7nWhRkSNdpoDgGETHx1gIgSIUHArJ7lOIa81rSi6INjfnu 13 | piCcc0Y2NU025JVJiyA= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAe+gAwIBAgIQV7zacwjQ+uDmCs0BJe6AsDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEph/E/FOOy/pa0f2EpibMvy7cn/2qScCDtS1Lo8AcahjwKGBRH+5Usua5 10 | qDR01Y51aqzSiMCGTfR4I8kb2YlX1KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud 11 | JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgQ7N3ERLpIE/p 12 | qhtwU+iYGSOWzdY/TC4BO7jKZWUdRogwCgYIKoZIzj0EAwIDSAAwRQIhANSHKEpm 13 | CVecq6Y822/ySTkmabdnzQ3NturURE5Yq7vTAiBOpsVDj2GTzQJNfHvRjrvn/lHq 14 | DnFelraykddCMx2iwg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOjCCAeGgAwIBAgIQQ/Nw56iHDmCpHN+KoEJ7PzAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs6WJQtuGLL69AZsqHyoXRRqWXenX 9 | 2jTF8K2hY1REQSU0krRFozuQqrjYDw6f4EwGt/VIKIN7tM3LkXVgLHfg4qNsMGow 10 | DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM 11 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEOzdxES6SBP6aobcFPomBkjls3WP0wu 12 | ATu4ymVlHUaIMAoGCCqGSM49BAMCA0cAMEQCIEKIgJ8GZiMNaecuCkDe0y7QKlW6 13 | 91GjeikB/qgfKTdRAiBOPjhXvJJ8BCVF/++Kqlnr4H5JYyKX09Jiv51W2Na5Xw== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2zbtxisUM6Kx5h76 3 | vTeNK7E30FbPTJimb8ogzCeCtZmhRANCAASzpYlC24Ysvr0BmyofKhdFGpZd6dfa 4 | NMXwraFjVERBJTSStEWjO5CquNgPDp/gTAa39Ugog3u0zcuRdWAsd+Di 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/ca/bf56c23fc917c718d3461b2c9de54e75c36575e883e808091e25e4d64520c4f9_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEo4uWgpujBbGbGut 3 | Wn6k1mCMtiPmpizEdUutgfPHMWChRANCAASbcU442kBa6fZse3AJ5v5OaUiPI2oF 4 | xYHXUMGFFxitXKmb4J8XKNHW/waqZy2FTZqFsIM3Afo3QXHcKUeEFSHQ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQdiTLw+4kUHeZPmDG9fO58DAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | m3FOONpAWun2bHtwCeb+TmlIjyNqBcWB11DBhRcYrVypm+CfFyjR1v8GqmcthU2a 10 | hbCDNwH6N0Fx3ClHhBUh0KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgv1bCP8kXxxjTRhssneVO 12 | dcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhAIaewfXE64r32hDR 13 | vTrX15Gqc3t0jM3lHSfcyvsI8C7zAiBB1DOc5JiUssekkJREYzhL18xMJH5j6SvV 14 | G9a2TQoqww== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAcCgAwIBAgIRAP48omMbKvcj2zJ7R44eyeswCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCDYP9gCWMyekhl3fNWvDjqiDNDjHRLm 9 | sMjGEWVKpAg94XQy8hsNCra/MerOZtv4O3nVTsLlSQRlcTqNmyR3CDCjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIL9Wwj/JF8cY 11 | 00YbLJ3lTnXDZXXog+gICR4l5NZFIMT5MAoGCCqGSM49BAMCA0cAMEQCIAx73JJJ 12 | 7lfNr/7TBWZ5PTd7IgGnLEq0hQvKIo6ok2VuAiAnc6Mw53he5ufUaxo6Z+TxUook 13 | BhS+2eAvmEbQi4UdlQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQdiTLw+4kUHeZPmDG9fO58DAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | m3FOONpAWun2bHtwCeb+TmlIjyNqBcWB11DBhRcYrVypm+CfFyjR1v8GqmcthU2a 10 | hbCDNwH6N0Fx3ClHhBUh0KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgv1bCP8kXxxjTRhssneVO 12 | dcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhAIaewfXE64r32hDR 13 | vTrX15Gqc3t0jM3lHSfcyvsI8C7zAiBB1DOc5JiUssekkJREYzhL18xMJH5j6SvV 14 | G9a2TQoqww== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAcCgAwIBAgIRAP48omMbKvcj2zJ7R44eyeswCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCDYP9gCWMyekhl3fNWvDjqiDNDjHRLm 9 | sMjGEWVKpAg94XQy8hsNCra/MerOZtv4O3nVTsLlSQRlcTqNmyR3CDCjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIL9Wwj/JF8cY 11 | 00YbLJ3lTnXDZXXog+gICR4l5NZFIMT5MAoGCCqGSM49BAMCA0cAMEQCIAx73JJJ 12 | 7lfNr/7TBWZ5PTd7IgGnLEq0hQvKIo6ok2VuAiAnc6Mw53he5ufUaxo6Z+TxUook 13 | BhS+2eAvmEbQi4UdlQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQdiTLw+4kUHeZPmDG9fO58DAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | m3FOONpAWun2bHtwCeb+TmlIjyNqBcWB11DBhRcYrVypm+CfFyjR1v8GqmcthU2a 10 | hbCDNwH6N0Fx3ClHhBUh0KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgv1bCP8kXxxjTRhssneVO 12 | dcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhAIaewfXE64r32hDR 13 | vTrX15Gqc3t0jM3lHSfcyvsI8C7zAiBB1DOc5JiUssekkJREYzhL18xMJH5j6SvV 14 | G9a2TQoqww== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/84194068906c55a5b80ca3237d265ca718518d38c8864ee245382b517af637bc_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgdF32OQKeJ4FHKgGW 3 | vUp0gaNEHpxFkhVlCAIa531Mw3ahRANCAASpbyDRg0Ix8Bw6v/5dKJc2vEhOPmx6 4 | bfDrGihKbpphnaVZajQxJM2s93bcl9Zg9+9ziZ+Gs1xNKE4Kd45LXile 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQDvXJ+Aiyx/oXcu5/gsHduzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcyLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqW8g0YNCMfAcOr/+XSiXNrxITj5sem3w 9 | 6xooSm6aYZ2lWWo0MSTNrPd23JfWYPfvc4mfhrNcTShOCneOS14pXqNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgv1bCP8kXxxjT 11 | RhssneVOdcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDRwAwRAIgVzjjCUho 12 | 5tUzWQbEgN2wkidMZtRoLIPT7Rv7TkEJEiQCIAgGh/zm/pLYvp28ovPlhMM7WlCw 13 | u+tiz5coRlOLn5VK 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg6gAwIBAgIRALcf9mP9PE6nZqvcI0kcbKYwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABP4YhRb3ymvVw5ebbAJByf3bU9yR 9 | Fc309vBGI5vSeVfVK8SxvP/e89R8v/xK3dF3/54fxDsUqIbdxP7mmke9+S+jgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAILXCgtz0SvgBVLozayx5GdYEoOxB 12 | 8PmTjfHxIyQKgU1QMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzIuZXhhbXBsZS5jb22C 13 | BXBlZXIwMAoGCCqGSM49BAMCA0cAMEQCIDPGuTdRcBun9sdNyaatdGyNvBgBzaoD 14 | y3112LODhFhtAiAFliyW4kekT46O2A1PoENrFwcMAR7Va6fgwI8ejONvCA== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfy3lhme2JjcxYn7s 3 | cOUBH+XpHcqgw4MSws9JCIFjFJOhRANCAAT+GIUW98pr1cOXm2wCQcn921PckRXN 4 | 9PbwRiOb0nlX1SvEsbz/3vPUfL/8St3Rd/+eH8Q7FKiG3cT+5ppHvfkv 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAcCgAwIBAgIRAP48omMbKvcj2zJ7R44eyeswCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCDYP9gCWMyekhl3fNWvDjqiDNDjHRLm 9 | sMjGEWVKpAg94XQy8hsNCra/MerOZtv4O3nVTsLlSQRlcTqNmyR3CDCjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIL9Wwj/JF8cY 11 | 00YbLJ3lTnXDZXXog+gICR4l5NZFIMT5MAoGCCqGSM49BAMCA0cAMEQCIAx73JJJ 12 | 7lfNr/7TBWZ5PTd7IgGnLEq0hQvKIo6ok2VuAiAnc6Mw53he5ufUaxo6Z+TxUook 13 | BhS+2eAvmEbQi4UdlQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQdiTLw+4kUHeZPmDG9fO58DAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | m3FOONpAWun2bHtwCeb+TmlIjyNqBcWB11DBhRcYrVypm+CfFyjR1v8GqmcthU2a 10 | hbCDNwH6N0Fx3ClHhBUh0KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgv1bCP8kXxxjTRhssneVO 12 | dcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhAIaewfXE64r32hDR 13 | vTrX15Gqc3t0jM3lHSfcyvsI8C7zAiBB1DOc5JiUssekkJREYzhL18xMJH5j6SvV 14 | G9a2TQoqww== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/86deba2e7b6b1e5181504582309db0f8a6b21088473c27ba4b5b78be0ba7ca8e_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrpqFcXeK4dbfi16+ 3 | ndN/GZ48VeiTaaPdMSQ4d1mFeuKhRANCAARQ65l5QqAiVPB/HtpzY1NFhmmI3YK/ 4 | guQ5u//NHsVGZvkBFU+IqKzxQkHeAGDeD/avn8UfJt5BAH5+NBdSJ/Xb 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQanHUqMxeGVdccLv/yAghszAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcyLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUOuZeUKgIlTwfx7ac2NTRYZpiN2Cv4Lk 9 | Obv/zR7FRmb5ARVPiKis8UJB3gBg3g/2r5/FHybeQQB+fjQXUif126NNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgv1bCP8kXxxjT 11 | RhssneVOdcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDRwAwRAIgdIiPAAJz 12 | rbbe8wqqvO6hGm3HvZf17p4GNg63PaGyIM4CIGzwj/of5vzjqIxLm6L7mUdjKoTz 13 | xwVjHN5KGC9tZNA5 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICaDCCAg6gAwIBAgIRAIPsrcLf7mE9V+wltUU2HRIwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGxJRmzW0J/y0zfNeeZYoLV6qJ4x 9 | iWXLIXq1z7qEEL+8ncCIHLtrdSfmcJqNVhYzoOxzSK70loJsEWN34RI4YYGjgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAILXCgtz0SvgBVLozayx5GdYEoOxB 12 | 8PmTjfHxIyQKgU1QMCgGA1UdEQQhMB+CFnBlZXIxLm9yZzIuZXhhbXBsZS5jb22C 13 | BXBlZXIxMAoGCCqGSM49BAMCA0gAMEUCIQDFQ2eQTiiucpO4LFxPmXK8huZ/qTgu 14 | LG3yDmyLf9A37QIgGMhs03GNhO7RlNsy4KizuIEBTzp2SLKo+c1QFmJ29pc= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTIEjW0BBt+3reVIh 3 | F+t0uEF5tm32faZHe93ASx+a5dehRANCAARsSUZs1tCf8tM3zXnmWKC1eqieMYll 4 | yyF6tc+6hBC/vJ3AiBy7a3Un5nCajVYWM6Dsc0iu9JaCbBFjd+ESOGGB 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/tlsca/b5c282dcf44af80154ba336b2c7919d604a0ec41f0f9938df1f123240a814d50_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfCnqgxuylekq9nKr 3 | sB0O9HA7d7rtHVDDO5Vif6ukr3KhRANCAAQcmmlg+CthqA27F/XUa/pB5toz9bNi 4 | xF51y9dcLY6jCj1kfirH8g8OG7YLB4WgXcwscNlTrQyKCIUkFZ35HiHe 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAcCgAwIBAgIRAP48omMbKvcj2zJ7R44eyeswCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCDYP9gCWMyekhl3fNWvDjqiDNDjHRLm 9 | sMjGEWVKpAg94XQy8hsNCra/MerOZtv4O3nVTsLlSQRlcTqNmyR3CDCjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIL9Wwj/JF8cY 11 | 00YbLJ3lTnXDZXXog+gICR4l5NZFIMT5MAoGCCqGSM49BAMCA0cAMEQCIAx73JJJ 12 | 7lfNr/7TBWZ5PTd7IgGnLEq0hQvKIo6ok2VuAiAnc6Mw53he5ufUaxo6Z+TxUook 13 | BhS+2eAvmEbQi4UdlQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQdiTLw+4kUHeZPmDG9fO58DAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | m3FOONpAWun2bHtwCeb+TmlIjyNqBcWB11DBhRcYrVypm+CfFyjR1v8GqmcthU2a 10 | hbCDNwH6N0Fx3ClHhBUh0KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgv1bCP8kXxxjTRhssneVO 12 | dcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhAIaewfXE64r32hDR 13 | vTrX15Gqc3t0jM3lHSfcyvsI8C7zAiBB1DOc5JiUssekkJREYzhL18xMJH5j6SvV 14 | G9a2TQoqww== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/febc59257fd86c4e1020727d6915f6af9c5b698abdb1133cc7b2c8105961d96d_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGuD3WWMBlu+yUf6P 3 | h189tMPyciHWHsKIoMncVzlgOdShRANCAAQg2D/YAljMnpIZd3zVrw46ogzQ4x0S 4 | 5rDIxhFlSqQIPeF0MvIbDQq2vzHqzmbb+Dt51U7C5UkEZXE6jZskdwgw 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAcCgAwIBAgIRAP48omMbKvcj2zJ7R44eyeswCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEyODEw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCDYP9gCWMyekhl3fNWvDjqiDNDjHRLm 9 | sMjGEWVKpAg94XQy8hsNCra/MerOZtv4O3nVTsLlSQRlcTqNmyR3CDCjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIL9Wwj/JF8cY 11 | 00YbLJ3lTnXDZXXog+gICR4l5NZFIMT5MAoGCCqGSM49BAMCA0cAMEQCIAx73JJJ 12 | 7lfNr/7TBWZ5PTd7IgGnLEq0hQvKIo6ok2VuAiAnc6Mw53he5ufUaxo6Z+TxUook 13 | BhS+2eAvmEbQi4UdlQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOjCCAeGgAwIBAgIQTl3kL/FjE0v+KLPxD2PLrzAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4 6 | MTBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErL6Vx3temIpQmY8/807zqUSqAH/e 9 | zK3SlTmjBHy9VQCv9pso0LDeGzqTJ3+3MpjbyrG5On1r5owbWum2IyaPvKNsMGow 10 | DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM 11 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAILXCgtz0SvgBVLozayx5GdYEoOxB8PmT 12 | jfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIDXAO5guHANuJQna+ZazdJifvpxf 13 | ABvjqgB3nW0SvFqhAiAy9R0d2dR0UNbqFv2NYwo32HQ3M17jvUHSxk9czniCcw== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg1stAqWzPRL+z0UC5 3 | xw5aJJZAH0hIDbJgj+PPpqkBpLKhRANCAASsvpXHe16YilCZjz/zTvOpRKoAf97M 4 | rdKVOaMEfL1VAK/2myjQsN4bOpMnf7cymNvKsbk6fWvmjBta6bYjJo+8 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQb8ew5nTfZWnJ5TYOx2ZvaDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcyLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZXWRNxBqA/W0XF8bvpzVuIG43cpkW5us 9 | UeL8DWutZF5Fs671qTvis4xk3x5KhPRS5Y8Dajmp+fzsvfhKQjzQyKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgv1bCP8kXxxjT 11 | RhssneVOdcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhALO8m5nt 12 | MGSQi5uy51GEQN+0xAao75WRe5vLm7ADcKU7AiAiMB4Um40hgG1m+d++ySSdvr/I 13 | dHhorcsrXv4OSMIlSw== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQdiTLw+4kUHeZPmDG9fO58DAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | m3FOONpAWun2bHtwCeb+TmlIjyNqBcWB11DBhRcYrVypm+CfFyjR1v8GqmcthU2a 10 | hbCDNwH6N0Fx3ClHhBUh0KNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG 11 | BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgv1bCP8kXxxjTRhssneVO 12 | dcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhAIaewfXE64r32hDR 13 | vTrX15Gqc3t0jM3lHSfcyvsI8C7zAiBB1DOc5JiUssekkJREYzhL18xMJH5j6SvV 14 | G9a2TQoqww== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/ff3381273256aa3d4ad48cdc59bafc683a3fbb817cf4ddb9154790b86ae91172_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghisKUj8fYPwm10na 3 | l9T5HRNkWHaWOgthx6M1ZVvPAe2hRANCAARldZE3EGoD9bRcXxu+nNW4gbjdymRb 4 | m6xR4vwNa61kXkWzrvWpO+KzjGTfHkqE9FLljwNqOan5/Oy9+EpCPNDI 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQb8ew5nTfZWnJ5TYOx2ZvaDAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MjEwMTI4MTBaFw0yNzA3MTkwMTI4MTBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcyLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZXWRNxBqA/W0XF8bvpzVuIG43cpkW5us 9 | UeL8DWutZF5Fs671qTvis4xk3x5KhPRS5Y8Dajmp+fzsvfhKQjzQyKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgv1bCP8kXxxjT 11 | RhssneVOdcNldeiD6AgJHiXk1kUgxPkwCgYIKoZIzj0EAwIDSAAwRQIhALO8m5nt 12 | MGSQi5uy51GEQN+0xAao75WRe5vLm7ADcKU7AiAiMB4Um40hgG1m+d++ySSdvr/I 13 | dHhorcsrXv4OSMIlSw== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSTCCAfCgAwIBAgIRAOYQyLd1Mrp4+BwfWzx2N2swCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABByaaWD4K2GoDbsX9dRr+kHm2jP1s2LEXnXL11wtjqMKPWR+KsfyDw4b 10 | tgsHhaBdzCxw2VOtDIoIhSQVnfkeId6jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILXCgtz0SvgB 12 | VLozayx5GdYEoOxB8PmTjfHxIyQKgU1QMAoGCCqGSM49BAMCA0cAMEQCIChbGcCq 13 | 1Gz3qc0Jr+qZIv5LnZRi5Bi8F2PkfkWTF8b1AiAWKgkl9uEFVcFWpR1jiMgww4Eg 14 | qqEJb5G2/A1YbyBa5w== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOzCCAeKgAwIBAgIRANVk9D53s8dCyerSITON2howCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzIxMDEyODEwWhcNMjcwNzE5MDEy 6 | ODEwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIAVyac4b9K3RULuov70ciYb6FcD 9 | lm6dcS4erLTELfmFmJXit5P6JfmT1QP6mtGB3YFKYEzyfKR6JhbW6R+YHQujbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCC1woLc9Er4AVS6M2sseRnWBKDsQfD5 12 | k43x8SMkCoFNUDAKBggqhkjOPQQDAgNHADBEAiBkXTHBOJMeK8iMqouhwtTTKbpZ 13 | jb9GokA+hjmwH647dgIgRefmerYmSPEmCs/1ej6/yq5yj3k2LvHFUmjTPvbXNUo= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUBFyJRMBHzTBGNSm 3 | tzPPldevxSnW3adn1yxUux+ZfoKhRANCAASAFcmnOG/St0VC7qL+9HImG+hXA5Zu 4 | nXEuHqy0xC35hZiV4reT+iX5k9UD+prRgd2BSmBM8nykeiYW1ukfmB0L 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /network/fabric/simplenetwork/generate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ~/go/src/github.com/hyperledger/fabric/build/bin/cryptogen generate --config=./crypto-config.yaml 3 | ~/go/src/github.com/hyperledger/fabric/build/bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock twoorgs.genesis.block 4 | ~/go/src/github.com/hyperledger/fabric/build/bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx mychannel.tx -channelID mychannel -------------------------------------------------------------------------------- /network/fabric/simplenetwork/mychannel.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/network/fabric/simplenetwork/mychannel.tx -------------------------------------------------------------------------------- /network/fabric/simplenetwork/twoorgs.genesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/network/fabric/simplenetwork/twoorgs.genesis.block -------------------------------------------------------------------------------- /network/iroha/simplenetwork/admin@test.priv: -------------------------------------------------------------------------------- 1 | 1180502d973ca80fab116e5151ea7208f9f660d50a30f13bf6c24cc209de306b -------------------------------------------------------------------------------- /network/iroha/simplenetwork/admin@test.pub: -------------------------------------------------------------------------------- 1 | a59ecc3eb4e94ce187f460024d89bbbb28ba19368b9fbbd65faff51e08e04c96 -------------------------------------------------------------------------------- /network/iroha/simplenetwork/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | iroha_node0: 5 | image: hyperledger/iroha-docker@sha256:b82a24eee7cc4215bf70d9f79acab8b817e4cf36cc9f87c1c63202dca552cf0f 6 | container_name: iroha_node0 7 | ports: 8 | - "50051:50051" 9 | - "20000:20000" 10 | - "10001:10001" 11 | environment: 12 | - IROHA_POSTGRES_HOST=iroha_pg0 13 | - IROHA_POSTGRES_PORT=5432 14 | - IROHA_POSTGRES_USER=iroha 15 | - IROHA_POSTGRES_PASSWORD=helloworld 16 | - IROHA_REDIS_HOST=iroha_redis 17 | - IROHA_REDIS_PORT=6379 18 | - CCACHE_DIR=/tmp/ccache 19 | depends_on: 20 | - iroha_redis0 21 | - iroha_pg0 22 | entrypoint: ["../wait-for-it.sh", "iroha_pg0:5432", "--", "irohad", "--genesis_block", "/opt/iroha/genesis.block", "--config", "/opt/iroha/node0/config.sample", "--keypair_name", "node0"] 23 | tty: true 24 | volumes: 25 | - ./:/opt/iroha 26 | - ccache-data:/tmp/ccache 27 | working_dir: /opt/iroha/node0 28 | cap_add: 29 | - SYS_PTRACE 30 | 31 | iroha_node1: 32 | image: hyperledger/iroha-docker@sha256:b82a24eee7cc4215bf70d9f79acab8b817e4cf36cc9f87c1c63202dca552cf0f 33 | container_name: iroha_node1 34 | ports: 35 | - "50052:50051" 36 | - "20001:20000" 37 | - "10002:10001" 38 | environment: 39 | - IROHA_POSTGRES_HOST=iroha_pg1 40 | - IROHA_POSTGRES_PORT=5432 41 | - IROHA_POSTGRES_USER=iroha 42 | - IROHA_POSTGRES_PASSWORD=helloworld 43 | - IROHA_REDIS_HOST=iroha_redis1 44 | - IROHA_REDIS_PORT=6379 45 | - KEY=node1 46 | - CCACHE_DIR=/tmp/ccache 47 | depends_on: 48 | - iroha_redis1 49 | - iroha_pg1 50 | entrypoint: ["../wait-for-it.sh", "iroha_pg1:5432", "--", "irohad", "--genesis_block", "/opt/iroha/genesis.block", "--config", "/opt/iroha/node1/config.sample", "--keypair_name", "node1"] 51 | tty: true 52 | volumes: 53 | - ./:/opt/iroha 54 | - ccache-data:/tmp/ccache 55 | working_dir: /opt/iroha/node1 56 | cap_add: 57 | - SYS_PTRACE 58 | 59 | iroha_redis0: 60 | image: redis:3.2.8 61 | container_name: iroha_redis0 62 | 63 | iroha_pg0: 64 | image: postgres:9.5 65 | container_name: iroha_pg0 66 | environment: 67 | - POSTGRES_USER=iroha 68 | - IROHA_POSTGRES_PASSWORD=helloworld 69 | 70 | iroha_redis1: 71 | image: redis:3.2.8 72 | container_name: iroha_redis1 73 | 74 | iroha_pg1: 75 | image: postgres:9.5 76 | container_name: iroha_pg1 77 | environment: 78 | - POSTGRES_USER=iroha 79 | - IROHA_POSTGRES_PASSWORD=helloworld 80 | 81 | volumes: 82 | ccache-data: 83 | -------------------------------------------------------------------------------- /network/iroha/simplenetwork/node0/config.sample: -------------------------------------------------------------------------------- 1 | { 2 | "block_store_path" : "/tmp/block_store/", 3 | "torii_port" : 50051, 4 | "internal_port" : 10001, 5 | "pg_opt" : "host=iroha_pg0 port=5432 user=postgres password=mysecretpassword", 6 | "redis_host" : "iroha_redis0", 7 | "redis_port" : 6379, 8 | "max_proposal_size" : 10, 9 | "proposal_delay" : 5000, 10 | "vote_delay" : 5000, 11 | "load_delay" : 5000 12 | } 13 | -------------------------------------------------------------------------------- /network/iroha/simplenetwork/node0/node0.priv: -------------------------------------------------------------------------------- 1 | 255f6a2388ce3bd368435c74d9895f44cde8c6fa7e00a7bfc790fb357829fd5b -------------------------------------------------------------------------------- /network/iroha/simplenetwork/node0/node0.pub: -------------------------------------------------------------------------------- 1 | bb6fecd300bd8adb717e9431c04e4c809363c00b3a4d91c85b6b6d5557873258 -------------------------------------------------------------------------------- /network/iroha/simplenetwork/node1/config.sample: -------------------------------------------------------------------------------- 1 | { 2 | "block_store_path" : "/tmp/block_store/", 3 | "torii_port" : 50051, 4 | "internal_port" : 10001, 5 | "pg_opt" : "host=iroha_pg1 port=5432 user=postgres password=mysecretpassword", 6 | "redis_host" : "iroha_redis1", 7 | "redis_port" : 6379, 8 | "max_proposal_size" : 10, 9 | "proposal_delay" : 5000, 10 | "vote_delay" : 5000, 11 | "load_delay" : 5000 12 | } 13 | -------------------------------------------------------------------------------- /network/iroha/simplenetwork/node1/node1.priv: -------------------------------------------------------------------------------- 1 | c4d68dafced63c2ba9cd9d6a79d38d183e3d9a0891d0b125dea508f1d6e43158 -------------------------------------------------------------------------------- /network/iroha/simplenetwork/node1/node1.pub: -------------------------------------------------------------------------------- 1 | 5bea110012e064a05c087788f3f69fa2b15b1712d5b795d986d882b9b0d8ec51 -------------------------------------------------------------------------------- /network/iroha/simplenetwork/peers.list: -------------------------------------------------------------------------------- 1 | iroha_node0:10001 2 | iroha_node1:10001 3 | -------------------------------------------------------------------------------- /network/iroha/simplenetwork/test@test.priv: -------------------------------------------------------------------------------- 1 | e378c8eab78f6712b08306f22eadf05d9222aa37fc3d7c891805ee7461295351 -------------------------------------------------------------------------------- /network/iroha/simplenetwork/test@test.pub: -------------------------------------------------------------------------------- 1 | b9fab88936a355bb855deecd4e774b290aec2c30d539246f8f26b00dd59aa757 -------------------------------------------------------------------------------- /network/sawtooth/simplenetwork/sawtooth-default-validators-simple.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Huawei Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | version: "2.1" 17 | 18 | services: 19 | 20 | settings-tp: 21 | image: hyperledger/sawtooth-tp_settings:latest 22 | container_name: sawtooth-settings-tp-default 23 | expose: 24 | - 4004 25 | depends_on: 26 | - validator 27 | entrypoint: settings-tp -vv tcp://validator:4004 28 | 29 | intkey-tp-python: 30 | image: hyperledger/sawtooth-tp_intkey_python:latest 31 | container_name: sawtooth-intkey-tp-python-default 32 | expose: 33 | - 4004 34 | depends_on: 35 | - validator 36 | entrypoint: intkey-tp-python -vv tcp://validator:4004 37 | 38 | xo-tp-python: 39 | image: hyperledger/sawtooth-tp_xo_python:latest 40 | container_name: sawtooth-xo-tp-python-default 41 | expose: 42 | - 4004 43 | depends_on: 44 | - validator 45 | entrypoint: xo-tp-python -vv tcp://validator:4004 46 | 47 | validator: 48 | image: hyperledger/sawtooth-validator:latest 49 | container_name: sawtooth-validator-default 50 | expose: 51 | - 4004 52 | ports: 53 | - "4004:4004" 54 | # start the validator with an empty genesis batch 55 | entrypoint: "bash -c \"\ 56 | sawtooth admin keygen --force && \ 57 | sawtooth keygen my_key --force && \ 58 | sawtooth config genesis -k /root/.sawtooth/keys/my_key.priv && \ 59 | sawtooth admin genesis config-genesis.batch && \ 60 | sawtooth-validator -vv \ 61 | --endpoint tcp://validator:8800 \ 62 | --bind component:tcp://eth0:4004 \ 63 | --bind network:tcp://eth0:8800 \ 64 | \"" 65 | 66 | validator-1: 67 | image: hyperledger/sawtooth-validator:latest 68 | expose: 69 | - 4004 70 | - 8800 71 | depends_on: 72 | - validator 73 | command: "bash -c \"\ 74 | sawtooth admin keygen --force && \ 75 | sawtooth-validator -v \ 76 | --endpoint tcp://validator-1:8800 \ 77 | --peers tcp://validator:8800 \ 78 | --bind component:tcp://eth0:4004 \ 79 | --bind network:tcp://eth0:8800 \ 80 | \"" 81 | environment: 82 | PYTHONPATH: "/project/sawtooth-core/consensus/poet/common:\ 83 | /project/sawtooth-core/consensus/poet/simulator:\ 84 | /project/sawtooth-core/consensus/poet/core" 85 | stop_signal: SIGKILL 86 | 87 | validator-2: 88 | image: hyperledger/sawtooth-validator:latest 89 | expose: 90 | - 4004 91 | - 8800 92 | depends_on: 93 | - validator 94 | - validator-1 95 | command: "bash -c \"\ 96 | sawtooth admin keygen --force && \ 97 | sawtooth-validator -v \ 98 | --endpoint tcp://validator-2:8800 \ 99 | --peers tcp://validator:8800,tcp://validator-1:8800 100 | --bind component:tcp://eth0:4004 \ 101 | --bind network:tcp://eth0:8800 \ 102 | \"" 103 | environment: 104 | PYTHONPATH: "/project/sawtooth-core/consensus/poet/common:\ 105 | /project/sawtooth-core/consensus/poet/simulator:\ 106 | /project/sawtooth-core/consensus/poet/core" 107 | stop_signal: SIGKILL 108 | 109 | rest-api: 110 | image: hyperledger/sawtooth-rest_api:latest 111 | container_name: sawtooth-rest-api-default 112 | expose: 113 | - 4004 114 | - 8080 115 | ports: 116 | - "8080:8080" 117 | depends_on: 118 | - validator 119 | entrypoint: sawtooth-rest-api --connect tcp://validator:4004 --bind rest-api:8080 120 | 121 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "caliper", 3 | "version": "0.1.0", 4 | "repository": { 5 | "type": "git", 6 | "url": "https://github.com/Huawei-OSG/caliper" 7 | }, 8 | "scripts": { 9 | "test": "node ./scripts/test.js", 10 | "list": "node ./scripts/list.js", 11 | "startclient": "node ./src/comm/client/zoo-client.js" 12 | }, 13 | "engines": { 14 | "node": ">=8.0.0", 15 | "npm": ">=2.15.9" 16 | }, 17 | "engine-strict": true, 18 | "engineStrict": true, 19 | "dependencies": { 20 | "cbor": "^3.0.3", 21 | "commander": "^2.11.0", 22 | "dockerode": "^2.5.0", 23 | "fs-extra": "^4.0.2", 24 | "jsrsasign": "^8.0.4", 25 | "mustache": "^2.3.0", 26 | "node-zookeeper-client": "^0.2.2", 27 | "pidusage": "^1.1.6", 28 | "ps-node": "^0.1.6", 29 | "request": "^2.81.0", 30 | "request-promise": "^4.2.1", 31 | "systeminformation": "^3.23.7", 32 | "table": "^4.0.1", 33 | "tape": "^4.8.0", 34 | "tape-promise": "^1.1.0" 35 | }, 36 | "license": "Apache-2.0", 37 | "licenses": [ 38 | { 39 | "type": "Apache-2.0", 40 | "url": "https://github.com/Huawei-OSG/caliper/blob/master/LICENSE" 41 | } 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /scripts/list.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 9 | 'use strict' 10 | 11 | function main() { 12 | var path = require('path'); 13 | var fs = require('fs-extra'); 14 | var benchDir = path.join(__dirname, '../benchmark'); 15 | var benchmarks = fs.readdirSync(benchDir); 16 | console.log('Available benchmarks:') 17 | benchmarks.forEach((item, index) => { 18 | let dir = path.join(benchDir, item); 19 | let info = fs.statSync(dir); 20 | if(info.isDirectory()) { 21 | if(fs.existsSync(path.join(dir, 'main.js'))) { 22 | console.log(item); 23 | } 24 | } 25 | }) 26 | } 27 | 28 | main(); 29 | -------------------------------------------------------------------------------- /scripts/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #export GOPATH="$HOME/go" 3 | #export GOROOT="/usr/local/go" 4 | #export NODEHOME="/usr/local/bin/node" 5 | #export PATH=$PATH:$GOROOT/bin:$NODEHOME/bin 6 | cd `dirname $0`/.. 7 | node ./scripts/test.js $1 -c ./benchmark/$1/$2 > output.log #node ./scripts/test.js $1 -n ./benchmark/$1/$2 > output.log 8 | -------------------------------------------------------------------------------- /scripts/test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | 9 | 'use strict' 10 | 11 | var configFile; 12 | var networkFile; 13 | var path = require('path'); 14 | var fs = require('fs-extra'); 15 | function setConfig(file) { 16 | configFile = path.join('../..', file); 17 | } 18 | 19 | function setNetwork(file) { 20 | networkFile = path.join('../..', file); 21 | } 22 | 23 | function main() { 24 | if(process.argv.length < 3) { 25 | console.log('undefined benchmark name, should be "npm test -- benchmark-name [options]"'); 26 | return; 27 | } 28 | 29 | var benchmark = process.argv[2]; 30 | var runDir = path.join(__dirname, '../benchmark', benchmark); 31 | if(!fs.existsSync(runDir)) { 32 | console.log('directory ' + runDir + ' does not exist'); 33 | return; 34 | } 35 | 36 | var runExe = path.join(runDir, 'main.js'); 37 | if(!fs.existsSync(runExe)) { 38 | console.log('file ' + runExe + ' does not exist'); 39 | return; 40 | } 41 | 42 | var program = require('commander'); 43 | program 44 | .option('-c, --config ', 'config file of the benchmark', setConfig) 45 | .option('-n, --network ', 'config file of the blockchain system under test', setNetwork) 46 | .parse(process.argv); 47 | var cmd = 'node main.js'; 48 | if(typeof configFile === 'string') { 49 | cmd += ' -c '; 50 | cmd += configFile; 51 | } 52 | if(typeof networkFile === 'string') { 53 | cmd += ' -n '; 54 | cmd += networkFile; 55 | } 56 | 57 | var childProcess = require('child_process'); 58 | var exec = childProcess.exec; 59 | let run = exec(cmd, {cwd: runDir}); 60 | run.stdout.pipe(process.stdout); 61 | run.stderr.pipe(process.stderr); 62 | } 63 | 64 | main(); 65 | -------------------------------------------------------------------------------- /src/comm/blockchain-interface.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * @file, definition of the interface class for all blockchain 7 | */ 8 | 9 | 'use strict' 10 | 11 | class BlockchainInterface { 12 | constructor(config_path) { 13 | this.configPath = config_path; 14 | } 15 | 16 | init() { 17 | throw new Error('init is not implemented for this blockchain system'); 18 | } 19 | 20 | installSmartContract() { 21 | throw new Error('installSmartContract is not implemented for this blockchain system'); 22 | } 23 | 24 | prepareClients (number) { 25 | var result = []; 26 | for(let i = 0 ; i< number ; i++) { 27 | result[i] = {}; // as default, return an empty object for each client 28 | } 29 | return Promise.resolve(result); 30 | } 31 | 32 | getContext(name, args) { 33 | throw new Error('getContext is not implemented for this blockchain system'); 34 | } 35 | 36 | releaseContext(context) { 37 | throw new Error('releaseContext is not implemented for this blockchain system'); 38 | } 39 | 40 | invokeSmartContract(context, contractID, contractVer, args, timeout) { 41 | throw new Error('invokeSmartContract is not implemented for this blockchain system'); 42 | } 43 | 44 | queryState(context, contractID, contractVer, key) { 45 | throw new Error('queryState is not implemented for this blockchain system'); 46 | } 47 | 48 | getDefaultTxStats(stats, results) { 49 | throw new Error('getDefaultTxStats is not implemented for this blockchain system'); 50 | } 51 | } 52 | 53 | module.exports = BlockchainInterface; -------------------------------------------------------------------------------- /src/comm/monitor-interface.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * @file, definition of the interface class for all monitors 7 | */ 8 | 9 | 10 | 'use strict' 11 | 12 | // todo: now we record the performance information in local variable, should use db later 13 | class MonitorInterface{ 14 | constructor(filter, interval) { 15 | this.filter = filter; 16 | this.interval = interval*1000; // ms 17 | } 18 | 19 | /** 20 | * start monitoring 21 | * @return {Promise} 22 | */ 23 | start() { 24 | throw new Error('start is not implemented for this monitor'); 25 | } 26 | 27 | /** 28 | * restart monitoring 29 | * @return {Promise} 30 | */ 31 | restart() { 32 | throw new Error('restart is not implemented for this monitor'); 33 | } 34 | 35 | /** 36 | * stop monitoring 37 | * @return {Promise} 38 | */ 39 | stop() { 40 | throw new Error('stop is not implemented for this monitor'); 41 | } 42 | 43 | /** 44 | * Get peer list and predefined readable information 45 | * @return {Array}, [{'key': peer's key which should be identical, the key can be used to fetch a peer's history data 46 | * 'info' : { 47 | * 'TYPE' : type of the peer, e.g. 'Docker', 48 | * 'NAME' : readable name of the peer 49 | * } 50 | */ 51 | getPeers() { 52 | throw new Error('getPeers is not implemented for this monitor'); 53 | } 54 | 55 | /** 56 | * Get peer's history of memory usage, byte 57 | * @key {string}, peer's key 58 | * @return {Array} 59 | */ 60 | getMemHistory(key) { 61 | throw new Error('getMemHistory is not implemented for this monitor'); 62 | } 63 | 64 | /** 65 | * Get peer's history of cpu percent, % 66 | * @key {string}, peer's key 67 | * @return {Array} 68 | */ 69 | getCpuHistory(key) { 70 | throw new Error('getCpuHistory is not implemented for this monitor'); 71 | } 72 | 73 | /** 74 | * Get peer's history of network io usage, byte 75 | * @key {string}, peer's key 76 | * @return {Array}, [{in: inflow traffic, out: outflow traffic}] 77 | */ 78 | getNetworkHistory(key) { 79 | throw new Error('getCpuHistory is not implemented for this monitor'); 80 | } 81 | }; 82 | module.exports = MonitorInterface; 83 | -------------------------------------------------------------------------------- /src/comm/rate-control/fixedRate.js: -------------------------------------------------------------------------------- 1 | 2 | 'use strict' 3 | 4 | var RateInterface = require('./rateInterface.js') 5 | 6 | class BasicInterval extends RateInterface{ 7 | constructor(blockchain, opts) { 8 | super(blockchain, opts); 9 | } 10 | 11 | /** 12 | * Initialise the rate controller with a passed msg object 13 | * - Only require the desired TPS from the standard msg options 14 | * @param {*} msg 15 | */ 16 | init(msg) { 17 | const tps = this.options.tps; 18 | const tpsPerClient = msg.totalClients ? (tps / msg.totalClients) : tps; 19 | this.sleepTime = (tpsPerClient > 0) ? 1000/tpsPerClient : 0; 20 | } 21 | 22 | /** 23 | * Perform the rate control action based on knowledge of the start time, current index, and current results. 24 | * - Sleep a suitable time according to the required transaction generation time 25 | * @param start {number}, generation time of the first test transaction 26 | * @param txSeq {number}, sequence number of the current test transaction 27 | * @param currentResults {Array}, current result set 28 | * @return {promise} 29 | */ 30 | applyRateControl(start, idx, currentResults) { 31 | if(this.sleepTime === 0) { 32 | return Promise.resolve(); 33 | } 34 | var diff = (this.sleepTime * idx - (Date.now() - start)); 35 | if( diff > 5) { 36 | return new Promise(resolve => setTimeout(resolve, diff)); 37 | } 38 | else { 39 | return Promise.resolve(); 40 | } 41 | } 42 | } 43 | 44 | module.exports = BasicInterval; -------------------------------------------------------------------------------- /src/comm/rate-control/rateControl.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | var RateControl = class { 4 | constructor(rateControl, blockchain) { 5 | console.log('*****', rateControl); 6 | switch (rateControl.type) { 7 | case 'fixed-rate': 8 | var interval = require('./fixedRate.js'); 9 | this.controller = new interval(blockchain, rateControl.opts); 10 | break 11 | default: 12 | throw new Error('Unknown rate control type ' + rateControl.type); 13 | } 14 | } 15 | 16 | /** 17 | * Initialise the rate controller with a passed msg object 18 | * @param msg 19 | * @return {Promise} 20 | */ 21 | init(msg) { 22 | return this.controller.init(msg); 23 | } 24 | 25 | /** 26 | * Perform the rate control action based on knowledge of the start time, current index, and current results. 27 | * @param {*} start 28 | * @param {*} idx 29 | * @param {*} results 30 | * @return Promise 31 | */ 32 | applyRateControl(start, idx, results) { 33 | return this.controller.applyRateControl(start, idx, results); 34 | } 35 | 36 | } 37 | 38 | module.exports = RateControl; -------------------------------------------------------------------------------- /src/comm/rate-control/rateInterface.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | class RateInterface { 4 | constructor(blockchain, opts) { 5 | this.blockchain = blockchain; 6 | this.options = opts; 7 | } 8 | 9 | /** 10 | * Initialise the rate controller with a passed msg object 11 | * @param {*} msg 12 | */ 13 | init(msg) { 14 | throw new Error('init is not implemented for this blockchain system'); 15 | } 16 | 17 | /** 18 | * Perform the rate control action based on knowledge of the start time, current index, and current results. 19 | * @param {*} start 20 | * @param {*} idx 21 | * @param {*} results 22 | */ 23 | applyRateControl(start, idx, results) { 24 | throw new Error('applyRateControl is not implemented for this blockchain system'); 25 | } 26 | } 27 | 28 | module.exports = RateInterface; -------------------------------------------------------------------------------- /src/comm/sleep.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * @file, definition of the report generator, which uses Mustache to generate a html report 7 | */ 8 | 9 | 10 | 'use strict' 11 | 12 | module.exports = function (ms) { 13 | return new Promise(resolve => setTimeout(resolve, ms)); 14 | } -------------------------------------------------------------------------------- /src/contract/fabric/drm/drmtest.go: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | */ 7 | 8 | package main 9 | 10 | import ( 11 | "fmt" 12 | "encoding/json" 13 | "encoding/base64" 14 | "crypto/sha256" 15 | "github.com/hyperledger/fabric/core/chaincode/shim" 16 | pb "github.com/hyperledger/fabric/protos/peer" 17 | ) 18 | 19 | type DrmChaincode struct { 20 | 21 | } 22 | 23 | type PublishRequest struct { 24 | Author string 25 | CreateTime string 26 | Info string 27 | Item string 28 | } 29 | 30 | type DigitalItem struct { 31 | Author string 32 | CreateTime string 33 | Info string 34 | Identity string 35 | } 36 | 37 | type QueryResponse struct { 38 | Result string // "Published" or "Unknown" 39 | Author string 40 | CreateTime string 41 | Info string 42 | } 43 | 44 | func (t *DrmChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response { 45 | // nothing to do 46 | return shim.Success(nil) 47 | } 48 | 49 | // query the drm info by item's identity 50 | func (t *DrmChaincode) Query(stub shim.ChaincodeStubInterface, args []string) pb.Response { 51 | if len(args) != 1 { 52 | return shim.Error("Wrong format, should be 'query id'") 53 | } 54 | 55 | stat, err := stub.GetState(args[0]) 56 | if err != nil { 57 | notFound := QueryResponse{"Unknown","","",""} 58 | r,_ := json.Marshal(notFound) 59 | return shim.Success([]byte(r)) // query a unpublished item , return success 60 | } 61 | 62 | var item DigitalItem 63 | err = json.Unmarshal(stat, &item) 64 | if err != nil { 65 | fmt.Printf("unknown state value %v \n", string(stat)) 66 | return shim.Error(err.Error()) 67 | } 68 | 69 | resp := QueryResponse{"Published", item.Author, item.CreateTime, item.Info} 70 | r,_ := json.Marshal(resp) 71 | return shim.Success(r) 72 | } 73 | 74 | // publish a digital item, store the hash and drm information into ledger 75 | func (t * DrmChaincode) Publish(stub shim.ChaincodeStubInterface, args []string) pb.Response { 76 | var wrongFmt = "Wrong format, should be 'publish {author:string, createtime:string, info:string, item:string'" 77 | if len(args) != 1 { 78 | fmt.Println(wrongFmt) 79 | return shim.Error(wrongFmt) 80 | } 81 | 82 | var req PublishRequest 83 | err := json.Unmarshal([]byte(args[0]), &req) 84 | if err != nil { 85 | return shim.Error(wrongFmt) 86 | } 87 | 88 | // calculate the hash value as identity 89 | hash := sha256.Sum256([]byte(req.Item)) 90 | id := base64.URLEncoding.EncodeToString(hash[:]) 91 | item := DigitalItem{req.Author, req.CreateTime, req.Info, id} 92 | i,_ := json.Marshal(item) 93 | 94 | // check if item already exists 95 | state, err := stub.GetState(id) 96 | if state != nil && err == nil { 97 | return shim.Error("Item already published"); 98 | } 99 | 100 | err = stub.PutState(id, []byte(i)) 101 | if err != nil { 102 | fmt.Printf("PutState error, %v\n", err.Error()) 103 | return shim.Error(err.Error()) 104 | } 105 | 106 | return shim.Success([]byte(id)); 107 | } 108 | 109 | // check if a digital item is already published 110 | func (t * DrmChaincode) Check(stub shim.ChaincodeStubInterface, args []string) pb.Response { 111 | var wrongFmt = "Wrong format, should be 'check item'" 112 | if len(args) != 1 { 113 | fmt.Println(wrongFmt) 114 | return shim.Error(wrongFmt) 115 | } 116 | 117 | hash := sha256.Sum256([]byte(args[0])) 118 | id := base64.URLEncoding.EncodeToString(hash[:]) 119 | bytes,err := stub.GetState(id) 120 | if bytes != nil && err == nil { 121 | return shim.Success([]byte("Published")) 122 | } else{ 123 | return shim.Success([]byte("Not Published")) 124 | } 125 | 126 | 127 | } 128 | 129 | func (t * DrmChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response { 130 | function, args := stub.GetFunctionAndParameters() 131 | if function == "query" { 132 | return t.Query(stub, args) 133 | } 134 | if function == "publish" { 135 | return t.Publish(stub, args) 136 | } 137 | if function == "check" { 138 | return t.Check(stub, args) 139 | } 140 | 141 | return shim.Error("Unknown action, should be 'query', 'publish' or 'check'") 142 | } 143 | 144 | func main() { 145 | err := shim.Start(new(DrmChaincode)) 146 | if err != nil { 147 | fmt.Printf("Error starting chaincode: %v \n", err) 148 | } 149 | 150 | } -------------------------------------------------------------------------------- /src/contract/iroha/simple/factory.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * @file, definition of the Fabric class, which implements the caliper's NBI for hyperledger fabric 7 | */ 8 | 9 | 10 | 'use strict' 11 | 12 | var irohaType = require('../../../iroha/type.js'); 13 | var simple = function(version, context, args) { 14 | try{ 15 | switch(args.verb) { 16 | case 'open': 17 | return open(context, args.account, args.money); 18 | case 'query': 19 | return query(context, args.key) 20 | default: 21 | throw new Error("Unknown verb for 'simple' contract"); 22 | } 23 | } 24 | catch(err){ 25 | console.log(err); 26 | return []; 27 | } 28 | } 29 | 30 | module.exports.contracts = { 31 | simple : simple 32 | }; 33 | 34 | 35 | function open(context, domain, money) { 36 | return [ 37 | { 38 | tx: irohaType.txType['CREATE_DOMAIN'], 39 | args: [domain, 'user'] 40 | }, 41 | { 42 | tx: irohaType.txType['CREATE_ASSET'], 43 | args: ['rmb', domain, 0] 44 | }, 45 | { 46 | tx: irohaType.txType['ADD_ASSET_QUANTITY'], 47 | args: [context.id, 'rmb#'+domain, money] 48 | } 49 | ]; 50 | } 51 | 52 | function query(context, key) { 53 | return [ 54 | { 55 | tx: irohaType.txType['GET_ASSET_INFO'], 56 | args: ['rmb#'+key] 57 | } 58 | ] 59 | } 60 | 61 | -------------------------------------------------------------------------------- /src/contract/sawtooth/docker/sawtooth-int-simple-tp-python: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | # Description: 17 | # Builds an image with the Hyperledger Sawtooth TP Simple installed from 18 | # local debs. 19 | # 20 | # Build: 21 | # This image should be built using `build_all installed`. 22 | # 23 | # Run: 24 | # $ docker run sawtooth-simple-tp-python 25 | 26 | FROM ubuntu:xenial 27 | 28 | LABEL "install-type"="local-debs" 29 | 30 | RUN apt-get update \ 31 | && apt-get install -y -q \ 32 | dpkg-dev \ 33 | && apt-get clean \ 34 | && rm -rf /var/lib/apt/lists/* \ 35 | && mkdir /debs 36 | 37 | COPY python3-sawtooth-*.deb /debs/ 38 | 39 | RUN cd /debs \ 40 | && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz \ 41 | && echo "deb file:/debs ./" >> /etc/apt/sources.list \ 42 | && echo "deb http://repo.sawtooth.me/ubuntu/ci xenial universe" >> /etc/apt/sources.list \ 43 | && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8AA7AF1F1091A5FD \ 44 | && apt-get update 45 | 46 | RUN apt-get install -y -q --allow-unauthenticated \ 47 | python3-sawtooth-simple 48 | 49 | EXPOSE 4004/tcp 50 | 51 | CMD ["simple-tp-python", "tcp://validator:4004"] 52 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple-tp-python: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright 2016 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # ------------------------------------------------------------------------------ 17 | 18 | import os 19 | import sys 20 | import sysconfig 21 | 22 | build_str = "lib.{}-{}.{}".format( 23 | sysconfig.get_platform(), 24 | sys.version_info.major, sys.version_info.minor) 25 | 26 | sys.path.insert(0, os.path.join( 27 | os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 28 | 'sdk', 'examples', 'simple_python')) 29 | sys.path.insert(0, os.path.join( 30 | os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 31 | 'sdk', 'python')) 32 | sys.path.insert(0, os.path.join( 33 | os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 34 | 'signing')) 35 | 36 | from sawtooth_simple.processor.main import main 37 | 38 | if __name__ == '__main__': 39 | main() 40 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/build/lib/sawtooth_simple/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | __all__ = [ 17 | 'client_cli', 18 | 'processor' 19 | ] 20 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/build/lib/sawtooth_simple/intkey_message_factory.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | import cbor 17 | 18 | from sawtooth_processor_test.message_factory import MessageFactory 19 | from sawtooth_intkey.processor.handler import INTKEY_ADDRESS_PREFIX 20 | from sawtooth_intkey.processor.handler import make_intkey_address 21 | 22 | 23 | class IntkeyMessageFactory: 24 | def __init__(self, private=None, public=None): 25 | self._factory = MessageFactory( 26 | encoding='application/cbor', 27 | family_name='intkey', 28 | family_version='1.0', 29 | namespace=INTKEY_ADDRESS_PREFIX, 30 | private=private, 31 | public=public 32 | ) 33 | 34 | def _dumps(self, obj): 35 | return cbor.dumps(obj, sort_keys=True) 36 | 37 | def _loads(self, data): 38 | return cbor.loads(data) 39 | 40 | def create_tp_register(self): 41 | return self._factory.create_tp_register() 42 | 43 | def create_tp_response(self, status): 44 | return self._factory.create_tp_response(status) 45 | 46 | def _create_txn(self, txn_function, verb, name, value): 47 | payload = self._dumps({'Verb': verb, 'Name': name, 'Value': value}) 48 | 49 | addresses = [make_intkey_address(name)] 50 | 51 | return txn_function(payload, addresses, addresses, []) 52 | 53 | def create_tp_process_request(self, verb, name, value,): 54 | txn_function = self._factory.create_tp_process_request 55 | return self._create_txn(txn_function, verb, name, value) 56 | 57 | def create_transaction(self, verb, name, value,): 58 | txn_function = self._factory.create_transaction 59 | return self._create_txn(txn_function, verb, name, value) 60 | 61 | def create_batch(self, triples): 62 | txns = [self.create_transaction(verb, name, value) 63 | for verb, name, value in triples] 64 | 65 | return self._factory.create_batch(txns) 66 | 67 | def create_get_request(self, name): 68 | addresses = [make_intkey_address(name)] 69 | return self._factory.create_get_request(addresses) 70 | 71 | def create_get_response(self, name, value): 72 | address = make_intkey_address(name) 73 | 74 | if value is not None: 75 | data = self._dumps({name: value}) 76 | else: 77 | data = None 78 | 79 | return self._factory.create_get_response({address: data}) 80 | 81 | def create_set_request(self, name, value): 82 | address = make_intkey_address(name) 83 | 84 | if value is not None: 85 | data = self._dumps({name: value}) 86 | else: 87 | data = None 88 | 89 | return self._factory.create_set_request({address: data}) 90 | 91 | def create_set_response(self, name): 92 | addresses = [make_intkey_address(name)] 93 | return self._factory.create_set_response(addresses) 94 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/build/lib/sawtooth_simple/processor/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | __all__ = [ 17 | 'main' 18 | ] 19 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/build/lib/sawtooth_simple/processor/main.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | import sys 17 | import argparse 18 | import pkg_resources 19 | 20 | from sawtooth_sdk.processor.core import TransactionProcessor 21 | from sawtooth_sdk.client.log import init_console_logging 22 | from sawtooth_sdk.client.log import log_configuration 23 | from sawtooth_sdk.client.config import get_log_config 24 | from sawtooth_sdk.client.config import get_log_dir 25 | from sawtooth_simple.processor.handler import SimpleTransactionHandler 26 | 27 | 28 | DISTRIBUTION_NAME = 'sawtooth-simple' 29 | 30 | 31 | def parse_args(args): 32 | parser = argparse.ArgumentParser( 33 | formatter_class=argparse.RawTextHelpFormatter) 34 | 35 | parser.add_argument('endpoint', 36 | nargs='?', 37 | default='tcp://localhost:4004', 38 | help='Endpoint for the validator connection') 39 | parser.add_argument('-v', '--verbose', 40 | action='count', 41 | default=0, 42 | help='Increase output sent to stderr') 43 | 44 | try: 45 | version = pkg_resources.get_distribution(DISTRIBUTION_NAME).version 46 | except pkg_resources.DistributionNotFound: 47 | version = 'UNKNOWN' 48 | 49 | parser.add_argument( 50 | '-V', '--version', 51 | action='version', 52 | version=(DISTRIBUTION_NAME + ' (Hyperledger Sawtooth) version {}') 53 | .format(version), 54 | help='print version information') 55 | 56 | return parser.parse_args(args) 57 | 58 | 59 | def main(args=None): 60 | if args is None: 61 | args = sys.argv[1:] 62 | opts = parse_args(args) 63 | processor = None 64 | try: 65 | processor = TransactionProcessor(url=opts.endpoint) 66 | log_config = get_log_config(filename="intkey_log_config.toml") 67 | 68 | # If no toml, try loading yaml 69 | if log_config is None: 70 | log_config = get_log_config(filename="intkey_log_config.yaml") 71 | 72 | if log_config is not None: 73 | log_configuration(log_config=log_config) 74 | else: 75 | log_dir = get_log_dir() 76 | # use the transaction processor zmq identity for filename 77 | log_configuration( 78 | log_dir=log_dir, 79 | name="intkey-" + str(processor.zmq_id)[2:-1]) 80 | 81 | init_console_logging(verbose_level=opts.verbose) 82 | 83 | # The prefix should eventually be looked up from the 84 | # validator's namespace registry. 85 | handler = SimpleTransactionHandler() 86 | 87 | processor.add_handler(handler) 88 | 89 | processor.start() 90 | except KeyboardInterrupt: 91 | pass 92 | except Exception as e: # pylint: disable=broad-except 93 | print("Error: {}".format(e), file=sys.stderr) 94 | finally: 95 | if processor is not None: 96 | processor.stop() 97 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/dist/sawtooth_simple-0.8.8.dev1-py3.5.egg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/contract/sawtooth/simple/simple_python/dist/sawtooth_simple-0.8.8.dev1-py3.5.egg -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/nose2.cfg: -------------------------------------------------------------------------------- 1 | [unittest] 2 | start-dir = tests 3 | code-directories = .. 4 | test-file-pattern = test*.py 5 | plugins = nose2.plugins.coverage 6 | 7 | [coverage] 8 | always-on = True 9 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/packaging/systemd/sawtooth-simple-tp-python: -------------------------------------------------------------------------------- 1 | SAWTOOTH_SIMPLE_TP_PYTHON_ARGS=-v tcp://localhost:4004 2 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/packaging/systemd/sawtooth-simple-tp-python.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Sawtooth Simple TP Python 3 | After=network.target 4 | 5 | [Service] 6 | User=sawtooth 7 | Group=sawtooth 8 | EnvironmentFile=-/etc/default/sawtooth-simple-tp-python 9 | ExecStart=/usr/bin/intkey-tp-python $SAWTOOTH_SIMPLE_TP_PYTHON_ARGS 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple.egg-info/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 1.0 2 | Name: sawtooth-simple 3 | Version: 0.8.8.dev1 4 | Summary: Sawtooth Lake Intkey Python Example 5 | Home-page: https://github.com/hyperledger/sawtooth-core 6 | Author: Intel Corporation 7 | Author-email: UNKNOWN 8 | License: UNKNOWN 9 | Description: UNKNOWN 10 | Platform: UNKNOWN 11 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | setup.py 2 | packaging/systemd/sawtooth-simple-tp-python 3 | packaging/systemd/sawtooth-simple-tp-python.service 4 | sawtooth_simple/__init__.py 5 | sawtooth_simple/intkey_message_factory.py 6 | sawtooth_simple.egg-info/PKG-INFO 7 | sawtooth_simple.egg-info/SOURCES.txt 8 | sawtooth_simple.egg-info/dependency_links.txt 9 | sawtooth_simple.egg-info/entry_points.txt 10 | sawtooth_simple.egg-info/requires.txt 11 | sawtooth_simple.egg-info/top_level.txt 12 | sawtooth_simple/processor/__init__.py 13 | sawtooth_simple/processor/handler.py 14 | sawtooth_simple/processor/main.py -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple.egg-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | simple-tp-python = sawtooth_simple.processor.main:main 3 | 4 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple.egg-info/requires.txt: -------------------------------------------------------------------------------- 1 | cbor 2 | colorlog 3 | sawtooth-sdk 4 | sawtooth-signing 5 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | sawtooth_simple 2 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | __all__ = [ 17 | 'client_cli', 18 | 'processor' 19 | ] 20 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/__pycache__/__init__.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/contract/sawtooth/simple/simple_python/sawtooth_simple/__pycache__/__init__.cpython-35.pyc -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/__pycache__/intkey_message_factory.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/contract/sawtooth/simple/simple_python/sawtooth_simple/__pycache__/intkey_message_factory.cpython-35.pyc -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | __all__ = [ 17 | 'main' 18 | ] 19 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__pycache__/__init__.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__pycache__/__init__.cpython-35.pyc -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__pycache__/handler.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__pycache__/handler.cpython-35.pyc -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__pycache__/main.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/__pycache__/main.cpython-35.pyc -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/sawtooth_simple/processor/main.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | import sys 17 | import argparse 18 | import pkg_resources 19 | 20 | from sawtooth_sdk.processor.core import TransactionProcessor 21 | from sawtooth_sdk.client.log import init_console_logging 22 | from sawtooth_sdk.client.log import log_configuration 23 | from sawtooth_sdk.client.config import get_log_config 24 | from sawtooth_sdk.client.config import get_log_dir 25 | from sawtooth_simple.processor.handler import SimpleTransactionHandler 26 | 27 | 28 | DISTRIBUTION_NAME = 'sawtooth-simple' 29 | 30 | 31 | def parse_args(args): 32 | parser = argparse.ArgumentParser( 33 | formatter_class=argparse.RawTextHelpFormatter) 34 | 35 | parser.add_argument('endpoint', 36 | nargs='?', 37 | default='tcp://localhost:4004', 38 | help='Endpoint for the validator connection') 39 | parser.add_argument('-v', '--verbose', 40 | action='count', 41 | default=0, 42 | help='Increase output sent to stderr') 43 | 44 | try: 45 | version = pkg_resources.get_distribution(DISTRIBUTION_NAME).version 46 | except pkg_resources.DistributionNotFound: 47 | version = 'UNKNOWN' 48 | 49 | parser.add_argument( 50 | '-V', '--version', 51 | action='version', 52 | version=(DISTRIBUTION_NAME + ' (Hyperledger Sawtooth) version {}') 53 | .format(version), 54 | help='print version information') 55 | 56 | return parser.parse_args(args) 57 | 58 | 59 | def main(args=None): 60 | if args is None: 61 | args = sys.argv[1:] 62 | opts = parse_args(args) 63 | processor = None 64 | try: 65 | processor = TransactionProcessor(url=opts.endpoint) 66 | log_config = get_log_config(filename="intkey_log_config.toml") 67 | 68 | # If no toml, try loading yaml 69 | if log_config is None: 70 | log_config = get_log_config(filename="intkey_log_config.yaml") 71 | 72 | if log_config is not None: 73 | log_configuration(log_config=log_config) 74 | else: 75 | log_dir = get_log_dir() 76 | # use the transaction processor zmq identity for filename 77 | log_configuration( 78 | log_dir=log_dir, 79 | name="intkey-" + str(processor.zmq_id)[2:-1]) 80 | 81 | init_console_logging(verbose_level=opts.verbose) 82 | 83 | # The prefix should eventually be looked up from the 84 | # validator's namespace registry. 85 | handler = SimpleTransactionHandler() 86 | 87 | processor.add_handler(handler) 88 | 89 | processor.start() 90 | except KeyboardInterrupt: 91 | pass 92 | except Exception as e: # pylint: disable=broad-except 93 | print("Error: {}".format(e), file=sys.stderr) 94 | finally: 95 | if processor is not None: 96 | processor.stop() 97 | -------------------------------------------------------------------------------- /src/contract/sawtooth/simple/simple_python/setup.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ------------------------------------------------------------------------------ 15 | 16 | from __future__ import print_function 17 | 18 | import os 19 | import subprocess 20 | 21 | from setuptools import setup, find_packages 22 | 23 | 24 | data_files = [] 25 | 26 | if os.path.exists("/etc/default"): 27 | data_files.append(('/etc/default', ['packaging/systemd/sawtooth-simple-tp-python'])) 28 | 29 | if os.path.exists("/lib/systemd/system"): 30 | data_files.append(('/lib/systemd/system', 31 | ['packaging/systemd/sawtooth-simple-tp-python.service'])) 32 | 33 | setup(name='sawtooth-simple', 34 | version=subprocess.check_output( 35 | ['../../../bin/get_version']).decode('utf-8').strip(), 36 | description='Sawtooth Lake Intkey Python Example', 37 | author='Intel Corporation', 38 | url='https://github.com/hyperledger/sawtooth-core', 39 | packages=find_packages(), 40 | install_requires=[ 41 | "cbor", 42 | "colorlog", 43 | "sawtooth-sdk", 44 | "sawtooth-signing", 45 | ], 46 | data_files=data_files, 47 | entry_points={ 48 | 'console_scripts': [ 49 | 'simple-tp-python = sawtooth_simple.processor.main:main' 50 | ] 51 | }) 52 | -------------------------------------------------------------------------------- /src/fabric/constant.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | var os = require('os'); 4 | var path = require('path'); 5 | 6 | var tempdir = path.join(os.tmpdir(), 'hfc'); 7 | 8 | module.exports = { 9 | tempdir: tempdir 10 | } -------------------------------------------------------------------------------- /src/fabric/install-chaincode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Modifications Copyright 2017 HUAWEI 3 | * Copyright 2017 IBM All Rights Reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | // This is an end-to-end test that focuses on exercising all parts of the fabric APIs 19 | // in a happy-path scenario 20 | 'use strict'; 21 | 22 | var utils = require('fabric-client/lib/utils.js'); 23 | var logger = utils.getLogger('E2E install-chaincode'); 24 | 25 | var tape = require('tape'); 26 | var _test = require('tape-promise'); 27 | var test = _test(tape); 28 | 29 | var e2eUtils = require('./e2eUtils.js'); 30 | var testUtil = require('./util.js'); 31 | var Client = require('fabric-client'); 32 | 33 | module.exports.run = function (config_path) { 34 | Client.addConfigFile(config_path); 35 | testUtil.setupChaincodeDeploy(); 36 | var fabricSettings = Client.getConfigSetting('fabric'); 37 | var chaincodes = fabricSettings.chaincodes; 38 | if(typeof chaincodes === 'undefined' || chaincodes.length === 0) { 39 | return Promise.resolve(); 40 | } 41 | return new Promise(function(resolve, reject) { 42 | var t = global.tapeObj; 43 | t.comment('install all chaincodes......'); 44 | chaincodes.reduce(function(prev, chaincode){ 45 | return prev.then(() => { 46 | let promises = []; 47 | let channel = testUtil.getChannel(chaincode.channel); 48 | if(channel === null) { 49 | throw new Error('could not find channel in config'); 50 | } 51 | for(let v in channel.organizations) { 52 | promises.push(e2eUtils.installChaincode(channel.organizations[v], chaincode)); 53 | } 54 | 55 | return Promise.all(promises).then(() => { 56 | t.pass('Installed chaincode ' + chaincode.id + ' successfully in all peers'); 57 | return Promise.resolve(); 58 | }) 59 | }); 60 | }, Promise.resolve()) 61 | .then(() => { 62 | return resolve(); 63 | }) 64 | .catch((err) => { 65 | t.fail('Failed to install chaincodes, ' + (err.stack?err.stack:err)); 66 | return reject(err); 67 | }); 68 | }); 69 | } 70 | -------------------------------------------------------------------------------- /src/fabric/instantiate-chaincode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Modifications Copyright 2017 HUAWEI 3 | * Copyright 2017 IBM All Rights Reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | // This is an end-to-end test that focuses on exercising all parts of the fabric APIs 19 | // in a happy-path scenario 20 | 'use strict'; 21 | 22 | var utils = require('fabric-client/lib/utils.js'); 23 | var logger = utils.getLogger('E2E instantiate-chaincode'); 24 | 25 | var tape = require('tape'); 26 | var _test = require('tape-promise'); 27 | var test = _test(tape); 28 | 29 | var e2eUtils = require('./e2eUtils.js'); 30 | var Client = require('fabric-client') 31 | 32 | module.exports.run = function (config_path) { 33 | Client.addConfigFile(config_path); 34 | var fabricSettings = Client.getConfigSetting('fabric'); 35 | var policy = fabricSettings['endorsement-policy']; // TODO: support mulitple policies 36 | var chaincodes = fabricSettings.chaincodes; 37 | if(typeof chaincodes === 'undefined' || chaincodes.length === 0) { 38 | return Promise.resolve(); 39 | } 40 | 41 | return new Promise(function(resolve, reject) { 42 | // test('\n\n***** instantiate chaincode *****\n\n', (t) => { 43 | var t = global.tapeObj; 44 | t.comment('Instantiate chaincode......'); 45 | chaincodes.reduce(function(prev, chaincode){ 46 | return prev.then(() => { 47 | return e2eUtils.instantiateChaincode(chaincode, policy, false).then(() => { 48 | t.pass('Instantiated chaincode ' + chaincode.id + ' successfully '); 49 | t.comment('Sleep 5s...'); 50 | return sleep(5000); 51 | }); 52 | }); 53 | }, Promise.resolve()) 54 | .then(() => { 55 | return resolve(); 56 | }) 57 | .catch((err) => { 58 | t.pass('Failed to instantiate chaincodes, ' + (err.stack?err.stack:err)); 59 | return reject(new Error('Fabric: Create channel failed')); 60 | }); 61 | }); 62 | }; 63 | 64 | function sleep(ms) { 65 | return new Promise(resolve => setTimeout(resolve, ms)); 66 | } 67 | -------------------------------------------------------------------------------- /src/gui/README.md: -------------------------------------------------------------------------------- 1 | This is an implementation of temporary GUI demo. 2 | 3 | SSH is used to start remote benchmark and fetch results (which are updated in temporary log files) periodically. To setup the SSH connection, go to www/remotecontrol.php to define the host address and login name/password. 4 | 5 | EventSource is used in the demo which is not supported by IE. Although an open source polyfill provided by Yaffle is used to try to fix this problem, we still recommend using chrome to run the demo. 6 | 7 | Only 'simple' benchmark is integrated into the GUI. The config name is hard coded now. 8 | 9 | * /www, contains the web portal and php files. Echart v2.2.7 from Baidu company is used to draw dynamic charts. 10 | * /src, contains interfaces for caliper benchmark to update performance log -------------------------------------------------------------------------------- /src/gui/output/demo.json: -------------------------------------------------------------------------------- 1 | {"throughput":{"x":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],"submitted":[0],"succeeded":[0],"failed":[0]},"latency":{"x":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],"max":[0],"min":[0],"avg":[0]},"summary":{"txSub":0,"txSucc":0,"txFail":0,"round":0},"report":""} -------------------------------------------------------------------------------- /src/gui/www/.idea/caliper.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/gui/www/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/gui/www/echart/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Baidu Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use of this software in source and binary forms, with or 5 | without modification, are permitted provided that the following conditions 6 | are met: 7 | 8 | Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | Neither the name of Baidu Inc. nor the names of its contributors may be used 16 | to endorse or promote products derived from this software without specific 17 | prior written permission of Baidu Inc. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 23 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /src/gui/www/echart/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/gui/www/echart/js/.DS_Store -------------------------------------------------------------------------------- /src/gui/www/echart/js/chart/heatmap.js: -------------------------------------------------------------------------------- 1 | define("echarts/chart/heatmap",["require","./base","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/tool/color","zrender/shape/Image","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../layer/heatmap"),a=e("../config"),o=(e("../util/ecData"),e("zrender/tool/util")),r=(e("zrender/tool/color"),e("zrender/shape/Image"));return a.heatmap={zlevel:0,z:2,clickable:!0},t.prototype={type:a.CHART_TYPE_HEATMAP,refresh:function(e){this.clear(),e&&(this.option=e,this.series=e.series),this._init()},_init:function(){var e=this.series;this.backupShapeList();for(var t=e.length,i=0;t>i;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var d=e[V],U=d[0],p=d[1],c=d[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,U-s,p-s)}for(var g=h.getImageData(0,0,l.width,l.height),y=g.data,m=y.length/4;m--;){var b=4*m+3,u=y[b]/256,f=Math.floor(u*(n-1));y[b-3]=r[4*f],y[b-2]=r[4*f+1],y[b-1]=r[4*f+2],y[b]*=this.option.opacity}return h.putImageData(g,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var d=e[V],U=d[0],p=d[1],c=d[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,U-s,p-s)}for(var g=h.getImageData(0,0,l.width,l.height),y=g.data,m=y.length/4;m--;){var b=4*m+3,u=y[b]/256,f=Math.floor(u*(n-1));y[b-3]=r[4*f],y[b-2]=r[4*f+1],y[b-1]=r[4*f+2],y[b]*=this.option.opacity}return h.putImageData(g,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}); -------------------------------------------------------------------------------- /src/gui/www/polyfills/README.md: -------------------------------------------------------------------------------- 1 | EventSource polyfill - http://www.w3.org/TR/eventsource/ 2 | ======================================================== 3 | 4 | The polyfill is provided by Yaffle under MIT license 5 | https://github.com/Yaffle/EventSource 6 | 7 | 8 | The MIT License (MIT) 9 | 10 | Copyright (c) 2012 vic99999@yandex.ru 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | -------------------------------------------------------------------------------- /src/gui/www/remotecontrol.php: -------------------------------------------------------------------------------- 1 | $name, 'data'=>$data); 30 | echo "data:" . json_encode($data, JSON_UNESCAPED_SLASHES) . "\n\n"; 31 | @ob_flush(); 32 | @flush(); 33 | } 34 | 35 | if(ssh2_auth_password($connect, $user, $pwd)){ 36 | // start the benchmark 37 | $stream = ssh2_exec($connect, 'bash '.$path.'scripts/start.sh ' . $_GET['b'] . ' ' . $_GET['s']); 38 | stream_set_blocking($stream, true); 39 | // fetch the log file to get running result 40 | while($stream) { 41 | @session_start(); 42 | if($_SESSION['started'] == false) { 43 | sendmsg("finish", "stopped"); 44 | exit(); 45 | } 46 | session_write_close(); 47 | 48 | sleep(1); 49 | $out = ssh2_exec($connect, 'cat '.$path.'output.log'); 50 | stream_set_blocking($out, true); 51 | $result = stream_get_contents($out); 52 | sendmsg("log", $result); 53 | fclose($out); 54 | 55 | $demo = ssh2_exec($connect, 'cat '.$path.'src/gui/output/demo.json'); 56 | stream_set_blocking($demo, true); 57 | $demoResult = stream_get_contents($demo); 58 | sendmsg("metrics", $demoResult); 59 | if(!$hasReport) { 60 | $json = json_decode($demoResult); 61 | $report = $json->report; 62 | if(strpos($report, '.html') !== false ) { 63 | $html = ssh2_exec($connect, 'cat '.$report); 64 | stream_set_blocking($html, true); 65 | $htmlData = stream_get_contents($html); 66 | $htmlFile = fopen("report.html", "w"); 67 | fwrite($htmlFile, $htmlData); 68 | fclose($htmlFile); 69 | fclose($html); 70 | $hasReport = true; 71 | sendmsg("report", "ok"); 72 | } 73 | } 74 | fclose($demo); 75 | 76 | if(strpos($result, '# fail ') !== false || strpos($result, '# ok') !== false) { 77 | sleep(2); 78 | break; 79 | } 80 | } 81 | 82 | stream_get_contents($stream); 83 | fclose($stream); 84 | 85 | sendmsg("finish","ok"); 86 | exit(); 87 | } 88 | else { 89 | sendmsg("finish", "error"); 90 | exit(); 91 | } 92 | } 93 | catch(Exception $e) { 94 | sendmsg("finish", "error"); 95 | exit(); 96 | } 97 | 98 | ?> -------------------------------------------------------------------------------- /src/gui/www/stop.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/iroha/external/README.md: -------------------------------------------------------------------------------- 1 | These libraries are generated automatically using swig + node-gyp, base on iroha/develop/commit c10e4c132e02fe564056f6f65f43b51c04f57388 2 | 3 | If there are any compatibility problem, please try to re-generate and replace them. -------------------------------------------------------------------------------- /src/iroha/external/irohanode.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/iroha/external/irohanode.node -------------------------------------------------------------------------------- /src/iroha/external/libiroha.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperledger-archives/caliper/237a7b1cac23dec24e83bfb5eece0dc159cce36c/src/iroha/external/libiroha.so -------------------------------------------------------------------------------- /src/iroha/external/loader_grpc_pb.js: -------------------------------------------------------------------------------- 1 | // GENERATED CODE -- DO NOT EDIT! 2 | 3 | // Original file comments: 4 | // 5 | // Copyright Soramitsu Co., Ltd. 2017 All Rights Reserved. 6 | // http://soramitsu.co.jp 7 | // 8 | // Licensed under the Apache License, Version 2.0 (the "License"); 9 | // you may not use this file except in compliance with the License. 10 | // You may obtain a copy of the License at 11 | // 12 | // http://www.apache.org/licenses/LICENSE-2.0 13 | // 14 | // Unless required by applicable law or agreed to in writing, software 15 | // distributed under the License is distributed on an "AS IS" BASIS, 16 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | // See the License for the specific language governing permissions and 18 | // limitations under the License. 19 | // 20 | // 21 | 'use strict'; 22 | var grpc = require('grpc'); 23 | var loader_pb = require('./loader_pb.js'); 24 | var block_pb = require('./block_pb.js'); 25 | 26 | function serialize_iroha_network_proto_BlockRequest(arg) { 27 | if (!(arg instanceof loader_pb.BlockRequest)) { 28 | throw new Error('Expected argument of type iroha.network.proto.BlockRequest'); 29 | } 30 | return new Buffer(arg.serializeBinary()); 31 | } 32 | 33 | function deserialize_iroha_network_proto_BlockRequest(buffer_arg) { 34 | return loader_pb.BlockRequest.deserializeBinary(new Uint8Array(buffer_arg)); 35 | } 36 | 37 | function serialize_iroha_network_proto_BlocksRequest(arg) { 38 | if (!(arg instanceof loader_pb.BlocksRequest)) { 39 | throw new Error('Expected argument of type iroha.network.proto.BlocksRequest'); 40 | } 41 | return new Buffer(arg.serializeBinary()); 42 | } 43 | 44 | function deserialize_iroha_network_proto_BlocksRequest(buffer_arg) { 45 | return loader_pb.BlocksRequest.deserializeBinary(new Uint8Array(buffer_arg)); 46 | } 47 | 48 | function serialize_iroha_protocol_Block(arg) { 49 | if (!(arg instanceof block_pb.Block)) { 50 | throw new Error('Expected argument of type iroha.protocol.Block'); 51 | } 52 | return new Buffer(arg.serializeBinary()); 53 | } 54 | 55 | function deserialize_iroha_protocol_Block(buffer_arg) { 56 | return block_pb.Block.deserializeBinary(new Uint8Array(buffer_arg)); 57 | } 58 | 59 | 60 | var LoaderService = exports.LoaderService = { 61 | retrieveBlocks: { 62 | path: '/iroha.network.proto.Loader/retrieveBlocks', 63 | requestStream: false, 64 | responseStream: true, 65 | requestType: loader_pb.BlocksRequest, 66 | responseType: block_pb.Block, 67 | requestSerialize: serialize_iroha_network_proto_BlocksRequest, 68 | requestDeserialize: deserialize_iroha_network_proto_BlocksRequest, 69 | responseSerialize: serialize_iroha_protocol_Block, 70 | responseDeserialize: deserialize_iroha_protocol_Block, 71 | }, 72 | retrieveBlock: { 73 | path: '/iroha.network.proto.Loader/retrieveBlock', 74 | requestStream: false, 75 | responseStream: false, 76 | requestType: loader_pb.BlockRequest, 77 | responseType: block_pb.Block, 78 | requestSerialize: serialize_iroha_network_proto_BlockRequest, 79 | requestDeserialize: deserialize_iroha_network_proto_BlockRequest, 80 | responseSerialize: serialize_iroha_protocol_Block, 81 | responseDeserialize: deserialize_iroha_protocol_Block, 82 | }, 83 | }; 84 | 85 | exports.LoaderClient = grpc.makeGenericClientConstructor(LoaderService); 86 | -------------------------------------------------------------------------------- /src/iroha/external/ordering_grpc_pb.js: -------------------------------------------------------------------------------- 1 | // GENERATED CODE -- DO NOT EDIT! 2 | 3 | 'use strict'; 4 | var grpc = require('grpc'); 5 | var ordering_pb = require('./ordering_pb.js'); 6 | var block_pb = require('./block_pb.js'); 7 | var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); 8 | 9 | function serialize_google_protobuf_Empty(arg) { 10 | if (!(arg instanceof google_protobuf_empty_pb.Empty)) { 11 | throw new Error('Expected argument of type google.protobuf.Empty'); 12 | } 13 | return new Buffer(arg.serializeBinary()); 14 | } 15 | 16 | function deserialize_google_protobuf_Empty(buffer_arg) { 17 | return google_protobuf_empty_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); 18 | } 19 | 20 | function serialize_iroha_ordering_proto_Proposal(arg) { 21 | if (!(arg instanceof ordering_pb.Proposal)) { 22 | throw new Error('Expected argument of type iroha.ordering.proto.Proposal'); 23 | } 24 | return new Buffer(arg.serializeBinary()); 25 | } 26 | 27 | function deserialize_iroha_ordering_proto_Proposal(buffer_arg) { 28 | return ordering_pb.Proposal.deserializeBinary(new Uint8Array(buffer_arg)); 29 | } 30 | 31 | function serialize_iroha_protocol_Transaction(arg) { 32 | if (!(arg instanceof block_pb.Transaction)) { 33 | throw new Error('Expected argument of type iroha.protocol.Transaction'); 34 | } 35 | return new Buffer(arg.serializeBinary()); 36 | } 37 | 38 | function deserialize_iroha_protocol_Transaction(buffer_arg) { 39 | return block_pb.Transaction.deserializeBinary(new Uint8Array(buffer_arg)); 40 | } 41 | 42 | 43 | var OrderingGateTransportGrpcService = exports.OrderingGateTransportGrpcService = { 44 | onProposal: { 45 | path: '/iroha.ordering.proto.OrderingGateTransportGrpc/onProposal', 46 | requestStream: false, 47 | responseStream: false, 48 | requestType: ordering_pb.Proposal, 49 | responseType: google_protobuf_empty_pb.Empty, 50 | requestSerialize: serialize_iroha_ordering_proto_Proposal, 51 | requestDeserialize: deserialize_iroha_ordering_proto_Proposal, 52 | responseSerialize: serialize_google_protobuf_Empty, 53 | responseDeserialize: deserialize_google_protobuf_Empty, 54 | }, 55 | }; 56 | 57 | exports.OrderingGateTransportGrpcClient = grpc.makeGenericClientConstructor(OrderingGateTransportGrpcService); 58 | var OrderingServiceTransportGrpcService = exports.OrderingServiceTransportGrpcService = { 59 | onTransaction: { 60 | path: '/iroha.ordering.proto.OrderingServiceTransportGrpc/onTransaction', 61 | requestStream: false, 62 | responseStream: false, 63 | requestType: block_pb.Transaction, 64 | responseType: google_protobuf_empty_pb.Empty, 65 | requestSerialize: serialize_iroha_protocol_Transaction, 66 | requestDeserialize: deserialize_iroha_protocol_Transaction, 67 | responseSerialize: serialize_google_protobuf_Empty, 68 | responseDeserialize: deserialize_google_protobuf_Empty, 69 | }, 70 | }; 71 | 72 | exports.OrderingServiceTransportGrpcClient = grpc.makeGenericClientConstructor(OrderingServiceTransportGrpcService); 73 | -------------------------------------------------------------------------------- /src/iroha/external/yac_grpc_pb.js: -------------------------------------------------------------------------------- 1 | // GENERATED CODE -- DO NOT EDIT! 2 | 3 | 'use strict'; 4 | var grpc = require('grpc'); 5 | var yac_pb = require('./yac_pb.js'); 6 | var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); 7 | 8 | function serialize_google_protobuf_Empty(arg) { 9 | if (!(arg instanceof google_protobuf_empty_pb.Empty)) { 10 | throw new Error('Expected argument of type google.protobuf.Empty'); 11 | } 12 | return new Buffer(arg.serializeBinary()); 13 | } 14 | 15 | function deserialize_google_protobuf_Empty(buffer_arg) { 16 | return google_protobuf_empty_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); 17 | } 18 | 19 | function serialize_iroha_consensus_yac_proto_Commit(arg) { 20 | if (!(arg instanceof yac_pb.Commit)) { 21 | throw new Error('Expected argument of type iroha.consensus.yac.proto.Commit'); 22 | } 23 | return new Buffer(arg.serializeBinary()); 24 | } 25 | 26 | function deserialize_iroha_consensus_yac_proto_Commit(buffer_arg) { 27 | return yac_pb.Commit.deserializeBinary(new Uint8Array(buffer_arg)); 28 | } 29 | 30 | function serialize_iroha_consensus_yac_proto_Reject(arg) { 31 | if (!(arg instanceof yac_pb.Reject)) { 32 | throw new Error('Expected argument of type iroha.consensus.yac.proto.Reject'); 33 | } 34 | return new Buffer(arg.serializeBinary()); 35 | } 36 | 37 | function deserialize_iroha_consensus_yac_proto_Reject(buffer_arg) { 38 | return yac_pb.Reject.deserializeBinary(new Uint8Array(buffer_arg)); 39 | } 40 | 41 | function serialize_iroha_consensus_yac_proto_Vote(arg) { 42 | if (!(arg instanceof yac_pb.Vote)) { 43 | throw new Error('Expected argument of type iroha.consensus.yac.proto.Vote'); 44 | } 45 | return new Buffer(arg.serializeBinary()); 46 | } 47 | 48 | function deserialize_iroha_consensus_yac_proto_Vote(buffer_arg) { 49 | return yac_pb.Vote.deserializeBinary(new Uint8Array(buffer_arg)); 50 | } 51 | 52 | 53 | var YacService = exports.YacService = { 54 | sendVote: { 55 | path: '/iroha.consensus.yac.proto.Yac/SendVote', 56 | requestStream: false, 57 | responseStream: false, 58 | requestType: yac_pb.Vote, 59 | responseType: google_protobuf_empty_pb.Empty, 60 | requestSerialize: serialize_iroha_consensus_yac_proto_Vote, 61 | requestDeserialize: deserialize_iroha_consensus_yac_proto_Vote, 62 | responseSerialize: serialize_google_protobuf_Empty, 63 | responseDeserialize: deserialize_google_protobuf_Empty, 64 | }, 65 | sendCommit: { 66 | path: '/iroha.consensus.yac.proto.Yac/SendCommit', 67 | requestStream: false, 68 | responseStream: false, 69 | requestType: yac_pb.Commit, 70 | responseType: google_protobuf_empty_pb.Empty, 71 | requestSerialize: serialize_iroha_consensus_yac_proto_Commit, 72 | requestDeserialize: deserialize_iroha_consensus_yac_proto_Commit, 73 | responseSerialize: serialize_google_protobuf_Empty, 74 | responseDeserialize: deserialize_google_protobuf_Empty, 75 | }, 76 | sendReject: { 77 | path: '/iroha.consensus.yac.proto.Yac/SendReject', 78 | requestStream: false, 79 | responseStream: false, 80 | requestType: yac_pb.Reject, 81 | responseType: google_protobuf_empty_pb.Empty, 82 | requestSerialize: serialize_iroha_consensus_yac_proto_Reject, 83 | requestDeserialize: deserialize_iroha_consensus_yac_proto_Reject, 84 | responseSerialize: serialize_google_protobuf_Empty, 85 | responseDeserialize: deserialize_google_protobuf_Empty, 86 | }, 87 | }; 88 | 89 | exports.YacClient = grpc.makeGenericClientConstructor(YacService); 90 | -------------------------------------------------------------------------------- /src/iroha/type.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 HUAWEI. All Rights Reserved. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * @file, definition of the Fabric class, which implements the caliper's NBI for hyperledger fabric 7 | */ 8 | 9 | 10 | 'use strict' 11 | 12 | var txType = { 13 | // commands 14 | ADD_ASSET_QUANTITY : {type:'command', fn:'addAssetQuantity', argslen: 3}, 15 | ADD_PEER : {type:'command', fn:'addPeer', argslen: 2}, 16 | ADD_SIGNATORY : {type:'command', fn:'addSignatory', argslen: 2}, 17 | APPEND_ROLE : {type:'command', fn:'appendRole', argslen: 2}, 18 | CREATE_ACCOUNT : {type:'command', fn:'createAccount', argslen: 3}, 19 | CREATE_ASSET : {type:'command', fn:'createAsset', argslen: 3}, 20 | CREATE_DOMAIN : {type:'command', fn:'createDomain', argslen: 2}, 21 | CREATE_ROLE : {type:'command', fn:'createRole', argslen: 2}, 22 | DETACH_ROLE : {type:'command', fn:'detachRole', argslen: 2}, 23 | GRANT_PERMISSION : {type:'command', fn:'grantPermission', argslen: 2}, 24 | REMOVE_SIGNATORY : {type:'command', fn:'removeSignatory', argslen: 2}, 25 | REVOKE_PERMISSION : {type:'command', fn:'revokePermission', argslen: 2}, 26 | SET_ACCOUNT_DETAIL : {type:'command', fn:'setAccountDetail', argslen: 3}, 27 | SET_ACCOUNT_QUORUM : {type:'command', fn:'setAccountQuorum', argslen: 2}, 28 | SUBTRACT_ASSET_QUANTITY : {type:'command', fn:'subtractAssetQuantity', argslen: 3}, 29 | TRANSFER_ASSET : {type:'command', fn:'transferAsset', argslen: 5}, 30 | // query, started from 100 31 | GET_ACCOUNT : {type:'query', fn:'getAccount', argslen: 1}, 32 | GET_SIGNATORIES : {type:'query', fn:'getSignatories', argslen: 1}, 33 | GET_ACCOUNT_TRANSACTIONS : {type:'query', fn:'getAccountTransactions', argslen: 1}, 34 | GET_ACCOUNT_ASSERT_TRANSACTIONS : {type:'query', fn:'getAccountAssetTransactions', argslen: 2}, 35 | GET_TRANSACTIONS : {type:'query', fn:'getTransactions', argslen: 1}, 36 | GET_ACCOUNT_ASSETS : {type:'query', fn:'getAccountAssets', argslen: 2}, 37 | GET_ASSET_INFO : {type:'query', fn:'getAssetInfo', argslen: 1}, 38 | GET_ROLES : {type:'query', fn:'getRoles ', argslen: 0}, 39 | GET_ROLE_PERMISSIONS : {type:'query', fn:'GetRolePermissions ', argslen: 1} 40 | }; 41 | module.exports.txType = txType; 42 | 43 | /** 44 | * judge whether the type is a command type or query type 45 | * @type {Number} 46 | * @return {Number}, 0: command; 1: query 47 | */ 48 | module.exports.commandOrQuery = function (tx) { 49 | if(tx.type === 'command') { 50 | return 0; 51 | } 52 | else { 53 | return 1; 54 | } 55 | } 56 | 57 | --------------------------------------------------------------------------------