├── .githooks └── pre-commit ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .golangci.yml ├── CHANGELOG.md ├── Contributing.md ├── LICENSE ├── Makefile ├── README.md ├── benchmark ├── ethereum │ ├── README.md │ ├── invoke │ │ ├── config.toml │ │ ├── contract │ │ │ ├── Store.sol │ │ │ ├── Store_sol_Store.abi │ │ │ └── Store_sol_Store.bin │ │ ├── eth │ │ │ ├── eth.toml │ │ │ └── keystore │ │ │ │ ├── UTC--2021-11-08T06-39-32.219546000Z--74d366e0649a91395bb122c005917644382b9452 │ │ │ │ └── UTC--2021-11-08T06-40-13.429398000Z--3b2b643246666bfa1332257c13d0d1283736838d │ │ └── script.lua │ └── transfer │ │ ├── config.toml │ │ ├── eth │ │ ├── eth.toml │ │ └── keystore │ │ │ ├── UTC--2021-11-08T06-39-32.219546000Z--74d366e0649a91395bb122c005917644382b9452 │ │ │ └── UTC--2021-11-08T06-40-13.429398000Z--3b2b643246666bfa1332257c13d0d1283736838d │ │ └── script.lua ├── fabric │ ├── README.md │ ├── Sacc │ │ ├── config.toml │ │ ├── contract │ │ │ └── sacc.go │ │ ├── fabric │ │ │ ├── README.md │ │ │ ├── config.yaml │ │ │ ├── config │ │ │ │ ├── Org1MSPanchors.tx │ │ │ │ ├── channel.tx │ │ │ │ └── genesis.block │ │ │ ├── configtx.yaml │ │ │ ├── crypto-config.yaml │ │ │ ├── crypto-config │ │ │ │ ├── ordererOrganizations │ │ │ │ │ └── example.com │ │ │ │ │ │ ├── ca │ │ │ │ │ │ ├── a4e34707a1ba5709de59c54d7e876949109aa390316e219b9b08106c311dc254_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 │ │ │ │ │ │ │ │ └── 8ea69f0574a2c1cb2d169e14126b21f5092b16f0591d1d24f3dc70e6a21dee79_sk │ │ │ │ │ │ │ ├── signcerts │ │ │ │ │ │ │ │ └── orderer.example.com-cert.pem │ │ │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ │ │ └── tls │ │ │ │ │ │ │ ├── ca.crt │ │ │ │ │ │ │ ├── server.crt │ │ │ │ │ │ │ └── server.key │ │ │ │ │ │ ├── tlsca │ │ │ │ │ │ ├── 7378827da28ea16d992d5dc4b45a49ca899d3de59b740eb161d16707e450b417_sk │ │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ │ └── users │ │ │ │ │ │ └── Admin@example.com │ │ │ │ │ │ ├── msp │ │ │ │ │ │ ├── admincerts │ │ │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ │ │ ├── cacerts │ │ │ │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ │ │ ├── keystore │ │ │ │ │ │ │ └── 3665aa2ef77591c02c8f691b065219a0b185d6ebc15bd5ad9071943b13c42df6_sk │ │ │ │ │ │ ├── signcerts │ │ │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ │ └── tls │ │ │ │ │ │ ├── ca.crt │ │ │ │ │ │ ├── client.crt │ │ │ │ │ │ └── client.key │ │ │ │ └── peerOrganizations │ │ │ │ │ └── org1.example.com │ │ │ │ │ ├── ca │ │ │ │ │ ├── 54e557793a159ce3760468a372bca4050fbc3bda61c1da92e6cb97207e3599ea_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 │ │ │ │ │ │ │ └── 3047d089c0c408efd909b066b9e16716b10914076fc719be007f9ced5e5f8116_sk │ │ │ │ │ │ ├── signcerts │ │ │ │ │ │ │ └── peer0.org1.example.com-cert.pem │ │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ │ │ └── tls │ │ │ │ │ │ ├── ca.crt │ │ │ │ │ │ ├── server.crt │ │ │ │ │ │ └── server.key │ │ │ │ │ ├── tlsca │ │ │ │ │ ├── b095647f7c34c667d021af5e59a94b3d6534270fdf6c027dfd4c9e3f49aa7932_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 │ │ │ │ │ │ │ └── e1aa5363ce44a8c8b19e8e750ec738ccf94e885b1554b0b4a49ea74eabc750f2_sk │ │ │ │ │ │ ├── signcerts │ │ │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ │ ├── ca.crt │ │ │ │ │ │ ├── client.crt │ │ │ │ │ │ └── client.key │ │ │ │ │ └── User1@org1.example.com │ │ │ │ │ ├── msp │ │ │ │ │ ├── admincerts │ │ │ │ │ │ └── User1@org1.example.com-cert.pem │ │ │ │ │ ├── cacerts │ │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ │ ├── keystore │ │ │ │ │ │ └── 4d136f58d34309a83b89e2fdf55c081e8f79406f73e9c9bf856793a71789bb63_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── User1@org1.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── client.crt │ │ │ │ │ └── client.key │ │ │ ├── deamon.sh │ │ │ ├── docker-compose.yml │ │ │ ├── generate.sh │ │ │ ├── start.sh │ │ │ ├── stop.sh │ │ │ └── teardown.sh │ │ └── script.lua │ └── example │ │ ├── config.toml │ │ ├── contract │ │ └── chaincode_example02.go │ │ ├── fabric │ │ ├── README.md │ │ ├── config.yaml │ │ ├── config │ │ │ ├── Org1MSPanchors.tx │ │ │ ├── channel.tx │ │ │ └── genesis.block │ │ ├── configtx.yaml │ │ ├── crypto-config.yaml │ │ ├── crypto-config │ │ │ ├── ordererOrganizations │ │ │ │ └── example.com │ │ │ │ │ ├── ca │ │ │ │ │ ├── a4e34707a1ba5709de59c54d7e876949109aa390316e219b9b08106c311dc254_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 │ │ │ │ │ │ │ └── 8ea69f0574a2c1cb2d169e14126b21f5092b16f0591d1d24f3dc70e6a21dee79_sk │ │ │ │ │ │ ├── signcerts │ │ │ │ │ │ │ └── orderer.example.com-cert.pem │ │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ │ └── tls │ │ │ │ │ │ ├── ca.crt │ │ │ │ │ │ ├── server.crt │ │ │ │ │ │ └── server.key │ │ │ │ │ ├── tlsca │ │ │ │ │ ├── 7378827da28ea16d992d5dc4b45a49ca899d3de59b740eb161d16707e450b417_sk │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ └── users │ │ │ │ │ └── Admin@example.com │ │ │ │ │ ├── msp │ │ │ │ │ ├── admincerts │ │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ │ ├── cacerts │ │ │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ │ ├── keystore │ │ │ │ │ │ └── 3665aa2ef77591c02c8f691b065219a0b185d6ebc15bd5ad9071943b13c42df6_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── client.crt │ │ │ │ │ └── client.key │ │ │ └── peerOrganizations │ │ │ │ └── org1.example.com │ │ │ │ ├── ca │ │ │ │ ├── 54e557793a159ce3760468a372bca4050fbc3bda61c1da92e6cb97207e3599ea_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 │ │ │ │ │ │ └── 3047d089c0c408efd909b066b9e16716b10914076fc719be007f9ced5e5f8116_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── peer0.org1.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── server.crt │ │ │ │ │ └── server.key │ │ │ │ ├── tlsca │ │ │ │ ├── b095647f7c34c667d021af5e59a94b3d6534270fdf6c027dfd4c9e3f49aa7932_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 │ │ │ │ │ │ └── e1aa5363ce44a8c8b19e8e750ec738ccf94e885b1554b0b4a49ea74eabc750f2_sk │ │ │ │ │ ├── signcerts │ │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ │ └── tlscacerts │ │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── client.crt │ │ │ │ │ └── client.key │ │ │ │ └── User1@org1.example.com │ │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── User1@org1.example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ ├── keystore │ │ │ │ │ └── 4d136f58d34309a83b89e2fdf55c081e8f79406f73e9c9bf856793a71789bb63_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── User1@org1.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── client.crt │ │ │ │ └── client.key │ │ ├── deamon.sh │ │ ├── docker-compose.yml │ │ ├── generate.sh │ │ ├── start.sh │ │ ├── stop.sh │ │ └── teardown.sh │ │ └── script.lua ├── hyperchain │ ├── README.md │ ├── azolla │ │ ├── README.md │ │ ├── config.toml │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── control.sh │ ├── docker-compose.yml │ ├── evmType │ │ ├── config.toml │ │ ├── contract │ │ │ └── evm │ │ │ │ ├── type.solc │ │ │ │ ├── type_solc_Type.abi │ │ │ │ └── type_solc_Type.bin │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── extraID │ │ ├── config.toml │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── hvmContract │ │ ├── config.toml │ │ ├── contract │ │ │ ├── hvm │ │ │ │ ├── hvm.abi │ │ │ │ └── hvmDemo-1.0.jar │ │ │ └── table │ │ │ │ └── hvm │ │ │ │ ├── hvm.abi │ │ │ │ └── table-1.0-table.jar │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── hvmSBank │ │ ├── config.toml │ │ ├── contract │ │ │ └── hvm │ │ │ │ ├── sbank-1.0.0.jar │ │ │ │ └── sbank.abi │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── invokeExample │ │ ├── config.toml │ │ ├── contract │ │ │ ├── README.md │ │ │ └── evm │ │ │ │ ├── source_solc_SetHash.abi │ │ │ │ ├── source_solc_SetHash.bin │ │ │ │ └── source_solc_SetHash.solc │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── local │ │ ├── config.toml │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ ├── remote-evm │ │ ├── config.toml │ │ ├── contract │ │ │ ├── README.md │ │ │ └── evm │ │ │ │ ├── source_solc_SetHash.abi │ │ │ │ ├── source_solc_SetHash.bin │ │ │ │ └── source_solc_SetHash.solc │ │ ├── hyperchain │ │ │ └── hpc.toml │ │ └── script.lua │ └── remote │ │ ├── config.toml │ │ ├── hyperchain │ │ └── hpc.toml │ │ └── script.lua └── xuperchain │ ├── README.md │ ├── evmContract │ ├── config.toml │ ├── contract │ │ └── evm │ │ │ ├── Counter.abi │ │ │ ├── Counter.bin │ │ │ └── solcontract.sol │ ├── script.lua │ └── xuperchain │ │ ├── keystore │ │ └── main │ │ │ ├── address │ │ │ ├── private.key │ │ │ └── public.key │ │ └── xuperchain.toml │ ├── goContract │ ├── config.toml │ ├── contract │ │ └── go │ │ │ ├── counter │ │ │ └── main.go │ ├── script.lua │ └── xuperchain │ │ ├── keystore │ │ └── main │ │ │ ├── address │ │ │ ├── private.key │ │ │ └── public.key │ │ └── xuperchain.toml │ └── transfer │ ├── config.toml │ ├── script.lua │ └── xuperchain │ ├── keystore │ └── main │ │ ├── address │ │ ├── private.key │ │ └── public.key │ └── xuperchain.toml ├── cmd ├── cobra.go ├── cobra_test.go └── flag.go ├── core ├── collector │ ├── collector.go │ ├── tdigest.go │ └── tdigest_test.go ├── controller │ ├── controller.go │ ├── controller_test.go │ ├── master │ │ ├── master.go │ │ └── master_test.go │ └── worker │ │ ├── local.go │ │ ├── remote.go │ │ ├── worker.go │ │ └── worker_test.go ├── engine │ ├── constant.go │ ├── engine.go │ └── engine_test.go ├── network │ ├── client │ │ ├── client.go │ │ └── client_test.go │ ├── net.go │ ├── net_test.go │ └── server │ │ ├── server.go │ │ └── server_test.go ├── recorder │ ├── recorder.go │ └── recorder_test.go ├── utils │ ├── utils.go │ └── utils_test.go └── vmpool │ └── vmpool.go ├── debug.go ├── debug_test.go ├── doc └── Hyperbench manual.md ├── filesystem ├── file.go └── file_test.go ├── go.mod ├── install.sh ├── main.go ├── package-lock.json ├── package.json ├── plugins ├── blockchain │ ├── blockchain.go │ └── blockchain_test.go ├── index │ └── index.go └── toolkit │ ├── fastrand.go │ └── toolkit.go ├── scripts ├── cover.sh ├── fmt.sh ├── gomod.sh ├── stage-1.sh └── stage-2.sh └── vm ├── base ├── base.go └── base_test.go ├── lua ├── glua │ ├── blockchain.go │ ├── blockchain_test.go │ ├── glua_convert.go │ ├── glua_convert_test.go │ ├── index.go │ ├── index_test.go │ ├── lvalue.go │ ├── mock_blockchain.go │ ├── result.go │ ├── result_test.go │ ├── toolKit.go │ └── toolKit_test.go ├── lua.go └── lua_test.go ├── vm.go └── vm_test.go /.githooks/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | # 这里请根据实际项目进行设置 4 | cd $GOPATH/src/github.com/meshplus/hyperbench 5 | 6 | st=0 7 | counter=0 8 | # if ! type golangci-lint > /dev/null; then 9 | # curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh \ 10 | # | sh -s -- -b $(go env GOPATH)/bin v1.15.0 11 | #fi 12 | # echo "go linter" 13 | # ce38d637 special revision 14 | # CGO_LDFLAGS_ALLOW=.* CGO_CFLAGS_ALLOW=.* golangci-lint run --new-from-rev ce38d637 15 | 16 | # [ $? -ne 0 ] && exit 1 17 | 18 | # echo "go formatting" 19 | # find . -path '*/vendor/*' -prune -o -name '*.go' -type f -exec gofmt -s -w {} \; 20 | #[ $? -ne 0 ] && exit 1 21 | 22 | # add formatted files 23 | # git add -u 24 | 25 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: [push,pull_request] 3 | jobs: 4 | lint: 5 | name: Golangci-lint 6 | runs-on: ubuntu-18.04 7 | steps: 8 | - name: Set up Go 1.15 9 | uses: actions/setup-go@v2 10 | with: 11 | go-version: 1.15 12 | id: go 13 | - name: Check out code into the Go module directory 14 | uses: actions/checkout@v2 15 | 16 | - name: Run golangci-lint 17 | uses: Mushus/golangci-linter@v1 18 | 19 | - name: Go report card 20 | uses: creekorful/goreportcard-action@v1.0 21 | # - name: Run Golangci-lint 22 | # uses: golangci/golangci-lint-action@v2 23 | # with: 24 | # version: v1.29 25 | test: 26 | name: Unit Testing 27 | runs-on: ubuntu-18.04 28 | steps: 29 | - name: Set up Go 1.15 30 | uses: actions/setup-go@v2 31 | with: 32 | go-version: 1.15 33 | id: go 34 | # - name: Get failpoint 35 | # run: | 36 | # git clone https://github.com/pingcap/failpoint.git 37 | # ls -al 38 | # pwd 39 | # cd failpoint/failpoint-ctl 40 | # go build 41 | # sudo cp failpoint-ctl $GOPATH/bin 42 | - name: Checkout 43 | uses: actions/checkout@v2 44 | - name: Enable failpoint 45 | run: make test 46 | # - name: Enable failpoint 47 | # run : failpoint-ctl enable 48 | # - name: Go Test 49 | # run: go test -v ./... 50 | # - name: Disable failpoint 51 | # run: failpoint-ctl disable -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | agile 4 | frigate 5 | hyperbench 6 | result.html 7 | detail.js 8 | *.[oa] 9 | benchmark/ethereum/compare/ 10 | benchmark/fabric/compare/ 11 | assets 12 | *.so 13 | *.data 14 | visual 15 | vendor/github.com/mattn/go-sqlite3/ 16 | logs/* 17 | db/* 18 | keystore/* 19 | debug 20 | **/go.sum 21 | **/*.log 22 | **/*.db 23 | **/*.csv 24 | packrd 25 | lua/testImpl.lua 26 | dist 27 | 28 | node_modules 29 | 30 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Go parameters 2 | GOCMD=go 3 | PACKR=packr 4 | GOBUILD=$(GOCMD) build 5 | GOCLEAN=$(GOCMD) clean 6 | GOTEST=$(GOCMD) test 7 | GOGEN=$(GOCMD) generate 8 | GOGET=$(GOCMD) get 9 | GOLIST=$(GOCMD) list 10 | BINARY_NAME=hyperbench 11 | SKIP_DIR=benchmark 12 | 13 | # version info 14 | branch=$(shell git rev-parse --abbrev-ref HEAD) 15 | commitID=$(shell git log --pretty=format:"%h" -1) 16 | date=$(shell date +%Y%m%d) 17 | importpath=github.com/meshplus/hyperbench/cmd 18 | ldflags=-X ${importpath}.branch=${branch} -X ${importpath}.commitID=${commitID} -X ${importpath}.date=${date} 19 | 20 | # path 21 | ASSETS=filesystem/assets 22 | DIRS=benchmark 23 | GET=github.com/gobuffalo/packr/v2/... github.com/gobuffalo/packr/v2/packr2 24 | FAILPOINT=github.com/pingcap/failpoint/failpoint-ctl 25 | 26 | # export gomodule 27 | export GO111MODULE=on 28 | 29 | all: build 30 | 31 | ## build: build the binary with pre-packed static resource 32 | build: dep assets 33 | @export GOPROXY=https://goproxy.cn,direct 34 | @packr2 build -o $(BINARY_NAME) -trimpath -ldflags "${ldflags}" 35 | @-rm -rf $(ASSETS) 36 | 37 | ## pack: build the binary with local static resource 38 | pack: assets 39 | @packr2 build -o $(BINARY_NAME) -ldflags "${ldflags}" 40 | @-rm -rf $(ASSETS) 41 | 42 | ## test: run all test 43 | test: 44 | @go get $(FAILPOINT) 45 | @failpoint-ctl enable 46 | @$(GOTEST) `go list ./... | grep -v $(SKIP_DIR)` 47 | @failpoint-ctl disable 48 | 49 | ## clean: clean all file generated by make 50 | clean: 51 | @packr2 clean 52 | @-rm -rf $(BINARY_NAME) 53 | @-rm -rf $(ASSETS) 54 | 55 | .PHONY: assets 56 | ## assets: prepare asserts 57 | assets: 58 | @-rm -rf $(ASSETS) 59 | @mkdir $(ASSETS) 60 | @cp -r $(DIRS) $(ASSETS) 61 | 62 | .PHONY: dep 63 | ## dep: install the dependencies outside (may need to use proxy to download some packages) 64 | dep: 65 | @go get -u $(GET) 66 | 67 | help: Makefile 68 | @echo " Choose a command run in "$(PROJECTNAME)":" 69 | @sed -n 's/^##//p' $< | column -t -s ':' | sed -e 's/^/ /' 70 | -------------------------------------------------------------------------------- /benchmark/ethereum/README.md: -------------------------------------------------------------------------------- 1 | # Ethereum Test 2 | 3 | If you want to customize your Ethereum test, please read this first. 4 | For example, in `benchmark/ethereum/invoke` test case. 5 | The keystore is in the `invoke/eth/keystore` directory, and the Ethereum network connection configuration is set in `invoke/eth/eth.toml`. 6 | The contract files are placed in the `invoke/contrat` directory. 7 | 8 | ## Account 9 | 10 | At least one account file with a token must be configured in the keystore, because the operation of Ethereum requires payment of tokens. 11 | The account file must be an Ethereum-generated file with filename unchanged. 12 | If you want to test Transfer, please set up at least two accounts. 13 | 14 | ## Network connection 15 | 16 | Please set the way of rpc connection, ip and port of ethereum network in the eth.toml file. 17 | example 18 | ``` 19 | [rpc] 20 | node = "http://localhost" 21 | port = "8545" 22 | ``` 23 | 24 | ## Contract 25 | 26 | If you want to deploy a contract, please place both `*.abi` and `*.bin` files compiled from the source solidity contract like those in the directory of `invoke/contract` (solidity file is optional). 27 | 28 | ## Attention 29 | 30 | Here are some usage details. 31 | 32 | ### NONCE 33 | 34 | Because the nonce value of Ethereum must be continuous and increasing, it should be noted that the FROM account of Transfer test must be the same. If the alternate FROM account is used otherwise, the nonce value of the alternate account will be invalid and the transaction will fail. 35 | 36 | ### AccountName 37 | You need to set the FROM and TO account addresses in the Transfer test. The account address should be set to the address in the name of account file. 38 | For example, if the account filename is `UTC--2021-11-08T06-39-32.219546000Z--74d366e0649a91395bb122c005917644382b9452`, its address is `74d366e0649a91395bb122c005917644382b9452`. -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 3 | duration = "20s" 4 | cap = 4 5 | 6 | [client] 7 | script = "benchmark/ethereum/invoke/script.lua" # 脚本 8 | type = "eth" # 区块链类型 9 | contract = "benchmark/ethereum/invoke/contract" # 合约目录路径 10 | config = "benchmark/ethereum/invoke/eth" # 区块链SDK配置路径 11 | plugin = "./eth.so" # 插件路径 12 | args = ["1.0"] # 合约参数路径 13 | 14 | [client.options] # 客户端选项 15 | 16 | [recorder.log] 17 | dump=false 18 | dir="./logs" 19 | level="debug" 20 | 21 | [recorder.csv] 22 | dir="./csv" 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/contract/Store.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.8.6; 2 | 3 | contract Store { 4 | event ItemSet(string key, string value); 5 | 6 | string public version; 7 | mapping (string => string) public items; 8 | 9 | constructor(string memory _version) public { 10 | version = _version; 11 | } 12 | 13 | function test(string memory key, string memory value) external { 14 | items[key] = value; 15 | emit ItemSet(key, value); 16 | } 17 | } -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/contract/Store_sol_Store.abi: -------------------------------------------------------------------------------- 1 | [{"inputs":[{"internalType":"string","name":"_version","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"string","name":"value","type":"string"}],"name":"ItemSet","type":"event"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"items","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"test","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}] -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/eth/eth.toml: -------------------------------------------------------------------------------- 1 | [rpc] 2 | node = "http://localhost" 3 | port = "8545" -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/eth/keystore/UTC--2021-11-08T06-39-32.219546000Z--74d366e0649a91395bb122c005917644382b9452: -------------------------------------------------------------------------------- 1 | {"address":"74d366e0649a91395bb122c005917644382b9452","crypto":{"cipher":"aes-128-ctr","ciphertext":"fc4e8e2c753a98762828fad76697322da6a0143d6bfe223ce8a590637b433b75","cipherparams":{"iv":"9eab2eb01311d078ac7e3325150eecb2"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"0a8bda7b2e61a563a277601e65f6f30a92ab58e6e18f806105bb7218dff4c883"},"mac":"18f543410e2869a6a843166f1c3fb6aae5a5ec0dc6fdd41d1d76d8e8b19c5983"},"id":"98123f84-3855-4f12-b844-8c0d8ac02c09","version":3} -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/eth/keystore/UTC--2021-11-08T06-40-13.429398000Z--3b2b643246666bfa1332257c13d0d1283736838d: -------------------------------------------------------------------------------- 1 | {"address":"3b2b643246666bfa1332257c13d0d1283736838d","crypto":{"cipher":"aes-128-ctr","ciphertext":"50b10e30295ff3a5b729b3bc62e89145ebf6b5839cd3b8c13dcbbf099584cec6","cipherparams":{"iv":"fe3dd61296891e6654fd1b39ff2401a2"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"1244ce8b522ff776be571c8814a7dfd6c8607aecd1f3b145385a27aa0d1443c7"},"mac":"78ff225aa55470d242b1464b9b42476313024bbfab343a5bbd27e748c67b44d8"},"id":"c066e226-9b72-4d63-a556-70034d0a135b","version":3} -------------------------------------------------------------------------------- /benchmark/ethereum/invoke/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | function case:Run() 3 | local result = self.blockchain:Invoke({ 4 | func = "test", 5 | args = {"foo","bar"}, 6 | }) 7 | self.blockchain:Confirm(result) 8 | return result 9 | end 10 | return case -------------------------------------------------------------------------------- /benchmark/ethereum/transfer/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 3 | duration = "20s" 4 | cap = 3 5 | 6 | [client] 7 | script = "benchmark/ethereum/transfer/script.lua" # 脚本 8 | type = "eth" # 区块链类型 9 | config = "benchmark/ethereum/transfer/eth" # 区块链SDK配置路径 10 | plugin = "./eth.so" # 插件路径 11 | 12 | [client.options] # 客户端选项 13 | 14 | [recorder.log] 15 | dump=false 16 | dir="./logs" 17 | level="debug" 18 | 19 | [recorder.csv] 20 | dir="./csv" 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /benchmark/ethereum/transfer/eth/eth.toml: -------------------------------------------------------------------------------- 1 | [rpc] 2 | node = "ws://localhost" 3 | port = "8546" -------------------------------------------------------------------------------- /benchmark/ethereum/transfer/eth/keystore/UTC--2021-11-08T06-39-32.219546000Z--74d366e0649a91395bb122c005917644382b9452: -------------------------------------------------------------------------------- 1 | {"address":"74d366e0649a91395bb122c005917644382b9452","crypto":{"cipher":"aes-128-ctr","ciphertext":"fc4e8e2c753a98762828fad76697322da6a0143d6bfe223ce8a590637b433b75","cipherparams":{"iv":"9eab2eb01311d078ac7e3325150eecb2"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"0a8bda7b2e61a563a277601e65f6f30a92ab58e6e18f806105bb7218dff4c883"},"mac":"18f543410e2869a6a843166f1c3fb6aae5a5ec0dc6fdd41d1d76d8e8b19c5983"},"id":"98123f84-3855-4f12-b844-8c0d8ac02c09","version":3} -------------------------------------------------------------------------------- /benchmark/ethereum/transfer/eth/keystore/UTC--2021-11-08T06-40-13.429398000Z--3b2b643246666bfa1332257c13d0d1283736838d: -------------------------------------------------------------------------------- 1 | {"address":"3b2b643246666bfa1332257c13d0d1283736838d","crypto":{"cipher":"aes-128-ctr","ciphertext":"50b10e30295ff3a5b729b3bc62e89145ebf6b5839cd3b8c13dcbbf099584cec6","cipherparams":{"iv":"fe3dd61296891e6654fd1b39ff2401a2"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"1244ce8b522ff776be571c8814a7dfd6c8607aecd1f3b145385a27aa0d1443c7"},"mac":"78ff225aa55470d242b1464b9b42476313024bbfab343a5bbd27e748c67b44d8"},"id":"c066e226-9b72-4d63-a556-70034d0a135b","version":3} -------------------------------------------------------------------------------- /benchmark/ethereum/transfer/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | function case:Run() 3 | local ret = case.blockchain:Transfer({ 4 | from = "74d366e0649a91395bb122c005917644382b9452", 5 | to = "3b2b643246666bfa1332257c13d0d1283736838d", 6 | amount = 100, 7 | extra = "11", 8 | }) 9 | self.blockchain:Confirm(ret) 10 | return ret 11 | end 12 | 13 | return case 14 | -------------------------------------------------------------------------------- /benchmark/fabric/README.md: -------------------------------------------------------------------------------- 1 | # Fabric Test 2 | 3 | If you want to customize your Fabric test, please read this first. 4 | For example, in `benchmark/fabric/example` test case. 5 | The Fabric network connection configuration is set in example/fabric. 6 | The chaincode files are placed in the `example/contrat` directory. 7 | 8 | ## Network connection 9 | 10 | The configuration of Fabric network is official, please refer to its official documentation for fabric network configuration or you can refer to these test case. 11 | 12 | ## Contract 13 | 14 | If you want to deploy a contract, please chaincode file in the directory of `example/contract`. In addition, gosdk of Fabric will add `GOPATH/src` to the path of chaincode file autometically, so you should refer to example/config.toml when you set the contract path. 15 | 16 | ## Attention 17 | 18 | ### Instant 19 | 20 | The instant parameter in the client.options must be set. -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 10 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 50 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/fabric/Sacc/script.lua" # 脚本 8 | type = "fabric" # 区块链类型 9 | config = "benchmark/fabric/Sacc/fabric" # 区块链SDK配置路径 10 | contract = "github.com/meshplus/hyperbench/benchmark/fabric/Sacc/contract" # 合约目录路径 11 | args = ["A", "123"] # 合约参数路径 12 | plugin = "./fabric.so" # 插件路径 13 | 14 | [client.options] 15 | channel = "mychannel" # channelId 16 | MSP = true # MSP设置 17 | instant = 20 # 初始账户数量 -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/README.md: -------------------------------------------------------------------------------- 1 | 2 | # README 3 | 4 | This doc is the guideline for you to start up your fabric test network. 5 | Please follow the steps below: 6 | 7 | 1. Copy the whole `fabric` dir to your own dir such as `path/fabric`. 8 | 2. Exec `cd path/fabric && sh start.sh` to start up fabric network. 9 | 3. Register the deamon.sh into crontab to clear the chaincode regularly to invoide there is too mush data. 10 | 1. Edit `crontab -e` 11 | 2. Append `0 3 * * * cd path/fabric && sh deamon.sh > deamon.log`, which will clean fabric's data and then restart fabric network at 3:00 daily. 12 | 4. Edit the url in `fabric/config.yaml` to point to your network. 13 | 14 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/config/Org1MSPanchors.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/fabric/Sacc/fabric/config/Org1MSPanchors.tx -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/config/channel.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/fabric/Sacc/fabric/config/channel.tx -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/config/genesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/fabric/Sacc/fabric/config/genesis.block -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/ca/a4e34707a1ba5709de59c54d7e876949109aa390316e219b9b08106c311dc254_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNjR0u4Ih3YaGD1eD 3 | flBQneE3QbbD2OUjYeyrFzlpesChRANCAAS9+PVvFTfesMropGLVxj9jy/Ywolvz 4 | OZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/8ea69f0574a2c1cb2d169e14126b21f5092b16f0591d1d24f3dc70e6a21dee79_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgifERn+P31LmvIFNE 3 | TW5ozJWo85t26AOPnAJqSE6I5lChRANCAAT/VPO/U3lrI9/dp8qmIy2kDA6n96hR 4 | IY/2uVLkn/wEvYgnJPLoY0bdead2s/tuzkhnHFK1Elu23+EqmlWRZyZP 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICDDCCAbKgAwIBAgIQGk8Y3mm7PjpthrrrnyZE6DAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowWDELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggq 8 | hkjOPQMBBwNCAAT/VPO/U3lrI9/dp8qmIy2kDA6n96hRIY/2uVLkn/wEvYgnJPLo 9 | Y0bdead2s/tuzkhnHFK1Elu23+EqmlWRZyZPo00wSzAOBgNVHQ8BAf8EBAMCB4Aw 10 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCk40cHobpXCd5ZxU1+h2lJEJqjkDFu 11 | IZubCBBsMR3CVDAKBggqhkjOPQQDAgNIADBFAiEA8XH9jbExe1hUh8kqH66Qq0RT 12 | CMDuW6EyhB/NOxs0OcUCIEplZOY7cWxwI9sD86qoZI3xn52Q7OyjcfzqLmYfWxRA 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWTCCAf+gAwIBAgIQTNCMD0lkh4M2WqZNGDI6CjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowWDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIB 8 | BggqhkjOPQMBBwNCAAT4QjaoyG9F28SvjShcLAg6+9gWa4ZDzihaclg0CCRbxCK3 9 | DVclXogipSItmzQBhRWfpnR6MMuxxaInJCcUx+sUo4GWMIGTMA4GA1UdDwEB/wQE 10 | AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw 11 | ADArBgNVHSMEJDAigCBzeIJ9oo6hbZktXcS0WknKiZ095Zt0DrFh0WcH5FC0FzAn 12 | BgNVHREEIDAeghNvcmRlcmVyLmV4YW1wbGUuY29tggdvcmRlcmVyMAoGCCqGSM49 13 | BAMCA0gAMEUCIQCFHe4bJ0buPBoPPXvz8dilSPmDxq8EZLy6E3E/tC5FuwIgRarg 14 | s4kXyIq4FZEnTuNJJu6+ba9FDymIgtsRUcz2lOI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLN4j1kXXnvg/kiyG 3 | at5TDKyYhUPfyzqSpM2E+8/alGahRANCAAT4QjaoyG9F28SvjShcLAg6+9gWa4ZD 4 | zihaclg0CCRbxCK3DVclXogipSItmzQBhRWfpnR6MMuxxaInJCcUx+sU 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/tlsca/7378827da28ea16d992d5dc4b45a49ca899d3de59b740eb161d16707e450b417_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0TSq016Qy2fu4pg6 3 | tU3Z8Zb/90edWvXYVTc5HVPZdtKhRANCAASdC2/5frchMwiSXL2tC+ikA1BcvxWD 4 | 5FLpm0+HFRVNdrDwJDXA70DjeAr6xfvA7RDfHZ2n4s6edRfwh8Pbtb4S 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/3665aa2ef77591c02c8f691b065219a0b185d6ebc15bd5ad9071943b13c42df6_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTr+8fyTfvNMzlJaK 3 | MtwsZ8X04XZooykYSX+ARJjSs2yhRANCAAQpgXp62VCQir34Dj1u3zhlByaSg5tb 4 | OBoH04bHSNWBLsbWU70PzB86VfufLAWzr9Lvz1fGwh7qq+EJZGuVWROA 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLDCCAdKgAwIBAgIQHrnH537ScS4SJUU8Ak4TWDAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI 8 | KoZIzj0DAQcDQgAEuLnXL6JfiqQotTOUA66UEUDVoew9t58cKPvGVuJMCT9p7Mmc 9 | OY5RibgsDP2DoUCU2/GN6ldpRxksWqvgbp1p36NsMGowDgYDVR0PAQH/BAQDAgWg 10 | MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG 11 | A1UdIwQkMCKAIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfkULQXMAoGCCqG 12 | SM49BAMCA0gAMEUCIQCjXxugrEZK+1bf55Nc1ycfZaMZ2HmMyTfgdHIeTaMk0AIg 13 | Poo9Q/Z994PzQMXhyyqNdVpgRdRz3uueUItLbUQHbhQ= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmPQDdyFgf3DvDILG 3 | MKN0M5ojVSwDvPH8FdMsnsxNHZ2hRANCAAS4udcvol+KpCi1M5QDrpQRQNWh7D23 4 | nxwo+8ZW4kwJP2nsyZw5jlGJuCwM/YOhQJTb8Y3qV2lHGSxaq+BunWnf 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/ca/54e557793a159ce3760468a372bca4050fbc3bda61c1da92e6cb97207e3599ea_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbORuD3aarleA+/58 3 | pSgoBZVvTmcKZ3rimqk/mADC+gyhRANCAASPTpsmx+9VE9ciij8UNjoIfpZRA0vF 4 | VvW+xffKSErooxe5sRsQkyRAk6tduqK/7type1oZtw6hvcSn6hhOAYbp 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/3047d089c0c408efd909b066b9e16716b10914076fc719be007f9ced5e5f8116_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0M0ABFJ4JXBs7qwC 3 | a6HnG46uufi7c8GVThObTo5I5DehRANCAAScYo5xt5YFehjuTpWGT/nUrVRZMJ2L 4 | pc/hDtlBA+X1SCWl07zJUJ31eFah2Mtig8hk6xOGa1WLkPDpf2eaY1Oa 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRALfWcZLwVDPwlvR1C96yuPcwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJxijnG3lgV6GO5OlYZP+dStVFkwnYul 9 | z+EO2UED5fVIJaXTvMlQnfV4VqHYy2KDyGTrE4ZrVYuQ8Ol/Z5pjU5qjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIFTlV3k6FZzj 11 | dgRoo3K8pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQDwT0vT 12 | MP8CBF/e0/7TYHhcC6Er8Mt/kIlr5E2/Xbr0ggIgctWJFao8WcyidCH+Hl8yogHm 13 | Vs3vKuSGF9m3k9D8Hyc= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg6gAwIBAgIRAP86yLybkm/yaTevklNi330wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCELGTnVMERfFAdzw2Mz8X978qSk 9 | P4eZf8RMNPUJVHQK2GtJyWiOftgFXhjh3hCaUywy86Bi6znqTqL7ZWW7aISjgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAILCVZH98NMZn0CGvXlmpSz1lNCcP 12 | 32wCff1Mnj9JqnkyMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzEuZXhhbXBsZS5jb22C 13 | BXBlZXIwMAoGCCqGSM49BAMCA0cAMEQCIGd7aUWVLLXRbpE92ePi+v3yUtN+A/K+ 14 | NchaebGDLIohAiAiUNNvuyGLn0J4bmEZ1O848A0kmJKJjXZSWPwzUrC++Q== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2evQVmMgi0FWFQIS 3 | G6an728mIPpvRbF54BR/lLdb8AmhRANCAAQhCxk51TBEXxQHc8NjM/F/e/KkpD+H 4 | mX/ETDT1CVR0CthrSclojn7YBV4Y4d4QmlMsMvOgYus56k6i+2Vlu2iE 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/b095647f7c34c667d021af5e59a94b3d6534270fdf6c027dfd4c9e3f49aa7932_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPhVFNDuTh2UwnrKL 3 | OEzVI7Bjr2E8YpMGcpQ/E9I/dzahRANCAASZH2HL4KXXpz2MiRZ1kSYUHggYzvGH 4 | rxyVKURpIMUyrD8EwSYAxbnR94vjVz8j+cIBanHn/ntgMR6KTXVtdJbb 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e1aa5363ce44a8c8b19e8e750ec738ccf94e885b1554b0b4a49ea74eabc750f2_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWMBrkANJvl8Oo+BY 3 | BfZG+f+zxE3TEal8Nxtz8oD4q3qhRANCAASH5gk9XS2aKZeFNgILMXpPn6/XGolQ 4 | EQxRCyuPjyywhg8ftqH8gvxNn7eOvolzYsSRXZA1AdYjzQFTec7wViYs 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPDCCAeKgAwIBAgIRAMVbpp13BJkMFPRJGgDdG5cwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOB0PwgEWj6tJkUKlh6ydKFurBFZ 9 | jaq5w6Xb097s+jBeoanXSJ7c/owxPfL+dSgCPO61j38t9atTSTZRZ98DWgqjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCwlWR/fDTGZ9Ahr15ZqUs9ZTQnD99s 12 | An39TJ4/Sap5MjAKBggqhkjOPQQDAgNIADBFAiEA20rQvuiwc3dnPhytw0mQD8TZ 13 | rHD/gvBg3q+lmQOzf8oCIEEn48ofRtAt1h+g28NAr396vftE3edSOUuBKRUD0BAw 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgaj+C0pT4JHU8pLMl 3 | +h0+MSUbexDo0qraKdo5JR1gNiKhRANCAATgdD8IBFo+rSZFCpYesnShbqwRWY2q 4 | ucOl29Pe7PowXqGp10ie3P6MMT3y/nUoAjzutY9/LfWrU0k2UWffA1oK 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQUhrDy5wLHuRMv0rTTLkMMzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdR80uVsKuFlzfhtX/tSx+rbx3L+MidXh 9 | 2DGCotEXV6wY8jnNTFcipXyM5oTBXUEGTe+/RqWcpc8vIVmgLkOiPKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDSAAwRQIhAPoHRExP 12 | mWHuushpw90Ep6C3/MSd6LBnRGoy7Q/kOPwcAiBuMpt5vSeBmthE3F3XsTleTqvE 13 | tJBp6tAZVGSUd1h9HA== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/4d136f58d34309a83b89e2fdf55c081e8f79406f73e9c9bf856793a71789bb63_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0VUt9G7vcgYwqPlg 3 | mjiL1aoCk4zESxZ2nQfbZKcA8aGhRANCAAR1HzS5Wwq4WXN+G1f+1LH6tvHcv4yJ 4 | 1eHYMYKi0RdXrBjyOc1MVyKlfIzmhMFdQQZN779GpZylzy8hWaAuQ6I8 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQUhrDy5wLHuRMv0rTTLkMMzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdR80uVsKuFlzfhtX/tSx+rbx3L+MidXh 9 | 2DGCotEXV6wY8jnNTFcipXyM5oTBXUEGTe+/RqWcpc8vIVmgLkOiPKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDSAAwRQIhAPoHRExP 12 | mWHuushpw90Ep6C3/MSd6LBnRGoy7Q/kOPwcAiBuMpt5vSeBmthE3F3XsTleTqvE 13 | tJBp6tAZVGSUd1h9HA== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOzCCAeKgAwIBAgIRAK3i/naJPeIGcHaewJl9jHswCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPhByqmoGJc20Kk4ws3nzlOULCtH 9 | gR492vlAGE1F5/pNPfJeRhaOcfIa1U6xVqIaxo35OhD9rVRvAgTyVNe2u3OjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCwlWR/fDTGZ9Ahr15ZqUs9ZTQnD99s 12 | An39TJ4/Sap5MjAKBggqhkjOPQQDAgNHADBEAiAo11ubTcbvMvTUOtpmB8E1Ou5d 13 | 6jq7buK3o0ptB6cOQAIgBLOJYLYni+AHTCn+Y0Z8ZCTUk3ADmZpCPgT6yzchzoQ= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKL0iPG8NDqtcdVNW 3 | 1BakUXHIiEk/0PSaVHvJXOZYGfWhRANCAAT4QcqpqBiXNtCpOMLN585TlCwrR4Ee 4 | Pdr5QBhNRef6TT3yXkYWjnHyGtVOsVaiGsaN+ToQ/a1UbwIE8lTXtrtz 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/deamon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -e 9 | 10 | echo "Shut down the Docker containers for the system tests." 11 | docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down 12 | 13 | echo "remove the local state" 14 | rm -f ~/.hfc-key-store/* 15 | 16 | echo "remove fabric containers" 17 | num=$(docker ps -a | awk '{if($2~/^((hyperledger)|(dev)).*/)print $1}' | wc -l) 18 | if [ $num -ne 0 ];then 19 | docker rm $(docker ps -a | awk '{if($2~/^((hyperledger)|(dev)).*/)print $1}') 20 | fi 21 | 22 | echo "remove chaincode images" 23 | chaincode_num=$(docker images dev-* -q | wc -l) 24 | if [ $chaincode_num -ne 0 ];then 25 | docker rmi $(docker images dev-* -q) 26 | fi 27 | echo "Your system is now clean." 28 | echo "Restarting..." 29 | 30 | ./start.sh 31 | 32 | echo "Restarted" -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | export PATH=$GOPATH/src/github.com/hyperledger/fabric/build/bin:${PWD}/../bin:${PWD}:$PATH 8 | export FABRIC_CFG_PATH=${PWD} 9 | CHANNEL_NAME=mychannel 10 | 11 | # remove previous crypto material and config transactions 12 | rm -fr config/* 13 | rm -fr crypto-config/* 14 | 15 | # generate crypto material 16 | ./cryptogen generate --config=./crypto-config.yaml 17 | if [ "$?" -ne 0 ]; then 18 | echo "Failed to generate crypto material..." 19 | exit 1 20 | fi 21 | 22 | # generate genesis block for orderer 23 | ./configtxgen -profile OneOrgOrdererGenesis -outputBlock ./config/genesis.block 24 | if [ "$?" -ne 0 ]; then 25 | echo "Failed to generate orderer genesis block..." 26 | exit 1 27 | fi 28 | 29 | # generate channel configuration transaction 30 | ./configtxgen -profile OneOrgChannel -outputCreateChannelTx ./config/channel.tx -channelID $CHANNEL_NAME 31 | if [ "$?" -ne 0 ]; then 32 | echo "Failed to generate channel configuration transaction..." 33 | exit 1 34 | fi 35 | 36 | # generate anchor peer transaction 37 | ./configtxgen -profile OneOrgChannel -outputAnchorPeersUpdate ./config/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP 38 | if [ "$?" -ne 0 ]; then 39 | echo "Failed to generate anchor peer update for Org1MSP..." 40 | exit 1 41 | fi 42 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -ev 9 | 10 | # don't rewrite paths for Windows Git Bash users 11 | export MSYS_NO_PATHCONV=1 12 | 13 | docker-compose -f docker-compose.yml down 14 | 15 | #docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb 16 | docker-compose -f docker-compose.yml up -d 17 | docker ps -a 18 | 19 | # wait for Hyperledger Fabric to start 20 | # incase of errors when running later commands, issue export FABRIC_START_TIMEOUT= 21 | export FABRIC_START_TIMEOUT=10 22 | #echo ${FABRIC_START_TIMEOUT} 23 | sleep ${FABRIC_START_TIMEOUT} 24 | 25 | # Create the channel 26 | docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx 27 | # Join peer0.org1.example.com to the channel. 28 | docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel join -b mychannel.block 29 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -ev 9 | 10 | # Shut down the Docker containers that might be currently running. 11 | docker-compose -f docker-compose.yml stop 12 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/fabric/teardown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -e 9 | 10 | # Shut down the Docker containers for the system tests. 11 | docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down 12 | 13 | # remove the local state 14 | rm -f ~/.hfc-key-store/* 15 | 16 | # remove chaincode docker images 17 | docker rm $(docker ps -aq) 18 | docker rmi $(docker images dev-* -q) 19 | 20 | # Your system is now clean 21 | -------------------------------------------------------------------------------- /benchmark/fabric/Sacc/script.lua: -------------------------------------------------------------------------------- 1 | local index = 0 2 | local case = testcase.new() 3 | function case:Run() 4 | --print("run") 5 | index = index + 1 6 | local result = self.blockchain:Invoke({ 7 | func = "query", 8 | args = { "A" } 9 | }) 10 | --print(result) 11 | return result 12 | end 13 | 14 | return case 15 | 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 1 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 5 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/fabric/example/script.lua" # 脚本 8 | type = "fabric" # 区块链类型 9 | config = "benchmark/fabric/example/fabric" # 区块链SDK配置路径 10 | contract = "github.com/meshplus/hyperbench/benchmark/fabric/example/contract" # 合约目录路径 11 | args = ["init", "A", "123", "B", "234"] # 合约参数路径 12 | plugin = "./fabric.so" # 插件路径 13 | 14 | [client.options] 15 | channel = "mychannel" # channelid 16 | MSP = true # MSP设置 17 | instant = 2 # 初始账户数量 -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/README.md: -------------------------------------------------------------------------------- 1 | 2 | # README 3 | 4 | This doc is the guideline for you to start up your fabric test network. 5 | Please follow the steps below: 6 | 7 | 1. Copy the whole `fabric` dir to your own dir such as `path/fabric`. 8 | 2. Exec `cd path/fabric && sh start.sh` to start up fabric network. 9 | 3. Register the deamon.sh into crontab to clear the chaincode regularly to invoide there is too mush data. 10 | 1. Edit `crontab -e` 11 | 2. Append `0 3 * * * cd path/fabric && sh deamon.sh > deamon.log`, which will clean fabric's data and then restart fabric network at 3:00 daily. 12 | 4. Edit the url in `fabric/config.yaml` to point to your network. 13 | 14 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/config/Org1MSPanchors.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/fabric/example/fabric/config/Org1MSPanchors.tx -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/config/channel.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/fabric/example/fabric/config/channel.tx -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/config/genesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/fabric/example/fabric/config/genesis.block -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/ca/a4e34707a1ba5709de59c54d7e876949109aa390316e219b9b08106c311dc254_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNjR0u4Ih3YaGD1eD 3 | flBQneE3QbbD2OUjYeyrFzlpesChRANCAAS9+PVvFTfesMropGLVxj9jy/Ywolvz 4 | OZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/8ea69f0574a2c1cb2d169e14126b21f5092b16f0591d1d24f3dc70e6a21dee79_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgifERn+P31LmvIFNE 3 | TW5ozJWo85t26AOPnAJqSE6I5lChRANCAAT/VPO/U3lrI9/dp8qmIy2kDA6n96hR 4 | IY/2uVLkn/wEvYgnJPLoY0bdead2s/tuzkhnHFK1Elu23+EqmlWRZyZP 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICDDCCAbKgAwIBAgIQGk8Y3mm7PjpthrrrnyZE6DAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowWDELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggq 8 | hkjOPQMBBwNCAAT/VPO/U3lrI9/dp8qmIy2kDA6n96hRIY/2uVLkn/wEvYgnJPLo 9 | Y0bdead2s/tuzkhnHFK1Elu23+EqmlWRZyZPo00wSzAOBgNVHQ8BAf8EBAMCB4Aw 10 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCk40cHobpXCd5ZxU1+h2lJEJqjkDFu 11 | IZubCBBsMR3CVDAKBggqhkjOPQQDAgNIADBFAiEA8XH9jbExe1hUh8kqH66Qq0RT 12 | CMDuW6EyhB/NOxs0OcUCIEplZOY7cWxwI9sD86qoZI3xn52Q7OyjcfzqLmYfWxRA 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWTCCAf+gAwIBAgIQTNCMD0lkh4M2WqZNGDI6CjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowWDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIB 8 | BggqhkjOPQMBBwNCAAT4QjaoyG9F28SvjShcLAg6+9gWa4ZDzihaclg0CCRbxCK3 9 | DVclXogipSItmzQBhRWfpnR6MMuxxaInJCcUx+sUo4GWMIGTMA4GA1UdDwEB/wQE 10 | AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw 11 | ADArBgNVHSMEJDAigCBzeIJ9oo6hbZktXcS0WknKiZ095Zt0DrFh0WcH5FC0FzAn 12 | BgNVHREEIDAeghNvcmRlcmVyLmV4YW1wbGUuY29tggdvcmRlcmVyMAoGCCqGSM49 13 | BAMCA0gAMEUCIQCFHe4bJ0buPBoPPXvz8dilSPmDxq8EZLy6E3E/tC5FuwIgRarg 14 | s4kXyIq4FZEnTuNJJu6+ba9FDymIgtsRUcz2lOI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLN4j1kXXnvg/kiyG 3 | at5TDKyYhUPfyzqSpM2E+8/alGahRANCAAT4QjaoyG9F28SvjShcLAg6+9gWa4ZD 4 | zihaclg0CCRbxCK3DVclXogipSItmzQBhRWfpnR6MMuxxaInJCcUx+sU 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/tlsca/7378827da28ea16d992d5dc4b45a49ca899d3de59b740eb161d16707e450b417_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0TSq016Qy2fu4pg6 3 | tU3Z8Zb/90edWvXYVTc5HVPZdtKhRANCAASdC2/5frchMwiSXL2tC+ikA1BcvxWD 4 | 5FLpm0+HFRVNdrDwJDXA70DjeAr6xfvA7RDfHZ2n4s6edRfwh8Pbtb4S 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLzCCAdagAwIBAgIRAJuBU2xCexpI9SZywyHI01IwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS9+PVvFTfesMropGLVxj9jy/Yw 9 | olvzOZCQRg789/ICchg1z0AIZVMtiXyzm+aSTdt87SXUjtuD1fnzL7hZINU2o18w 10 | XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD 11 | AQH/MCkGA1UdDgQiBCCk40cHobpXCd5ZxU1+h2lJEJqjkDFuIZubCBBsMR3CVDAK 12 | BggqhkjOPQQDAgNHADBEAiAAw76H/owT1kvox/b3zB3Kd5fUntzeDBkJ8ihgCxB0 13 | sAIgZ9/U+/xcVU7TYrlqmrChYs6P1fGTs3C3+n1AAL6EqN8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/3665aa2ef77591c02c8f691b065219a0b185d6ebc15bd5ad9071943b13c42df6_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTr+8fyTfvNMzlJaK 3 | MtwsZ8X04XZooykYSX+ARJjSs2yhRANCAAQpgXp62VCQir34Dj1u3zhlByaSg5tb 4 | OBoH04bHSNWBLsbWU70PzB86VfufLAWzr9Lvz1fGwh7qq+EJZGuVWROA 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQL9PiRJG+gXh0ahxseV6BLDAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEKYF6etlQkIq9+A49bt84ZQcmkoObWzgaB9OGx0jVgS7G1lO9D8wf 9 | OlX7nywFs6/S789XxsIe6qvhCWRrlVkTgKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgpONHB6G6VwneWcVNfodpSRCao5AxbiGb 11 | mwgQbDEdwlQwCgYIKoZIzj0EAwIDSAAwRQIhALMs0h1fKkfaLNi7wRdjt29boaNv 12 | QgWK7smIuh804o3fAiBL899SYlx7A0MYn4RF8SeVV7yeY412wDdMJ4iXMiTqrA== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICNTCCAdugAwIBAgIQNeQ4yNCMUonme2Zd1g1M4DAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ0Lb/l+tyEzCJJcva0L 9 | 6KQDUFy/FYPkUumbT4cVFU12sPAkNcDvQON4CvrF+8DtEN8dnafizp51F/CHw9u1 10 | vhKjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB 11 | /wQFMAMBAf8wKQYDVR0OBCIEIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfk 12 | ULQXMAoGCCqGSM49BAMCA0gAMEUCIQCfG0CYcCHMXPCaUR2KE98xMT6WNxD7BdY9 13 | tOwV2+0ZfwIgWtmKwpQCsLFg3Ohbdws0Rczv9DHOPHTahNFwK7Dm/Q8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLDCCAdKgAwIBAgIQHrnH537ScS4SJUU8Ak4TWDAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQwOTEzNDEwMFoXDTI5MDQwNjEzNDEwMFowVjELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI 8 | KoZIzj0DAQcDQgAEuLnXL6JfiqQotTOUA66UEUDVoew9t58cKPvGVuJMCT9p7Mmc 9 | OY5RibgsDP2DoUCU2/GN6ldpRxksWqvgbp1p36NsMGowDgYDVR0PAQH/BAQDAgWg 10 | MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG 11 | A1UdIwQkMCKAIHN4gn2ijqFtmS1dxLRaScqJnT3lm3QOsWHRZwfkULQXMAoGCCqG 12 | SM49BAMCA0gAMEUCIQCjXxugrEZK+1bf55Nc1ycfZaMZ2HmMyTfgdHIeTaMk0AIg 13 | Poo9Q/Z994PzQMXhyyqNdVpgRdRz3uueUItLbUQHbhQ= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmPQDdyFgf3DvDILG 3 | MKN0M5ojVSwDvPH8FdMsnsxNHZ2hRANCAAS4udcvol+KpCi1M5QDrpQRQNWh7D23 4 | nxwo+8ZW4kwJP2nsyZw5jlGJuCwM/YOhQJTb8Y3qV2lHGSxaq+BunWnf 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/ca/54e557793a159ce3760468a372bca4050fbc3bda61c1da92e6cb97207e3599ea_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbORuD3aarleA+/58 3 | pSgoBZVvTmcKZ3rimqk/mADC+gyhRANCAASPTpsmx+9VE9ciij8UNjoIfpZRA0vF 4 | VvW+xffKSErooxe5sRsQkyRAk6tduqK/7type1oZtw6hvcSn6hhOAYbp 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/3047d089c0c408efd909b066b9e16716b10914076fc719be007f9ced5e5f8116_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0M0ABFJ4JXBs7qwC 3 | a6HnG46uufi7c8GVThObTo5I5DehRANCAAScYo5xt5YFehjuTpWGT/nUrVRZMJ2L 4 | pc/hDtlBA+X1SCWl07zJUJ31eFah2Mtig8hk6xOGa1WLkPDpf2eaY1Oa 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGjCCAcCgAwIBAgIRALfWcZLwVDPwlvR1C96yuPcwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNvbTBZ 8 | MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJxijnG3lgV6GO5OlYZP+dStVFkwnYul 9 | z+EO2UED5fVIJaXTvMlQnfV4VqHYy2KDyGTrE4ZrVYuQ8Ol/Z5pjU5qjTTBLMA4G 10 | A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIFTlV3k6FZzj 11 | dgRoo3K8pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQDwT0vT 12 | MP8CBF/e0/7TYHhcC6Er8Mt/kIlr5E2/Xbr0ggIgctWJFao8WcyidCH+Hl8yogHm 13 | Vs3vKuSGF9m3k9D8Hyc= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg6gAwIBAgIRAP86yLybkm/yaTevklNi330wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCELGTnVMERfFAdzw2Mz8X978qSk 9 | P4eZf8RMNPUJVHQK2GtJyWiOftgFXhjh3hCaUywy86Bi6znqTqL7ZWW7aISjgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAILCVZH98NMZn0CGvXlmpSz1lNCcP 12 | 32wCff1Mnj9JqnkyMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzEuZXhhbXBsZS5jb22C 13 | BXBlZXIwMAoGCCqGSM49BAMCA0cAMEQCIGd7aUWVLLXRbpE92ePi+v3yUtN+A/K+ 14 | NchaebGDLIohAiAiUNNvuyGLn0J4bmEZ1O848A0kmJKJjXZSWPwzUrC++Q== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2evQVmMgi0FWFQIS 3 | G6an728mIPpvRbF54BR/lLdb8AmhRANCAAQhCxk51TBEXxQHc8NjM/F/e/KkpD+H 4 | mX/ETDT1CVR0CthrSclojn7YBV4Y4d4QmlMsMvOgYus56k6i+2Vlu2iE 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/b095647f7c34c667d021af5e59a94b3d6534270fdf6c027dfd4c9e3f49aa7932_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPhVFNDuTh2UwnrKL 3 | OEzVI7Bjr2E8YpMGcpQ/E9I/dzahRANCAASZH2HL4KXXpz2MiRZ1kSYUHggYzvGH 4 | rxyVKURpIMUyrD8EwSYAxbnR94vjVz8j+cIBanHn/ntgMR6KTXVtdJbb 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e1aa5363ce44a8c8b19e8e750ec738ccf94e885b1554b0b4a49ea74eabc750f2_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWMBrkANJvl8Oo+BY 3 | BfZG+f+zxE3TEal8Nxtz8oD4q3qhRANCAASH5gk9XS2aKZeFNgILMXpPn6/XGolQ 4 | EQxRCyuPjyywhg8ftqH8gvxNn7eOvolzYsSRXZA1AdYjzQFTec7wViYs 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGDCCAb+gAwIBAgIQVjpiDi+5/Rs50zl10PM3pzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh+YJPV0tmimXhTYCCzF6T5+v1xqJUBEM 9 | UQsrj48ssIYPH7ah/IL8TZ+3jr6Jc2LEkV2QNQHWI80BU3nO8FYmLKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDRwAwRAIgcq+Al0y8 12 | 3XHfm2uMOwLXMzBTneZeOCxf0dkRfs9SvsUCICaP9PS6BJtMMxmKRPj+ZRcb66OM 13 | /U9WPkU2ZEf2etIM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPDCCAeKgAwIBAgIRAMVbpp13BJkMFPRJGgDdG5cwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOB0PwgEWj6tJkUKlh6ydKFurBFZ 9 | jaq5w6Xb097s+jBeoanXSJ7c/owxPfL+dSgCPO61j38t9atTSTZRZ98DWgqjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCwlWR/fDTGZ9Ahr15ZqUs9ZTQnD99s 12 | An39TJ4/Sap5MjAKBggqhkjOPQQDAgNIADBFAiEA20rQvuiwc3dnPhytw0mQD8TZ 13 | rHD/gvBg3q+lmQOzf8oCIEEn48ofRtAt1h+g28NAr396vftE3edSOUuBKRUD0BAw 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgaj+C0pT4JHU8pLMl 3 | +h0+MSUbexDo0qraKdo5JR1gNiKhRANCAATgdD8IBFo+rSZFCpYesnShbqwRWY2q 4 | ucOl29Pe7PowXqGp10ie3P6MMT3y/nUoAjzutY9/LfWrU0k2UWffA1oK 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQUhrDy5wLHuRMv0rTTLkMMzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdR80uVsKuFlzfhtX/tSx+rbx3L+MidXh 9 | 2DGCotEXV6wY8jnNTFcipXyM5oTBXUEGTe+/RqWcpc8vIVmgLkOiPKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDSAAwRQIhAPoHRExP 12 | mWHuushpw90Ep6C3/MSd6LBnRGoy7Q/kOPwcAiBuMpt5vSeBmthE3F3XsTleTqvE 13 | tJBp6tAZVGSUd1h9HA== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICRDCCAeqgAwIBAgIRAMHCvJuCQeUPj8OEA5LuMR0wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0MTAw 6 | WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE 8 | AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA 9 | BI9OmybH71UT1yKKPxQ2Ogh+llEDS8VW9b7F98pISuijF7mxGxCTJECTq126or/u 10 | 3Kl7Whm3DqG9xKfqGE4BhumjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG 11 | BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIFTlV3k6FZzjdgRoo3K8 12 | pAUPvDvaYcHakubLlyB+NZnqMAoGCCqGSM49BAMCA0gAMEUCIQCGk5yEeD5RonID 13 | bw+xcVb+D02QHNha2zdAJGWTQJiajwIgY3sxQ8HhcW+h3gpXLlkNH5Q1ZLC25MDx 14 | pSGCZgFxbfI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/4d136f58d34309a83b89e2fdf55c081e8f79406f73e9c9bf856793a71789bb63_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0VUt9G7vcgYwqPlg 3 | mjiL1aoCk4zESxZ2nQfbZKcA8aGhRANCAAR1HzS5Wwq4WXN+G1f+1LH6tvHcv4yJ 4 | 1eHYMYKi0RdXrBjyOc1MVyKlfIzmhMFdQQZN779GpZylzy8hWaAuQ6I8 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICGTCCAb+gAwIBAgIQUhrDy5wLHuRMv0rTTLkMMzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MDkxMzQxMDBaFw0yOTA0MDYxMzQxMDBa 6 | MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw 8 | EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdR80uVsKuFlzfhtX/tSx+rbx3L+MidXh 9 | 2DGCotEXV6wY8jnNTFcipXyM5oTBXUEGTe+/RqWcpc8vIVmgLkOiPKNNMEswDgYD 10 | VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgVOVXeToVnON2 11 | BGijcrykBQ+8O9phwdqS5suXIH41meowCgYIKoZIzj0EAwIDSAAwRQIhAPoHRExP 12 | mWHuushpw90Ep6C3/MSd6LBnRGoy7Q/kOPwcAiBuMpt5vSeBmthE3F3XsTleTqvE 13 | tJBp6tAZVGSUd1h9HA== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSjCCAfCgAwIBAgIRAN8BgMyykov/kQsaJnsdxLowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJkfYcvgpdenPYyJFnWRJhQeCBjO8YevHJUpRGkgxTKsPwTBJgDFudH3 10 | i+NXPyP5wgFqcef+e2AxHopNdW10ltujXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV 11 | HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEILCVZH98NMZn 12 | 0CGvXlmpSz1lNCcP32wCff1Mnj9JqnkyMAoGCCqGSM49BAMCA0gAMEUCIQC4ht1Y 13 | zxCrTAsJvs7DkeDmP4kj2AjMHSdgSM8M5tAk4AIgVgO9eqMtcOaYhRWPhOo1YJY7 14 | CT6+53P7Bigg369k1J8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOzCCAeKgAwIBAgIRAK3i/naJPeIGcHaewJl9jHswCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDA5MTM0MTAwWhcNMjkwNDA2MTM0 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPhByqmoGJc20Kk4ws3nzlOULCtH 9 | gR492vlAGE1F5/pNPfJeRhaOcfIa1U6xVqIaxo35OhD9rVRvAgTyVNe2u3OjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCwlWR/fDTGZ9Ahr15ZqUs9ZTQnD99s 12 | An39TJ4/Sap5MjAKBggqhkjOPQQDAgNHADBEAiAo11ubTcbvMvTUOtpmB8E1Ou5d 13 | 6jq7buK3o0ptB6cOQAIgBLOJYLYni+AHTCn+Y0Z8ZCTUk3ADmZpCPgT6yzchzoQ= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKL0iPG8NDqtcdVNW 3 | 1BakUXHIiEk/0PSaVHvJXOZYGfWhRANCAAT4QcqpqBiXNtCpOMLN585TlCwrR4Ee 4 | Pdr5QBhNRef6TT3yXkYWjnHyGtVOsVaiGsaN+ToQ/a1UbwIE8lTXtrtz 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/deamon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -e 9 | 10 | echo "Shut down the Docker containers for the system tests." 11 | docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down 12 | 13 | echo "remove the local state" 14 | rm -f ~/.hfc-key-store/* 15 | 16 | echo "remove fabric containers" 17 | num=$(docker ps -a | awk '{if($2~/^((hyperledger)|(dev)).*/)print $1}' | wc -l) 18 | if [ $num -ne 0 ];then 19 | docker rm $(docker ps -a | awk '{if($2~/^((hyperledger)|(dev)).*/)print $1}') 20 | fi 21 | 22 | echo "remove chaincode images" 23 | chaincode_num=$(docker images dev-* -q | wc -l) 24 | if [ $chaincode_num -ne 0 ];then 25 | docker rmi $(docker images dev-* -q) 26 | fi 27 | echo "Your system is now clean." 28 | echo "Restarting..." 29 | 30 | ./start.sh 31 | 32 | echo "Restarted" -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | export PATH=$GOPATH/src/github.com/hyperledger/fabric/build/bin:${PWD}/../bin:${PWD}:$PATH 8 | export FABRIC_CFG_PATH=${PWD} 9 | CHANNEL_NAME=mychannel 10 | 11 | # remove previous crypto material and config transactions 12 | rm -fr config/* 13 | rm -fr crypto-config/* 14 | 15 | # generate crypto material 16 | ./cryptogen generate --config=./crypto-config.yaml 17 | if [ "$?" -ne 0 ]; then 18 | echo "Failed to generate crypto material..." 19 | exit 1 20 | fi 21 | 22 | # generate genesis block for orderer 23 | ./configtxgen -profile OneOrgOrdererGenesis -outputBlock ./config/genesis.block 24 | if [ "$?" -ne 0 ]; then 25 | echo "Failed to generate orderer genesis block..." 26 | exit 1 27 | fi 28 | 29 | # generate channel configuration transaction 30 | ./configtxgen -profile OneOrgChannel -outputCreateChannelTx ./config/channel.tx -channelID $CHANNEL_NAME 31 | if [ "$?" -ne 0 ]; then 32 | echo "Failed to generate channel configuration transaction..." 33 | exit 1 34 | fi 35 | 36 | # generate anchor peer transaction 37 | ./configtxgen -profile OneOrgChannel -outputAnchorPeersUpdate ./config/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP 38 | if [ "$?" -ne 0 ]; then 39 | echo "Failed to generate anchor peer update for Org1MSP..." 40 | exit 1 41 | fi 42 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -ev 9 | 10 | # don't rewrite paths for Windows Git Bash users 11 | export MSYS_NO_PATHCONV=1 12 | 13 | docker-compose -f docker-compose.yml down 14 | 15 | #docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb 16 | docker-compose -f docker-compose.yml up -d 17 | docker ps -a 18 | 19 | # wait for Hyperledger Fabric to start 20 | # incase of errors when running later commands, issue export FABRIC_START_TIMEOUT= 21 | export FABRIC_START_TIMEOUT=10 22 | #echo ${FABRIC_START_TIMEOUT} 23 | sleep ${FABRIC_START_TIMEOUT} 24 | 25 | # Create the channel 26 | docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx 27 | # Join peer0.org1.example.com to the channel. 28 | docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel join -b mychannel.block 29 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -ev 9 | 10 | # Shut down the Docker containers that might be currently running. 11 | docker-compose -f docker-compose.yml stop 12 | -------------------------------------------------------------------------------- /benchmark/fabric/example/fabric/teardown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp All Rights Reserved 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Exit on first error, print all commands. 8 | set -e 9 | 10 | # Shut down the Docker containers for the system tests. 11 | docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down 12 | 13 | # remove the local state 14 | rm -f ~/.hfc-key-store/* 15 | 16 | # remove chaincode docker images 17 | docker rm $(docker ps -aq) 18 | docker rmi $(docker images dev-* -q) 19 | 20 | # Your system is now clean 21 | -------------------------------------------------------------------------------- /benchmark/fabric/example/script.lua: -------------------------------------------------------------------------------- 1 | local index = 0 2 | local invoke = { mode = "invoke" } 3 | local query = { mode = "query" } 4 | local case = testcase.new() 5 | function case:Run() 6 | --print("run") 7 | index = index + 1 8 | local option 9 | if self.index.tx % 2 == 0 then 10 | option = invoke 11 | else 12 | option = query 13 | end 14 | self.blockchain:Option(option) 15 | local result = self.blockchain:Invoke({ 16 | func = "query", 17 | args = { "A" }, 18 | }) 19 | --print(result) 20 | return result 21 | end 22 | return case 23 | 24 | -------------------------------------------------------------------------------- /benchmark/hyperchain/README.md: -------------------------------------------------------------------------------- 1 | # Hyperchain Test 2 | 3 | If you want to customize your Hyperchain test, please read this first. 4 | For example, in `benchmark/hyperchain/hvmSBank` test case. 5 | The Hyperchain network connection configuration is set in `hvmSBank/hyperchain/hyperchain.toml`. 6 | The contract files are placed in the `hvmSBank/contrat` directory. 7 | 8 | ## Network connection 9 | 10 | The configuration of Hyperchain network is official, please refer to its official documentation for hyperchain network configuration of go sdk or you can refer to these test case. 11 | 12 | ## Contract 13 | 14 | The system will deploy the contract according to the directory of the contract, and the initialization priority is as follows: 15 | 1. EVM solidity contract 16 | 2. HVM java contract 17 | 3. Unrecognized contract will not be deployed 18 | 19 | ### EVM 20 | If you want to deploy solidity contract, please create a `evm` directory under `path/to/contract` like `evmType/contrat/evm` 21 | The initialization priorities are as follows: 22 | 1. If you want to use the deployed contract, please set the ABI file as `*.abi`, and set the contract address to `*.addr`. 23 | 2. Compiled binary file `*.bin` and ABI file `*.abi` will do. 24 | 3. It can be the `*.solc` source code of the contract but it's not recommended because it may cause failure in compling contract. 25 | 26 | ### HVM 27 | If you want to deploy hvm contract, please create a `hvm` directory under `path/to/contract` like `hvmSBank/contrat/hvm` 28 | The initialization priorities are as follows: 29 | 1. If you want to use the deployed contract, please set the contract address to `*.addr` and set the ABI file of contract to `*.addr`. 30 | 2. If you want to deploy java contract, please set the JAR file compiled by the contract as `*.jar`, and set the ABI file of contract to `*.addr`. -------------------------------------------------------------------------------- /benchmark/hyperchain/azolla/README.md: -------------------------------------------------------------------------------- 1 | # Azolla 2 | 3 | If you are going to test Azolla, please use `self.blockchain:option({nonce=nonce})` to set nonce for Azolla. 4 | If you do not set it or set a negative number, nonce will be random for each transaction. You should remember 5 | to increace the nonce each time you set it. 6 | 7 | example 8 | 9 | ```lua 10 | self.blockchain:Option({nonce=0}) 11 | ``` 12 | 13 | If you want to test invokeContract for Azolla, please use the `self.blockchain:option({account="random0"})` 14 | to set a random account as the default account name which will be used to sign transaction 15 | 16 | example: 17 | ```lua 18 | self.blockchain:Option({account="random0", nonce=0}) 19 | self.blockchain:Invoke("sethash", "123", "123") 20 | ``` 21 | 22 | If you want to test transfer for Azolla, from account must be set to a random one 23 | 24 | example: 25 | ```lua 26 | self.blockchain:Option({nonce=0}) 27 | self.blockchain:Transfer("random0", "1", 0) 28 | ``` 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /benchmark/hyperchain/azolla/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 10 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/azolla/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/azolla/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/azolla/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | sign = "ECDSA" 15 | poll = true -------------------------------------------------------------------------------- /benchmark/hyperchain/azolla/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/azolla/script.lua: -------------------------------------------------------------------------------- 1 | local nonce = 0 2 | local case = testcase.new() 3 | function case:BeforeDeploy() 4 | self.blockchain:option({nonce=0}) 5 | end 6 | 7 | function case:Run() 8 | -- transfer 9 | self.blockchain:option({nonce=nonce}) 10 | local result = self.blockchain:Transfer({ 11 | from="random0", -- random account `random0` 12 | to="0", -- account in keystore 13 | amount=0, 14 | }) 15 | 16 | -- increase nonce 17 | nonce = nonce + 1 18 | -- print(result:result()[1]) -- 0x0 19 | return result 20 | end 21 | 22 | return case 23 | 24 | -------------------------------------------------------------------------------- /benchmark/hyperchain/control.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | Usage="bash control.sh {stop|start|restart}" 6 | 7 | case "$1" in 8 | start) 9 | echo "Start the Docker containers." 10 | docker-compose -f docker-compose.yml up -d 11 | echo "Started" 12 | ;; 13 | stop) 14 | echo "Stop the Docker containers." 15 | docker-compose -f docker-compose.yml stop 16 | echo "Stopped" 17 | ;; 18 | restart) 19 | echo "Shut down the Docker containers for the system tests." 20 | docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down 21 | 22 | docker-compose -f docker-compose.yml up -d 23 | echo "Restarted" 24 | ;; 25 | *) 26 | echo "Usage: $Usage" 27 | ;; 28 | esac 29 | 30 | -------------------------------------------------------------------------------- /benchmark/hyperchain/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | hyperchain: 3 | image: hyperchaincn/solo:v2.0.0 4 | ports: 5 | - "8081:8081" 6 | container_name: hyperchain -------------------------------------------------------------------------------- /benchmark/hyperchain/evmType/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 1 # 速率 3 | duration = "30s" # 持续时间 4 | cap = 1 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/evmType/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/evmType/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/evmType/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | sign = "ECDSA" -------------------------------------------------------------------------------- /benchmark/hyperchain/evmType/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/extraID/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 10 # 速率 3 | duration = "30s" # 持续时间 4 | cap = 5 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/extraID/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/extraID/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/extraID/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | sign = "ECDSA" -------------------------------------------------------------------------------- /benchmark/hyperchain/extraID/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/extraID/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | 3 | function case:Run() 4 | self.blockchain:Option({ extraid = { 123, "abc", "efg" } }) 5 | local result = case.blockchain:Transfer({ 6 | from = "0", -- account0 alias 7 | to = "1", -- account1 alias 8 | amount = 0, 9 | extra = self.toolkit:RandStr(1024), 10 | }) 11 | -- print(result:result()[1]) -- 0x0 12 | return result 13 | end 14 | 15 | return case 16 | 17 | -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmContract/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 10 # 速率 3 | duration = "30s" # 持续时间 4 | cap = 5 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/hvmContract/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/hvmContract/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/hvmContract/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | sign = "ECDSA" -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmContract/contract/hvm/hvmDemo-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/hyperchain/hvmContract/contract/hvm/hvmDemo-1.0.jar -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmContract/contract/table/hvm/table-1.0-table.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/hyperchain/hvmContract/contract/table/hvm/table-1.0-table.jar -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmContract/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmContract/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | function case:Run() 3 | --print("run") 4 | 5 | local aBool = "true" 6 | local aChar = "c" 7 | local aByte = "20" 8 | local aShort = "100" 9 | local anInt = "1000" 10 | local aLong = "10000" 11 | local aFloat = "1.1" 12 | local aDouble = "1.11" 13 | local aString = "string" 14 | local person1 = { "tom", "21" } 15 | local person2 = { "jack", "18" } 16 | local bean1 = { "hvm-beam1", person1 } 17 | local bean2 = { "hvm-bean2", person2 } 18 | local strList = { "strList1", "strList2" } 19 | local personList = { person1, person2 } 20 | local personMap = { { "person1", person1 }, { "person2", person2 } } 21 | local beanMap = { { "bean1", bean1 }, { "bean2", bean2 } } 22 | local result = self.blockchain:Invoke({ 23 | func="cn.hyperchain.contract.invoke.EasyInvoke", 24 | args={ 25 | aBool, 26 | aChar, 27 | aByte, 28 | aShort, 29 | anInt, 30 | aLong, 31 | aFloat, 32 | aDouble, 33 | aString, 34 | person1, 35 | bean1, 36 | strList, 37 | personList, 38 | personMap, 39 | beanMap 40 | }, 41 | }) 42 | --self.blockchain:Confirm(result) 43 | --print(result.Ret[1]) 44 | return result 45 | end 46 | return case -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmSBank/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 1 # 速率 3 | duration = "30s" # 持续时间 4 | cap = 1 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/hvmSBank/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/hvmSBank/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/hvmSBank/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | sign = "ECDSA" -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmSBank/contract/hvm/sbank-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/hyperchain/hvmSBank/contract/hvm/sbank-1.0.0.jar -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmSBank/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/hvmSBank/script.lua: -------------------------------------------------------------------------------- 1 | -- prepare account 2 | local accountStrings = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" } 3 | local idx=1 4 | local case = testcase.new() 5 | function case:BeforeGet() 6 | -- prepare account balance 7 | for key, value in ipairs(accountStrings) do 8 | self.blockchain:Invoke({ 9 | func = "com.hpc.sbank.invoke.IssueInvoke", 10 | args = { value, "1000000000" } 11 | }) 12 | end 13 | end 14 | 15 | function case:Run() 16 | local result = self.blockchain:Invoke({ 17 | func = "com.hpc.sbank.invoke.TransferInvoke", 18 | args = { accountStrings[idx % 10], 19 | accountStrings[(idx + 1) % 10], 20 | "100", 21 | } 22 | }) 23 | --print(result) 24 | return result 25 | end 26 | return case -------------------------------------------------------------------------------- /benchmark/hyperchain/invokeExample/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 1 # 速率 3 | duration = "30s" # 持续时间 4 | cap = 1 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/invokeExample/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/invokeExample/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/invokeExample/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | sign = "SM2" -------------------------------------------------------------------------------- /benchmark/hyperchain/invokeExample/contract/README.md: -------------------------------------------------------------------------------- 1 | # NOTICE 2 | 3 | 系统将根据合约文件夹的内容进行合约的部署,初始化优先级依次如下 4 | 1. EVM solidity合约 5 | 2. JVM java合约 6 | 3. 无法识别 不部署合约 7 | 8 | ## EVM 9 | 如果你希望使用solidity合约,请在`path/to/contract`目录下创建一个`evm`目录 10 | ,按照你所希望的初始化方式,在目录中创建相应文件,初始化优先级依次如下: 11 | 1. 如果要使用已经部署的合约请将ABI文件存放为`*.abi`,并存放合约地址到`*.addr` 12 | 2. 可以是编译好的二进制文件`*.bin`和ABI文件`*.abi` 13 | 3. 可以是合约的`*.solc`源码 14 | 15 | ## JVM 16 | 如果你希望只用java合约,请在`path/to/contract`目录下,创建一个`jvm`目录,按照你所希望的初始化方式, 17 | 在目录中创建相应文件,初始化优先级依次如下: 18 | 1. 如果你已经部署了合约, 你可以将合约的地址存放到目录下的一个扩展名 19 | 为`.addr`的文件中,来使用这个已经部署了的合约 20 | 2. 如果你希望使用java合约,请创建一个包含了所有部署所需要的内容的java合约文件夹, 21 | 并将之命名为`java`存放到目录下 22 | 23 | -------------------------------------------------------------------------------- /benchmark/hyperchain/invokeExample/contract/evm/source_solc_SetHash.abi: -------------------------------------------------------------------------------- 1 | [{"constant":false,"inputs":[{"name":"key","type":"string"}],"name":"getHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"string"},{"name":"value","type":"string"}],"name":"setHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -------------------------------------------------------------------------------- /benchmark/hyperchain/invokeExample/contract/evm/source_solc_SetHash.solc: -------------------------------------------------------------------------------- 1 | contract SetHash{ 2 | mapping(string => string) hashMap; 3 | 4 | 5 | function setHash(string key,string value) returns(string){ 6 | hashMap[key] = value; 7 | return (value); 8 | } 9 | 10 | function getHash(string key) returns(string){ 11 | return (hashMap[key]); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /benchmark/hyperchain/invokeExample/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/invokeExample/script.lua: -------------------------------------------------------------------------------- 1 | local index = 0 2 | local case = testcase.new() 3 | function case:Run() 4 | index = index + 1 5 | local result = self.blockchain:Invoke({ 6 | func = "setHash", 7 | args = { tostring(self.index.tx), tostring(index) }, 8 | }) 9 | self.blockchain:Confirm(result) 10 | print(result.Ret[1]) 11 | return result 12 | end 13 | return case 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /benchmark/hyperchain/local/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 10 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/hyperchain/local/script.lua" # 脚本 8 | type = "flato" # 区块链类型 9 | config = "benchmark/hyperchain/local/hyperchain" # 区块链SDK配置路径 10 | contract = "benchmark/hyperchain/local/contract" # 合约目录路径 11 | plugin = "./hyperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | 15 | [recorder.log] 16 | dump=false # 日志是否输出 17 | dir="./logs" # 日志输出路径 18 | level="notice" # 日志等级 19 | 20 | [recorder.csv] 21 | dir="./csv" # csv文件输出路径 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /benchmark/hyperchain/local/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/local/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | 3 | function case:BeforeRun() 4 | case.blockchain:Option({ 5 | account=case.index.tx 6 | }) 7 | end 8 | 9 | function case:Run() 10 | local ret = case.blockchain:Transfer({ 11 | from = "0", 12 | to = "1", 13 | amount = 0, 14 | extra = tostring(case.index.tx), 15 | }) 16 | return ret 17 | end 18 | 19 | return case -------------------------------------------------------------------------------- /benchmark/hyperchain/remote-evm/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 20 # 客户端虚拟机数量 5 | urls = ["localhost:8080"] # 若不设置或者长度为0则在本地启动worker 6 | 7 | [client] 8 | script = "benchmark/hyperchain/remote-evm/script.lua" # 脚本 9 | type = "flato" # 区块链类型 10 | config = "benchmark/hyperchain/remote-evm/hyperchain" # 区块链SDK配置路径 11 | contract = "benchmark/hyperchain/remote-evm/contract" # 合约目录路径 12 | plugin = "./hyperchain.so" # 插件路径 13 | 14 | [client.options] # 客户端选项 15 | 16 | 17 | -------------------------------------------------------------------------------- /benchmark/hyperchain/remote-evm/contract/README.md: -------------------------------------------------------------------------------- 1 | # NOTICE 2 | 3 | 系统将根据合约文件夹的内容进行合约的部署,初始化优先级依次如下 4 | 1. EVM solidity合约 5 | 2. JVM java合约 6 | 3. 无法识别 不部署合约 7 | 8 | ## EVM 9 | 如果你希望使用solidity合约,请在`path/to/contract`目录下创建一个`evm`目录 10 | ,按照你所希望的初始化方式,在目录中创建相应文件,初始化优先级依次如下: 11 | 1. 如果要使用已经部署的合约请将ABI文件存放为`*.abi`,并存放合约地址到`*.addr` 12 | 2. 可以是编译好的二进制文件`*.bin`和ABI文件`*.abi` 13 | 3. 可以是合约的`*.solc`源码 14 | 15 | ## JVM 16 | 如果你希望只用java合约,请在`path/to/contract`目录下,创建一个`jvm`目录,按照你所希望的初始化方式, 17 | 在目录中创建相应文件,初始化优先级依次如下: 18 | 1. 如果你已经部署了合约, 你可以将合约的地址存放到目录下的一个扩展名 19 | 为`.addr`的文件中,来使用这个已经部署了的合约 20 | 2. 如果你希望使用java合约,请创建一个包含了所有部署所需要的内容的java合约文件夹, 21 | 并将之命名为`java`存放到目录下 22 | 23 | -------------------------------------------------------------------------------- /benchmark/hyperchain/remote-evm/contract/evm/source_solc_SetHash.abi: -------------------------------------------------------------------------------- 1 | [{"constant":false,"inputs":[{"name":"key","type":"string"}],"name":"getHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"string"},{"name":"value","type":"string"}],"name":"setHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -------------------------------------------------------------------------------- /benchmark/hyperchain/remote-evm/contract/evm/source_solc_SetHash.solc: -------------------------------------------------------------------------------- 1 | contract SetHash{ 2 | mapping(string => string) hashMap; 3 | 4 | 5 | function setHash(string key,string value) returns(string){ 6 | hashMap[key] = value; 7 | return (value); 8 | } 9 | 10 | function getHash(string key) returns(string){ 11 | return (hashMap[key]); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /benchmark/hyperchain/remote-evm/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/remote-evm/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | 3 | function case:Run() 4 | local ret = case.blockchain:Invoke({ 5 | func="setHash", 6 | args={tostring(case.index.tx), 7 | tostring(case.index.worker)} 8 | }) 9 | case.blockchain:Confirm(ret) 10 | return ret 11 | end 12 | 13 | return case -------------------------------------------------------------------------------- /benchmark/hyperchain/remote/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 20 # 客户端虚拟机数量 5 | urls = ["localhost:8080"] # 若不设置或者长度为0则在本地启动worker 6 | 7 | [client] 8 | script = "benchmark/hyperchain/remote/script.lua" # 脚本 9 | type = "flato" # 区块链类型 10 | config = "benchmark/hyperchain/remote/hyperchain" # 区块链SDK配置路径 11 | contract = "benchmark/hyperchain/remote/contract" # 合约目录路径 12 | plugin = "./hyperchain.so" # 插件路径 13 | 14 | [client.options] # 客户端选项 15 | 16 | 17 | -------------------------------------------------------------------------------- /benchmark/hyperchain/remote/hyperchain/hpc.toml: -------------------------------------------------------------------------------- 1 | title = "GoSDK configuratoin file" 2 | 3 | namespace = "global" 4 | 5 | #发送重新连接请求间隔(/ms) 6 | reConnectTime = 10000 7 | 8 | [tx] 9 | version = "2.4" 10 | 11 | [jsonRPC] 12 | nodes = ["localhost"] 13 | # JsonRpc connect port 14 | ports = ["8081"] 15 | 16 | [webSocket] 17 | # webSocket connect port 18 | ports = ["10001"] 19 | 20 | [polling] 21 | #重发次数 22 | resendTime = 1 23 | #第一次轮询时间间隔 unit /ms 24 | firstPollingInterval = 200 25 | #发送一次,第一次轮询的次数 26 | firstPollingTimes = 50 27 | #第二次轮询时间间隔 unit /ms 28 | secondPollingInterval = 200 29 | #发送一次,第二次轮询的次数 30 | secondPollingTimes = 50 31 | 32 | #not support yet 33 | # 34 | #[privacy] 35 | # #send Tcert during the request or not 36 | # sendTcert = false 37 | # #if sendTcert is true , you should add follow path. 38 | # #the paths followed are relative to conf root path 39 | # sdkcertPath = "certs/sdkcert.cert" 40 | # sdkcertPrivPath = "certs/sdkcert.priv" 41 | # uniquePubPath = "certs/unique.pub" 42 | # uniquePrivPath = "certs/unique.priv" 43 | 44 | [security] 45 | #Use Https 46 | https = false 47 | #If https is true, you shoule add follow properties 48 | #the paths followed are relative to conf root path 49 | tlsca = "certs/tls/tlsca.ca" 50 | tlspeerCert = "certs/tls/tls_peer.cert" 51 | tlspeerPriv = "certs/tls/tls_peer.priv" 52 | 53 | [log] 54 | #设置日志输出门槛 55 | #"CRITICAL","ERROR","WARNING","NOTICE","INFO","DEBUG", 56 | log_level = "NOTICE" 57 | #存放日志文件夹 58 | log_dir = "../logs" 59 | 60 | -------------------------------------------------------------------------------- /benchmark/hyperchain/remote/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | 3 | function case:Run() 4 | local ret = case.blockchain:Transfer({ 5 | from = "0", 6 | to = "1", 7 | amount = 0, 8 | extra = tostring(case.index.tx), 9 | }) 10 | print(case.index.worker, case.index.tx, ret.status) 11 | return ret 12 | end 13 | 14 | return case -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 10 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/xuperchain/evmContract/script.lua" # 脚本 8 | type = "xuperchain" # 区块链类型 9 | config = "benchmark/xuperchain/evmContract/xuperchain" # 区块链SDK配置路径 10 | contract = "benchmark/xuperchain/evmContract/contract" # 合约目录路径 11 | plugin = "./xuperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | 15 | [recorder.log] 16 | dump=false # 日志是否输出 17 | dir="./logs" # 日志输出路径 18 | level="notice" # 日志等级 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/contract/evm/Counter.abi: -------------------------------------------------------------------------------- 1 | [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"key","type":"string"}],"name":"get","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"}],"name":"increase","outputs":[],"stateMutability":"payable","type":"function"}] -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/contract/evm/solcontract.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.0.0; 2 | contract Counter { 3 | address owner; 4 | mapping (string => uint256) values; 5 | constructor() public{ 6 | owner = msg.sender; 7 | } 8 | function increase(string memory key) public payable{ 9 | values[key] = values[key] + 1; 10 | } 11 | function get(string memory key) view public returns (uint) { 12 | return values[key]; 13 | } 14 | function getOwner() view public returns (address) { 15 | return owner; 16 | } 17 | } -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | function case:Run() 3 | local result = self.blockchain:Invoke({ 4 | func = "increase", 5 | args = {{"key","test"}}, 6 | }) 7 | --self.blockchain:Confirm(result) 8 | return result 9 | end 10 | return case -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/xuperchain/keystore/main/address: -------------------------------------------------------------------------------- 1 | TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/xuperchain/keystore/main/private.key: -------------------------------------------------------------------------------- 1 | {"Curvname":"P-256","X":36505150171354363400464126431978257855318414556425194490762274938603757905292,"Y":79656876957602994269528255245092635964473154458596947290316223079846501380076,"D":111497060296999106528800133634901141644446751975433315540300236500052690483486} -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/xuperchain/keystore/main/public.key: -------------------------------------------------------------------------------- 1 | {"Curvname":"P-256","X":36505150171354363400464126431978257855318414556425194490762274938603757905292,"Y":79656876957602994269528255245092635964473154458596947290316223079846501380076} -------------------------------------------------------------------------------- /benchmark/xuperchain/evmContract/xuperchain/xuperchain.toml: -------------------------------------------------------------------------------- 1 | [rpc] 2 | node = "127.0.0.1" 3 | port = "37101" -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 20 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 10 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/xuperchain/goContract/script.lua" # 脚本 8 | type = "xuperchain" # 区块链类型 9 | config = "benchmark/xuperchain/goContract/xuperchain" # 区块链SDK配置路径 10 | contract = "benchmark/xuperchain/goContract/contract" # 合约目录路径 11 | plugin = "./xuperchain.so" # 插件路径 12 | 13 | [client.options] # 客户端选项 14 | 15 | [recorder.log] 16 | dump=false # 日志是否输出 17 | dir="./logs" # 日志输出路径 18 | level="notice" # 日志等级 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/contract/go/counter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshplus/hyperbench/17003a62529c49ee719cf2dd19aaed55c2b91a8f/benchmark/xuperchain/goContract/contract/go/counter -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/contract/go/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "strconv" 5 | 6 | "github.com/xuperchain/contract-sdk-go/code" 7 | "github.com/xuperchain/contract-sdk-go/driver" 8 | ) 9 | 10 | type counter struct{} 11 | 12 | func (c *counter) Initialize(ctx code.Context) code.Response { 13 | creator, ok := ctx.Args()["creator"] 14 | if !ok { 15 | return code.Errors("missing creator") 16 | } 17 | err := ctx.PutObject([]byte("creator"), creator) 18 | if err != nil { 19 | return code.Error(err) 20 | } 21 | return code.OK(nil) 22 | } 23 | 24 | func (c *counter) Increase(ctx code.Context) code.Response { 25 | key, ok := ctx.Args()["key"] 26 | if !ok { 27 | return code.Errors("missing key") 28 | } 29 | value, err := ctx.GetObject(key) 30 | cnt := 0 31 | if err == nil { 32 | cnt, _ = strconv.Atoi(string(value)) 33 | } 34 | ctx.Logf("get value %s -> %d", key, cnt) 35 | 36 | cntstr := strconv.Itoa(cnt + 1) 37 | 38 | err = ctx.PutObject(key, []byte(cntstr)) 39 | if err != nil { 40 | return code.Error(err) 41 | } 42 | ctx.EmitJSONEvent("increase", map[string]interface{}{ 43 | "key": string(key), 44 | "value": cntstr, 45 | }) 46 | return code.OK([]byte(cntstr)) 47 | } 48 | 49 | func (c *counter) Get(ctx code.Context) code.Response { 50 | key, ok := ctx.Args()["key"] 51 | if !ok { 52 | return code.Errors("missing key") 53 | } 54 | value, err := ctx.GetObject(key) 55 | if err != nil { 56 | return code.Error(err) 57 | } 58 | return code.OK(value) 59 | } 60 | 61 | func main() { 62 | driver.Serve(new(counter)) 63 | } 64 | -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | 3 | function case:Run() 4 | local result = self.blockchain:Invoke({ 5 | func = "Increase", 6 | args = {{"key","test"}}, 7 | }) 8 | --self.blockchain:Confirm(result) 9 | return result 10 | end 11 | return case -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/xuperchain/keystore/main/address: -------------------------------------------------------------------------------- 1 | TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/xuperchain/keystore/main/private.key: -------------------------------------------------------------------------------- 1 | {"Curvname":"P-256","X":36505150171354363400464126431978257855318414556425194490762274938603757905292,"Y":79656876957602994269528255245092635964473154458596947290316223079846501380076,"D":111497060296999106528800133634901141644446751975433315540300236500052690483486} -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/xuperchain/keystore/main/public.key: -------------------------------------------------------------------------------- 1 | {"Curvname":"P-256","X":36505150171354363400464126431978257855318414556425194490762274938603757905292,"Y":79656876957602994269528255245092635964473154458596947290316223079846501380076} -------------------------------------------------------------------------------- /benchmark/xuperchain/goContract/xuperchain/xuperchain.toml: -------------------------------------------------------------------------------- 1 | [rpc] 2 | node = "127.0.0.1" 3 | port = "37101" -------------------------------------------------------------------------------- /benchmark/xuperchain/transfer/config.toml: -------------------------------------------------------------------------------- 1 | [engine] 2 | rate = 100 # 速率 3 | duration = "20s" # 持续时间 4 | cap = 10 # 客户端虚拟机数量 5 | 6 | [client] 7 | script = "benchmark/xuperchain/transfer/script.lua" # 脚本 8 | type = "xuperchain" # 区块链类型 9 | config = "benchmark/xuperchain/transfer/xuperchain" # 区块链SDK配置路径 10 | plugin = "./xuperchain.so" # 插件路径 11 | 12 | [client.options] # 客户端选项 13 | instant=10 # 初始化账户数量 14 | 15 | [recorder.log] 16 | dump=false # 日志是否输出 17 | dir="./logs" # 日志输出路径 18 | level="notice" # 日志等级 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /benchmark/xuperchain/transfer/script.lua: -------------------------------------------------------------------------------- 1 | local case = testcase.new() 2 | local accountNum=10 3 | local idx=math.random( 0,accountNum ) 4 | 5 | function case:Run() 6 | local result = self.blockchain:Transfer({ 7 | From = tostring(idx), 8 | To = tostring(math.random( 0,accountNum )), 9 | Amount = 1, 10 | }) 11 | idx=(idx+1)%accountNum 12 | --self.blockchain:Confirm(result) 13 | return result 14 | end 15 | return case -------------------------------------------------------------------------------- /benchmark/xuperchain/transfer/xuperchain/keystore/main/address: -------------------------------------------------------------------------------- 1 | TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY -------------------------------------------------------------------------------- /benchmark/xuperchain/transfer/xuperchain/keystore/main/private.key: -------------------------------------------------------------------------------- 1 | {"Curvname":"P-256","X":36505150171354363400464126431978257855318414556425194490762274938603757905292,"Y":79656876957602994269528255245092635964473154458596947290316223079846501380076,"D":111497060296999106528800133634901141644446751975433315540300236500052690483486} -------------------------------------------------------------------------------- /benchmark/xuperchain/transfer/xuperchain/keystore/main/public.key: -------------------------------------------------------------------------------- 1 | {"Curvname":"P-256","X":36505150171354363400464126431978257855318414556425194490762274938603757905292,"Y":79656876957602994269528255245092635964473154458596947290316223079846501380076} -------------------------------------------------------------------------------- /benchmark/xuperchain/transfer/xuperchain/xuperchain.toml: -------------------------------------------------------------------------------- 1 | [rpc] 2 | node = "127.0.0.1" 3 | port = "37101" -------------------------------------------------------------------------------- /cmd/flag.go: -------------------------------------------------------------------------------- 1 | package cmd 2 | 3 | import ( 4 | "github.com/spf13/cobra" 5 | ) 6 | 7 | var ( 8 | start = &cobra.Command{ 9 | Use: "start", 10 | Short: "start a benchmark", 11 | Args: cobra.ExactArgs(1), 12 | Example: "hyperbench start benchmark/transfer", 13 | } 14 | 15 | create = &cobra.Command{ 16 | Use: "new [testplan Name]", 17 | Short: "initialize a test plan", 18 | Args: cobra.ExactArgs(1), 19 | Example: "hyperbench new myTest", 20 | } 21 | 22 | rootCmd = &cobra.Command{ 23 | Use: "hyperbench", 24 | Example: "hyperbench --doc ./doc (generate document to specify path)", 25 | } 26 | 27 | version = &cobra.Command{ 28 | Use: "version", 29 | Short: "get code version", 30 | Example: "hyperbench version", 31 | } 32 | 33 | initDir = &cobra.Command{ 34 | Use: "init", 35 | Short: "init a stress test dir", 36 | Example: "hyperbench init", 37 | } 38 | 39 | worker = &cobra.Command{ 40 | Use: "worker", 41 | Short: "start as a worker server ", 42 | Example: "hyperbench worker", 43 | } 44 | 45 | enableDebug = rootCmd.PersistentFlags().Bool("debug", false, "enable debug mode") 46 | document = rootCmd.PersistentFlags().String("doc", "", "use to create doc and specify the doc path") 47 | port = worker.PersistentFlags().IntP("port", "p", 8080, "port of worker") 48 | ) 49 | -------------------------------------------------------------------------------- /core/collector/collector.go: -------------------------------------------------------------------------------- 1 | package collector 2 | 3 | import ( 4 | fcom "github.com/meshplus/hyperbench-common/common" 5 | ) 6 | 7 | // Collector is used to collect result and generate statistic data group by label 8 | // Collector may not be implement concurrently safe, so you should receive data in a goroutine 9 | type Collector interface { 10 | // Type return the types of collector 11 | Type() string 12 | 13 | // Add append result to statistic 14 | Add(*fcom.Result) 15 | 16 | // Serialize generate serialized data to pass through network in remote mode 17 | Serialize() []byte 18 | 19 | // Merge merge serialized data 20 | Merge([]byte) error 21 | 22 | // MergeC try to merge a Collector, if it can not do this, just raise a error 23 | MergeC(Collector) error 24 | 25 | // Get get current statistic data group by label 26 | Get() *fcom.Data 27 | 28 | // Reset reset data should reset the time window and clean data 29 | Reset() 30 | } 31 | -------------------------------------------------------------------------------- /core/controller/controller_test.go: -------------------------------------------------------------------------------- 1 | package controller 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/stretchr/testify/assert" 7 | 8 | "github.com/spf13/viper" 9 | ) 10 | 11 | func TestController(t *testing.T) { 12 | m := make(map[string]interface{}) 13 | m["engine.cap"] = 1 14 | m["engine.rate"] = 1 15 | m["engine.duration"] = 1 16 | viper.MergeConfigMap(m) 17 | ctl, err := NewController() 18 | assert.NoError(t, err) 19 | assert.NotNil(t, ctl) 20 | 21 | err = ctl.Prepare() 22 | assert.NoError(t, err) 23 | 24 | err = ctl.Run() 25 | assert.NoError(t, err) 26 | } 27 | -------------------------------------------------------------------------------- /core/controller/master/master_test.go: -------------------------------------------------------------------------------- 1 | package master 2 | 3 | import ( 4 | "io/ioutil" 5 | "os" 6 | "testing" 7 | 8 | "github.com/spf13/viper" 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestLocalMaster(t *testing.T) { 13 | config := ` 14 | [client] 15 | type = "" 16 | contract = "testData/contract" 17 | ` 18 | 19 | defer os.RemoveAll("./benchmark") 20 | 21 | os.Mkdir("./benchmark", 0755) 22 | 23 | ioutil.WriteFile("./benchmark/config.toml", []byte(config), 0644) 24 | 25 | viper.AddConfigPath("benchmark") 26 | viper.ReadInConfig() 27 | localMaster, err := NewLocalMaster() 28 | assert.NoError(t, err) 29 | bs, err := localMaster.GetContext() 30 | assert.NoError(t, err) 31 | assert.NotNil(t, bs) 32 | err = localMaster.Prepare() 33 | assert.NoError(t, err) 34 | _, err = localMaster.Statistic(1, 1) 35 | assert.NoError(t, err) 36 | _, err = localMaster.LogStatus() 37 | assert.NoError(t, err) 38 | 39 | } 40 | -------------------------------------------------------------------------------- /core/controller/worker/remote.go: -------------------------------------------------------------------------------- 1 | package worker 2 | 3 | import ( 4 | "github.com/meshplus/hyperbench/core/network/client" 5 | ) 6 | 7 | // RemoteWorker is the agent of remote worker. 8 | type RemoteWorker struct { 9 | *client.Client 10 | } 11 | 12 | // NewRemoteWorker create RemoteWorker. 13 | func NewRemoteWorker(index int, url string) (*RemoteWorker, error) { 14 | c := client.NewClient(index, url) 15 | err := c.Init() 16 | if err != nil { 17 | return nil, err 18 | } 19 | return &RemoteWorker{ 20 | Client: c, 21 | }, nil 22 | } 23 | -------------------------------------------------------------------------------- /core/engine/constant.go: -------------------------------------------------------------------------------- 1 | package engine 2 | 3 | func newConstantEngine(base *baseEngine) *ConstantEngine { 4 | return &ConstantEngine{ 5 | baseEngine: base, 6 | } 7 | } 8 | 9 | // ConstantEngine is control rate by constant. 10 | type ConstantEngine struct { 11 | *baseEngine 12 | } 13 | -------------------------------------------------------------------------------- /core/engine/engine_test.go: -------------------------------------------------------------------------------- 1 | package engine 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | "testing" 7 | "time" 8 | 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestEngine(t *testing.T) { 13 | defer func() { 14 | if err := recover(); err != nil { 15 | return 16 | } 17 | }() 18 | 19 | engine1 := NewEngine(BaseEngineConfig{ 20 | Rate: 1, 21 | Duration: time.Millisecond * 500, 22 | }) 23 | assert.NotNil(t, engine1) 24 | 25 | engine2 := NewEngine(BaseEngineConfig{ 26 | Rate: 101, 27 | Duration: time.Second * 1, 28 | }) 29 | assert.NotNil(t, engine2) 30 | 31 | engine1.Run(func() {}) 32 | 33 | engine1.Close() 34 | 35 | engine2.Run(func() {}) 36 | } 37 | 38 | func TestContext(t *testing.T) { 39 | ctx, cancel := context.WithCancel(context.Background()) 40 | go test1(ctx) 41 | go test2(ctx) 42 | cancel() 43 | fmt.Println("main1") 44 | cancel() 45 | fmt.Println("main2") 46 | time.Sleep(time.Second) 47 | fmt.Println("main3") 48 | } 49 | 50 | func test1(ctx context.Context) { 51 | for { 52 | select { 53 | case <-ctx.Done(): 54 | fmt.Println("test1") 55 | return 56 | } 57 | } 58 | } 59 | 60 | func test2(ctx context.Context) { 61 | for { 62 | select { 63 | case <-ctx.Done(): 64 | fmt.Println("test2") 65 | return 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /core/network/client/client_test.go: -------------------------------------------------------------------------------- 1 | package client_test 2 | 3 | import ( 4 | "testing" 5 | "time" 6 | 7 | "github.com/meshplus/hyperbench/core/network/client" 8 | "github.com/meshplus/hyperbench/core/network/server" 9 | "github.com/spf13/viper" 10 | "github.com/stretchr/testify/assert" 11 | ) 12 | 13 | func TestClient(t *testing.T) { 14 | svr := server.NewServer(8085) 15 | assert.NotNil(t, svr) 16 | 17 | go svr.Start() 18 | 19 | cli := client.NewClient(0, "localhost:8085") 20 | assert.NotNil(t, cli) 21 | 22 | err := cli.Init() 23 | assert.Error(t, err) 24 | 25 | m := make(map[string]interface{}) 26 | m["engine.urls"] = `"localhost:8085"` 27 | m["engine.rate"] = 1 28 | m["engine.duration"] = 5 29 | m["engine.cap"] = 1 30 | m["client.plugin"] = "hyperchain.so" 31 | viper.MergeConfigMap(m) 32 | 33 | err = cli.TestsetNonce() 34 | assert.NoError(t, err) 35 | 36 | err = cli.Testinit() 37 | assert.NoError(t, err) 38 | 39 | err = cli.SetContext(nil) 40 | assert.NoError(t, err) 41 | 42 | err = cli.BeforeRun() 43 | assert.NoError(t, err) 44 | 45 | go cli.Do() 46 | 47 | go cli.CheckoutCollector() 48 | 49 | time.Sleep(time.Second * 2) 50 | 51 | err = cli.AfterRun() 52 | assert.NoError(t, err) 53 | 54 | sent, missed := cli.Statistics() 55 | assert.NotNil(t, sent) 56 | assert.NotNil(t, missed) 57 | 58 | cli.Teardown() 59 | 60 | time.Sleep(time.Second * 2) 61 | } 62 | -------------------------------------------------------------------------------- /core/network/net.go: -------------------------------------------------------------------------------- 1 | // Package network is used to distribute controlling 2 | package network 3 | 4 | import ( 5 | "encoding/hex" 6 | ) 7 | 8 | const ( 9 | // SetNoncePath set nonce path. 10 | SetNoncePath = "/set-nonce" 11 | // UploadPath upload path. 12 | UploadPath = "/upload" 13 | // InitPath init path. 14 | InitPath = "/init" 15 | // SetContextPath set context path. 16 | SetContextPath = "/set-context" 17 | // BeforeRunPath before run path. 18 | BeforeRunPath = "/before-run" 19 | // DoPath do path. 20 | DoPath = "/do" 21 | // StatisticsPath Statistics path. 22 | StatisticsPath = "/statistics" 23 | // AfterRunPath after run path. 24 | AfterRunPath = "/after-run" 25 | // TeardownPath teardown path. 26 | TeardownPath = "/teardown" 27 | // CheckoutCollectorPath checkout collector path. 28 | CheckoutCollectorPath = "/checkout-collector" 29 | ) 30 | 31 | // Bytes2Hex convert bytes to hex. 32 | func Bytes2Hex(d []byte) string { 33 | return hex.EncodeToString(d) 34 | } 35 | 36 | // Hex2Bytes convert hex to bytes. 37 | func Hex2Bytes(h string) []byte { 38 | b, _ := hex.DecodeString(h) 39 | return b 40 | } 41 | -------------------------------------------------------------------------------- /core/network/net_test.go: -------------------------------------------------------------------------------- 1 | package network 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/stretchr/testify/assert" 7 | ) 8 | 9 | func TestNet(t *testing.T) { 10 | s := Bytes2Hex(nil) 11 | assert.Equal(t, s, "") 12 | bs := Hex2Bytes("nil") 13 | assert.NotNil(t, bs) 14 | } 15 | -------------------------------------------------------------------------------- /core/utils/utils.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | fcom "github.com/meshplus/hyperbench-common/common" 5 | 6 | "strconv" 7 | ) 8 | 9 | // AggData2CSV append data's fields to base, 10 | func AggData2CSV(base []string, t fcom.DataType, data fcom.AggData) []string { 11 | if base == nil { 12 | base = make([]string, 0, 30) 13 | } 14 | base = append(base, 15 | string(t), 16 | data.Label, 17 | i2s(data.Time), 18 | i2s(data.Duration), 19 | i2s(data.Num), 20 | i2s(data.Statuses[fcom.Failure]), 21 | i2s(data.Statuses[fcom.Success]), 22 | i2s(data.Statuses[fcom.Confirm]), 23 | i2s(data.Statuses[fcom.Unknown])) 24 | base = Latency2CSV(base, data.Send) 25 | base = Latency2CSV(base, data.Confirm) 26 | base = Latency2CSV(base, data.Write) 27 | return base 28 | } 29 | 30 | // Latency2CSV append latency's fields to base 31 | func Latency2CSV(base []string, latency fcom.Latency) []string { 32 | if base == nil { 33 | base = make([]string, 0, 7) 34 | } 35 | base = append(base, 36 | i2s(latency.Avg), 37 | i2s(latency.P0), 38 | i2s(latency.P50), 39 | i2s(latency.P90), 40 | i2s(latency.P95), 41 | i2s(latency.P99), 42 | i2s(latency.P100)) 43 | return base 44 | } 45 | 46 | func i2s(i interface{}) (s string) { 47 | switch v := i.(type) { 48 | case int64: 49 | return strconv.Itoa(int(v)) 50 | case int32: 51 | return strconv.Itoa(int(v)) 52 | case int: 53 | return strconv.Itoa(v) 54 | } 55 | return "" 56 | } 57 | -------------------------------------------------------------------------------- /debug.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "runtime/pprof" 7 | "time" 8 | ) 9 | 10 | // Debug related config keys 11 | const ( 12 | PprofRecordDuration = "5s" 13 | PprofTimeFmt = "2006-01-02-15-04-05" 14 | ) 15 | 16 | func debug() { 17 | 18 | duration, err := time.ParseDuration(PprofRecordDuration) 19 | if err != nil { 20 | return 21 | } 22 | 23 | go recordPProf(duration) 24 | } 25 | 26 | func recordPProf(duration time.Duration) { 27 | var ( 28 | cpuFilePath string 29 | memFilePath string 30 | cpuFile *os.File 31 | memFile *os.File 32 | ) 33 | 34 | dir := "./debug" 35 | err := ensurePathExists(dir) 36 | if err != nil { 37 | return 38 | } 39 | 40 | // reset inline function 41 | reset := func() { 42 | // use the expected file closed time as the file name's suffix 43 | timeSuffix := time.Now().Add(duration).Format(PprofTimeFmt) 44 | 45 | cpuFilePath = fmt.Sprint(dir, "/cpu_", timeSuffix) 46 | memFilePath = fmt.Sprint(dir, "/mem_", timeSuffix) 47 | 48 | cpuFile, _ = os.Create(cpuFilePath) 49 | memFile, _ = os.Create(memFilePath) 50 | 51 | // start pprof 52 | err := pprof.StartCPUProfile(cpuFile) 53 | if err != nil { 54 | return 55 | } 56 | } 57 | 58 | tick := time.NewTicker(duration) 59 | 60 | reset() 61 | 62 | //nolint 63 | for { 64 | select { 65 | case <-tick.C: 66 | 67 | pprof.StopCPUProfile() 68 | err := cpuFile.Close() 69 | if err != nil { 70 | continue 71 | } 72 | err = pprof.WriteHeapProfile(memFile) 73 | if err != nil { 74 | continue 75 | } 76 | err = memFile.Close() 77 | if err != nil { 78 | continue 79 | } 80 | 81 | reset() 82 | } 83 | } 84 | 85 | } 86 | 87 | func ensurePathExists(path string) error { 88 | 89 | _, err := os.Stat(path) 90 | // already exist 91 | if err == nil { 92 | return nil 93 | } 94 | 95 | // not exist 96 | if os.IsNotExist(err) { 97 | // make full path 98 | err = os.MkdirAll(path, os.ModePerm) 99 | if err != nil { 100 | return err 101 | } 102 | return nil 103 | } 104 | 105 | return err 106 | } 107 | -------------------------------------------------------------------------------- /debug_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestDebug(t *testing.T) { 8 | debug() 9 | } 10 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/meshplus/hyperbench 2 | 3 | require ( 4 | github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect 5 | github.com/Shopify/sarama v1.26.1 // indirect 6 | github.com/fsouza/go-dockerclient v1.4.4 // indirect 7 | github.com/gin-gonic/gin v1.7.7 8 | github.com/gobuffalo/packr/v2 v2.8.3 9 | github.com/golang/snappy v0.0.4 // indirect 10 | github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 // indirect 11 | github.com/hashicorp/go-version v1.2.0 // indirect 12 | github.com/hyperledger/fabric v1.4.3 13 | github.com/hyperledger/fabric-amcl v0.0.0-20190902191507-f66264322317 // indirect 14 | github.com/influxdata/tdigest v0.0.1 15 | github.com/json-iterator/go v1.1.12 16 | github.com/meshplus/hyperbench-common v0.0.0-20220128060413-2f16193421b0 17 | github.com/mholt/archiver/v3 v3.5.0 18 | github.com/miekg/pkcs11 v1.0.3 // indirect 19 | github.com/mitchellh/mapstructure v1.4.3 20 | github.com/onsi/ginkgo v1.14.0 // indirect 21 | github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 22 | github.com/pingcap/failpoint v0.0.0-20191029060244-12f4ac2fd11d 23 | github.com/pkg/errors v0.9.1 24 | github.com/rogpeppe/go-internal v1.8.1 // indirect 25 | github.com/spf13/cast v1.4.1 26 | github.com/spf13/cobra v1.3.0 27 | github.com/spf13/viper v1.10.1 28 | github.com/stretchr/testify v1.7.0 29 | github.com/sykesm/zap-logfmt v0.0.2 // indirect 30 | github.com/xuperchain/contract-sdk-go v1.0.0 31 | github.com/yuin/gopher-lua v0.0.0-20190206043414-8bfc7677f583 32 | golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f // indirect 33 | golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect 34 | golang.org/x/tools v0.1.9 // indirect 35 | gonum.org/v1/gonum v0.6.0 // indirect 36 | ) 37 | 38 | go 1.13 39 | 40 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | 4 | URL="http://172.16.0.101/frigate" 5 | 6 | # name will be generate like 'frigate_v${VERSION}_${OS}${EXT}' 7 | VERSION="1.0.2" 8 | EXT=".tar.gz" 9 | OS="" 10 | 11 | function install() { 12 | name="frigate_v${VERSION}_${OS}" 13 | path="${URL}/${name}${EXT}" 14 | 15 | rm ${name}${EXT} 16 | rm ${name} 17 | 18 | echo "download ${path} ..." 19 | curl -O ${path} 20 | 21 | tar xvf ${name}${EXT} 22 | rm ${name}${EXT} 23 | 24 | echo "move frigate to /usr/local/bin" 25 | mv ${name} /usr/local/bin/frigate 26 | 27 | if [$? != 0]; then 28 | mv ${name} frigate 29 | echo -e "\033[31m Please add frigate to path by yourself" 30 | else 31 | echo -e "\033[32mInstall successfully, Please use the command below to initial your test directory: \033[0m " 32 | echo -e "\033[32m\t mkdir test && cd test\033[0m" 33 | echo -e "\033[32m\t frigate init \033[0m" 34 | fi 35 | } 36 | 37 | function getLinuxReleaseType(){ 38 | release=$(cat /etc/*release*) 39 | case ${release} in 40 | *"CentOS Linux release 7"*) 41 | echo "CentOS7" 42 | OS="centos7" 43 | ;; 44 | *) 45 | echo "unsupported Linux release: ${release}" 46 | exit 1 47 | ;; 48 | esac 49 | } 50 | 51 | function getOSType(){ 52 | case "$(uname)" in 53 | "Darwin") 54 | echo "Darwin" 55 | OS="darwin" 56 | ;; 57 | "Linux") 58 | echo "Linux" 59 | getLinuxReleaseType 60 | ;; 61 | *) 62 | echo "Unsupported now" 63 | ;; 64 | esac 65 | } 66 | 67 | getOSType 68 | install 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/meshplus/hyperbench/cmd" 6 | ) 7 | 8 | func main() { 9 | 10 | err := cmd.InitCmd(debug) 11 | if err != nil { 12 | fmt.Println("cmd init fail: ", err) 13 | return 14 | } 15 | 16 | err = cmd.GetRootCmd().Execute() 17 | if err != nil { 18 | fmt.Println("cmd execute fail: ", err) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frigate", 3 | "version": "1.0.2", 4 | "description": "frigate is the performance test tool for hyperchain", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "release": "standard-version" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git.hyperchain.cn/hyperchain/hyperchain" 13 | }, 14 | "keywords": [ 15 | "blockchain", 16 | "hyperchain" 17 | ], 18 | "author": "Hyperchain Authors", 19 | "license": "Apache-2.0", 20 | "devDependencies": { 21 | "cz-conventional-changelog": "^2.1.0", 22 | "ghooks": "^2.0.2", 23 | "standard-version": "^4.3.0", 24 | "validate-commit-msg-smart": "^1.1.2" 25 | }, 26 | "config": { 27 | "commitizen": { 28 | "path": "./node_modules/cz-conventional-changelog" 29 | }, 30 | "ghooks": { 31 | "commit-msg": "validate-commit-msg", 32 | "pre-commit": "./.githooks/pre-commit" 33 | }, 34 | "validate-commit-msg": { 35 | "types": [ 36 | "feat", 37 | "fix", 38 | "revert", 39 | "chore", 40 | "docs", 41 | "style", 42 | "refactor", 43 | "perf", 44 | "test", 45 | "build", 46 | "ci" 47 | ], 48 | "warnOnFail": false, 49 | "maxSubjectLength": 100, 50 | "subjectPattern": ".+", 51 | "subjectPatternErrorMsg": "subject does not match subject pattern, you should use one of [feat| fix| revert|chore| docs| style| refactor| perf| test| build| ci]", 52 | "helpMessage": "" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /plugins/blockchain/blockchain.go: -------------------------------------------------------------------------------- 1 | package blockchain 2 | 3 | import ( 4 | "errors" 5 | "fmt" 6 | "plugin" 7 | "reflect" 8 | 9 | "github.com/meshplus/hyperbench-common/base" 10 | fcom "github.com/meshplus/hyperbench-common/common" 11 | "github.com/op/go-logging" 12 | "github.com/spf13/viper" 13 | ) 14 | 15 | var plugins *plugin.Plugin 16 | var log *logging.Logger 17 | 18 | // InitPlugin initiate plugin file before init master and worker 19 | func InitPlugin() { 20 | log = fcom.GetLogger("blockchain") 21 | filePath := viper.GetString(fcom.ClientPluginPath) 22 | 23 | p, err := plugin.Open(filePath) 24 | if err != nil { 25 | log.Errorf("plugin failed: %v", err) 26 | } 27 | plugins = p 28 | } 29 | 30 | // NewBlockchain create blockchain with different client type. 31 | func NewBlockchain(clientConfig base.ClientConfig) (client fcom.Blockchain, err error) { 32 | clientBase := base.NewBlockchainBase(clientConfig) 33 | newFunc, err := plugins.Lookup("New") 34 | if err != nil { 35 | log.Errorf("plugin failed: %v", err) 36 | } 37 | New, _ := newFunc.(func(blockchainBase *base.BlockchainBase) (client interface{}, err error)) 38 | Client, err := New(clientBase) 39 | if err != nil { 40 | return nil, err 41 | } 42 | client, ok := Client.(fcom.Blockchain) 43 | if !ok { 44 | return nil, errors.New(fmt.Sprint(reflect.TypeOf(client)) + " is not blockchain.Blockchain") 45 | } 46 | return 47 | } -------------------------------------------------------------------------------- /plugins/blockchain/blockchain_test.go: -------------------------------------------------------------------------------- 1 | package blockchain 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/meshplus/hyperbench-common/base" 7 | fcom "github.com/meshplus/hyperbench-common/common" 8 | "github.com/spf13/viper" 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestInitPlugin(t *testing.T) { 13 | t.Skip() 14 | InitPlugin() 15 | 16 | viper.Set(fcom.ClientTypePath, "hyperchain") 17 | InitPlugin() 18 | 19 | viper.Set(fcom.ClientTypePath, "fabric") 20 | InitPlugin() 21 | 22 | viper.Set(fcom.ClientTypePath, "eth") 23 | InitPlugin() 24 | 25 | viper.Set(fcom.ClientTypePath, "xuperchain") 26 | InitPlugin() 27 | 28 | } 29 | func TestNewBlockchain(t *testing.T) { 30 | t.Skip() 31 | bk, err := NewBlockchain(base.ClientConfig{}) 32 | assert.NotNil(t, bk) 33 | assert.NoError(t, err) 34 | 35 | bk, err = NewBlockchain(base.ClientConfig{ 36 | ClientType: "eth", 37 | }) 38 | assert.Nil(t, bk) 39 | assert.Error(t, err) 40 | 41 | defer func() { 42 | if err := recover(); err != nil { 43 | return 44 | } 45 | }() 46 | bk, err = NewBlockchain(base.ClientConfig{ 47 | ClientType: "fabric", 48 | }) 49 | assert.Nil(t, bk) 50 | assert.Error(t, err) 51 | 52 | bk, err = NewBlockchain(base.ClientConfig{ 53 | ClientType: "xuperchain", 54 | }) 55 | assert.Nil(t, bk) 56 | assert.Error(t, err) 57 | } 58 | 59 | func TestNewHyperchain(t *testing.T) { 60 | defer func() { 61 | if err := recover(); err != nil { 62 | return 63 | } 64 | }() 65 | bk, err := NewBlockchain(base.ClientConfig{ 66 | ClientType: "flato", 67 | }) 68 | assert.Nil(t, bk) 69 | assert.Error(t, err) 70 | } -------------------------------------------------------------------------------- /plugins/index/index.go: -------------------------------------------------------------------------------- 1 | package index 2 | 3 | // Index is the Unique Identification of calling `vm.Run` 4 | type Index struct { 5 | Worker int64 `mapstructure:"worker"` 6 | VM int64 `mapstructure:"vm"` 7 | Engine int64 `mapstructure:"engine"` 8 | Tx int64 `mapstructure:"tx"` 9 | } 10 | -------------------------------------------------------------------------------- /plugins/toolkit/fastrand.go: -------------------------------------------------------------------------------- 1 | package toolkit 2 | 3 | import ( 4 | "math/rand" 5 | "runtime" 6 | "sync" 7 | "time" 8 | ) 9 | 10 | var ( 11 | randCh = make(chan *rand.Rand, runtime.NumCPU()) 12 | randChOnce sync.Once 13 | ) 14 | 15 | const ( 16 | chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 17 | charsLen = len(chars) 18 | ) 19 | 20 | func initRandCh() { 21 | for i := 0; i < runtime.NumCPU(); i++ { 22 | randCh <- rand.New(rand.NewSource(time.Now().UnixNano())) 23 | } 24 | } 25 | 26 | func randomString(l uint) string { 27 | randChOnce.Do(initRandCh) 28 | 29 | r := <-randCh 30 | s := make([]byte, l) 31 | for i := 0; i < int(l); i++ { 32 | s[i] = chars[r.Intn(charsLen)] 33 | } 34 | randCh <- r 35 | return string(s) 36 | } 37 | 38 | func randomInt(min, max int) int { 39 | randChOnce.Do(initRandCh) 40 | r := <-randCh 41 | i := r.Intn(max-min) + min 42 | randCh <- r 43 | return i 44 | } 45 | -------------------------------------------------------------------------------- /plugins/toolkit/toolkit.go: -------------------------------------------------------------------------------- 1 | package toolkit 2 | 3 | import ( 4 | "encoding/hex" 5 | "fmt" 6 | "reflect" 7 | ) 8 | 9 | // ToolKit is the set of tool plugins. 10 | // exported methods and fields can be inject into vm. 11 | type ToolKit struct { 12 | } 13 | 14 | // NewToolKit create a new ToolKit instant as a plugin to vm 15 | func NewToolKit() *ToolKit { 16 | return &ToolKit{} 17 | } 18 | 19 | // RandStr generate a random string with specific length 20 | func (t *ToolKit) RandStr(l uint) string { 21 | return randomString(l) 22 | } 23 | 24 | // RandInt generate a random int in specific range 25 | func (t *ToolKit) RandInt(min, max int) int { 26 | return randomInt(min, max) 27 | } 28 | 29 | // String convert to string 30 | func (t *ToolKit) String(input interface{}, offsets ...int) string { 31 | 32 | v := reflect.ValueOf(input) 33 | switch v.Kind() { 34 | case reflect.Ptr: 35 | return t.String(v.Elem().Interface(), offsets...) 36 | case reflect.Slice: 37 | bs, ok := input.([]byte) 38 | if !ok { 39 | return "" 40 | } 41 | l := len(bs) 42 | start, end := 0, l 43 | if len(offsets) > 0 && offsets[0] <= l { 44 | start = offsets[0] 45 | } 46 | if len(offsets) > 1 && offsets[1] <= l+1 { 47 | start = offsets[1] 48 | } 49 | fmt.Println(bs, start, end) 50 | return string(bs[start:end]) 51 | case reflect.Array: 52 | l := v.Type().Len() 53 | start, end := 0, l 54 | if len(offsets) > 0 && offsets[0] <= l { 55 | start = offsets[0] 56 | } 57 | if len(offsets) > 1 && offsets[1] <= l+1 { 58 | start = offsets[1] 59 | } 60 | ss := make([]byte, 0, end-start) 61 | for i := start; i < end; i++ { 62 | ss = append(ss, v.Index(i).Interface().(byte)) 63 | } 64 | return string(ss) 65 | } 66 | fmt.Println("=====") 67 | return "" 68 | } 69 | 70 | // Hex encode string as hex string 71 | func (t *ToolKit) Hex(input string) string { 72 | return hex.EncodeToString([]byte(input)) 73 | } 74 | -------------------------------------------------------------------------------- /scripts/cover.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | go test ./... -coverprofile=covprofile 3 | go tool cover -html=covprofile -o coverage.html 4 | open coverage.html 5 | rm covprofile 6 | -------------------------------------------------------------------------------- /scripts/fmt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ORG_DIR="$GOPATH/src/github.com/meshplus/" 3 | PROJECT_NAME="hyperbench" 4 | PROJECT_DIR="$ORG_DIR/$PROJECT_NAME/" 5 | 6 | set -e 7 | if ! type golangci-lint >> /dev/null 2>&1; then 8 | case "$OSTYPE" in 9 | darwin*) 10 | curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh \ 11 | | sh -s -- -b $(go env GOPATH)/bin v1.16.0 12 | ;; 13 | linux*) 14 | curl -sfL http://172.16.0.101/citools/golangci-lint-1.16.0-linux-amd64.tar.gz -o /tmp/golangci-lint-1.16.0-linux-amd64.tar.gz && \ 15 | tar zxvf /tmp/golangci-lint-1.16.0-linux-amd64.tar.gz -C /tmp/ && \ 16 | cp /tmp/golangci-lint-1.16.0-linux-amd64/golangci-lint $(go env GOPATH)/bin/golangci-lint && \ 17 | rm -rf /tmp/golangci-lint-1.16.0-linux-amd64 && \ 18 | rm -rf /tmo/golangci-lint-1.16.0-linux-amd64.tar.gz 19 | ;; 20 | *) 21 | echo "unknown: $OSTYPE" 22 | exit -1 23 | ;; 24 | esac 25 | 26 | 27 | fi 28 | 29 | export LOG_LEVEL=error 30 | 31 | cd $PROJECT_DIR && 32 | if [[ $1"x" == "x" ]]; then 33 | cd $PROJECT_DIR && CGO_LDFLAGS_ALLOW=.* CGO_CFLAGS_ALLOW=.* golangci-lint run --fix 34 | else 35 | echo $1 36 | cd $PROJECT_DIR && \ 37 | CGO_LDFLAGS_ALLOW=.* CGO_CFLAGS_ALLOW=.* LOG_LEVEL=error golangci-lint run --fix --new-from-rev $1 38 | fi 39 | -------------------------------------------------------------------------------- /scripts/gomod.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ORG_DIR="$GOPATH/src/github.com/ultramesh" 3 | PROJECT_NAME="frigate" 4 | PROJECT_DIR="$ORG_DIR/$PROJECT_NAME/" 5 | 6 | cd $PROJECT_DIR 7 | git config --global url."git@git.hyperchain.cn:".insteadOf "https://git.hyperchain.cn/" 8 | export GO111MODULE=on 9 | export GOPROXY=https://goproxy.cn 10 | echo "stage 1: download modules expect internal package" 11 | ./scripts/stage-1.sh 12 | cat go.mod 13 | go mod download 14 | unset GOPROXY 15 | 16 | echo "stage 2: download internal package" 17 | ./scripts/stage-2.sh 18 | cat go.mod 19 | go mod download 20 | 21 | echo "stage 3: download all package again" 22 | export GOPROXY=https://goproxy.cn 23 | go mod download -------------------------------------------------------------------------------- /scripts/stage-1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ORG_DIR="$GOPATH/src/github.com/ultramesh" 4 | PROJECT_NAME="frigate" 5 | PROJECT_DIR="$ORG_DIR/$PROJECT_NAME/" 6 | 7 | cd $PROJECT_DIR 8 | cp go.mod go.mod.bak 9 | 10 | #remove matched strings 11 | cat go.mod | grep "replace" | grep "git\.hyperchain\.cn" | while read s; do 12 | address=$(echo "$s" | awk '{print $2}') 13 | cat go.mod | grep -v "$address" > go.mod.stage1 14 | cp -f go.mod.stage1 go.mod 15 | done 16 | 17 | rm -f go.mod.stage1 18 | -------------------------------------------------------------------------------- /scripts/stage-2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ORG_DIR="$GOPATH/src/github.com/ultramesh" 4 | PROJECT_NAME="frigate" 5 | PROJECT_DIR="$ORG_DIR/$PROJECT_NAME/" 6 | 7 | cd $PROJECT_DIR 8 | cp -f go.mod.bak go.mod 9 | rm -f go.mod.bak 10 | -------------------------------------------------------------------------------- /vm/base/base_test.go: -------------------------------------------------------------------------------- 1 | package base 2 | 3 | import ( 4 | "testing" 5 | 6 | fcom "github.com/meshplus/hyperbench-common/common" 7 | 8 | "github.com/stretchr/testify/assert" 9 | ) 10 | 11 | func TestBaseVm(t *testing.T) { 12 | t.Skip() 13 | base := NewVMBase(ConfigBase{ 14 | Path: "", 15 | }) 16 | Type := base.Type() 17 | assert.Equal(t, Type, "base") 18 | 19 | err := base.BeforeDeploy() 20 | assert.NoError(t, err) 21 | 22 | err = base.DeployContract() 23 | assert.NoError(t, err) 24 | 25 | err = base.BeforeGet() 26 | assert.NoError(t, err) 27 | 28 | bs, err := base.GetContext() 29 | assert.NoError(t, err) 30 | assert.NotNil(t, bs) 31 | 32 | res, err := base.Statistic(1, 1) 33 | assert.NoError(t, err) 34 | assert.NotNil(t, res) 35 | 36 | err = base.BeforeSet() 37 | assert.NoError(t, err) 38 | 39 | err = base.SetContext(nil) 40 | assert.NoError(t, err) 41 | 42 | err = base.BeforeRun() 43 | assert.NoError(t, err) 44 | 45 | result, err := base.Run(fcom.TxContext{}) 46 | assert.NoError(t, err) 47 | assert.NotNil(t, result) 48 | 49 | err = base.AfterRun() 50 | assert.NoError(t, err) 51 | 52 | _, err = base.LogStatus() 53 | assert.NoError(t, err) 54 | 55 | base.Close() 56 | 57 | } 58 | -------------------------------------------------------------------------------- /vm/lua/glua/glua_convert_test.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | "github.com/stretchr/testify/assert" 5 | lua "github.com/yuin/gopher-lua" 6 | "testing" 7 | ) 8 | 9 | func Test_Go2Lua(t *testing.T) { 10 | 11 | t.Run("demo", func(t *testing.T) { 12 | str :="demo" 13 | L := lua.NewState() 14 | strLua := Go2Lua(L,str) 15 | assert.Equal(t, strLua,lua.LString("demo")) 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vm/lua/glua/index.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | idex "github.com/meshplus/hyperbench/plugins/index" 5 | lua "github.com/yuin/gopher-lua" 6 | ) 7 | 8 | func newIdexIndex(L *lua.LState, idx *idex.Index) lua.LValue { 9 | idxTable := L.NewTable() 10 | idxTable.RawSetString("Worker", lua.LNumber(idx.Worker)) 11 | idxTable.RawSetString("VM", lua.LNumber(idx.VM)) 12 | idxTable.RawSetString("Engine", lua.LNumber(idx.Engine)) 13 | idxTable.RawSetString("Tx", lua.LNumber(idx.Tx)) 14 | return idxTable 15 | } 16 | -------------------------------------------------------------------------------- /vm/lua/glua/index_test.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | "github.com/meshplus/hyperbench/plugins/index" 5 | "github.com/stretchr/testify/assert" 6 | lua "github.com/yuin/gopher-lua" 7 | "testing" 8 | ) 9 | 10 | func Test_index(t *testing.T) { 11 | L := lua.NewState() 12 | defer L.Close() 13 | mt := L.NewTypeMetatable("case") 14 | L.SetGlobal("case", mt) 15 | passIdx := &index.Index{1, 1, 1, 1} 16 | 17 | cLua := newIdexIndex(L, passIdx) 18 | L.SetField(mt, "index", cLua) 19 | scripts := []string{` 20 | function run() 21 | case.index.Worker=2 22 | case.index.VM=2 23 | case.index.Engine=2 24 | case.index.Tx=2 25 | return case.index 26 | end 27 | `} 28 | for _, script := range scripts { 29 | lvalue, err := runLuaRunFunc(L, script) 30 | assert.Nil(t, err) 31 | idx := &index.Index{} 32 | err = TableLua2GoStruct(lvalue.(*lua.LTable), idx) 33 | assert.Nil(t, err) 34 | assert.Equal(t, idx, &index.Index{Worker: 2, VM: 2, Engine: 2, Tx: 2}) 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /vm/lua/glua/lvalue.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | fcom "github.com/meshplus/hyperbench-common/common" 5 | idex "github.com/meshplus/hyperbench/plugins/index" 6 | "github.com/meshplus/hyperbench/plugins/toolkit" 7 | lua "github.com/yuin/gopher-lua" 8 | ) 9 | 10 | func NewClientLValue(L *lua.LState, client fcom.Blockchain) lua.LValue { 11 | return newBlockchain(L, client) 12 | } 13 | 14 | func NewToolKitLValue(L *lua.LState, kit *toolkit.ToolKit) lua.LValue { 15 | return newToolKit(L, kit) 16 | } 17 | 18 | func NewLIndexLValue(L *lua.LState, idx *idex.Index) lua.LValue { 19 | return newIdexIndex(L, idx) 20 | } 21 | 22 | func NewResultLValue(L *lua.LState, r *fcom.Result) lua.LValue { 23 | return newCommonResult(L, r) 24 | } 25 | -------------------------------------------------------------------------------- /vm/lua/glua/result.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | fcom "github.com/meshplus/hyperbench-common/common" 5 | lua "github.com/yuin/gopher-lua" 6 | ) 7 | 8 | // todo Compare the luaToGo for performance of lua.Table and lua.UserData 9 | func newCommonResult(L *lua.LState, r *fcom.Result) lua.LValue { 10 | //todo replace reflect 11 | resultTable := L.NewTable() 12 | resultTable.RawSetString("Label", lua.LString(r.Label)) 13 | resultTable.RawSetString("UID", lua.LString(r.UID)) 14 | resultTable.RawSetString("BuildTime", lua.LNumber(r.BuildTime)) 15 | resultTable.RawSetString("SendTime", lua.LNumber(r.SendTime)) 16 | resultTable.RawSetString("WriteTime", lua.LNumber(r.WriteTime)) 17 | resultTable.RawSetString("Status", lua.LString(r.Status)) 18 | resultTable.RawSetString("Ret", go2Lua(L, r.Ret)) 19 | return resultTable 20 | } 21 | -------------------------------------------------------------------------------- /vm/lua/glua/result_test.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | fcom "github.com/meshplus/hyperbench-common/common" 5 | "github.com/stretchr/testify/assert" 6 | lua "github.com/yuin/gopher-lua" 7 | "testing" 8 | ) 9 | 10 | func Test_CommonResult(t *testing.T) { 11 | 12 | L := lua.NewState() 13 | defer L.Close() 14 | mt := L.NewTypeMetatable("case") 15 | L.SetGlobal("case", mt) 16 | result := &fcom.Result{ 17 | Label: "Confirm", 18 | UID: "UUID", 19 | Status: fcom.Success, 20 | Ret: []interface{}{"result", "result"}, 21 | } 22 | cLua := newCommonResult(L, result) 23 | L.SetField(mt, "result", cLua) 24 | scripts := []string{` 25 | function run() 26 | return case.result 27 | end 28 | `} 29 | for _, script := range scripts { 30 | lvalue, err := runLuaRunFunc(L, script) 31 | assert.Nil(t, err) 32 | idx := &fcom.Result{} 33 | err = TableLua2GoStruct(lvalue.(*lua.LTable), idx) 34 | assert.Nil(t, err) 35 | assert.Equal(t, idx, &fcom.Result{Label: "Confirm", UID: "UUID", BuildTime: 0, SendTime: 0, ConfirmTime: 0, WriteTime: 0, Status: "success", Ret: []interface{}{"result", "result"}}) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /vm/lua/glua/toolKit.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | "github.com/meshplus/hyperbench/plugins/toolkit" 5 | lua "github.com/yuin/gopher-lua" 6 | ) 7 | 8 | func hexLuaFunction(L *lua.LState, kit *toolkit.ToolKit) *lua.LFunction { 9 | return L.NewFunction(func(state *lua.LState) int { 10 | input := state.CheckString(1) 11 | ret := kit.Hex(input) 12 | state.Push(lua.LString(ret)) 13 | return 1 14 | }) 15 | } 16 | 17 | func randStrLuaFunction(L *lua.LState, kit *toolkit.ToolKit) *lua.LFunction { 18 | return L.NewFunction(func(state *lua.LState) int { 19 | size := state.CheckInt(1) 20 | ret := kit.RandStr(uint(size)) 21 | L.Push(lua.LString(ret)) 22 | return 1 23 | }) 24 | } 25 | 26 | func randIntLuaFunction(L *lua.LState, kit *toolkit.ToolKit) *lua.LFunction { 27 | return L.NewFunction(func(state *lua.LState) int { 28 | min := state.CheckInt(1) 29 | max := state.CheckInt(2) 30 | ret := kit.RandInt(min, max) 31 | L.Push(lua.LNumber(ret)) 32 | return 1 33 | }) 34 | } 35 | 36 | func stringLuaFunction(L *lua.LState, kit *toolkit.ToolKit) *lua.LFunction { 37 | return L.NewFunction(func(state *lua.LState) int { 38 | argLength := state.GetTop() 39 | if argLength < 1 { 40 | panic("args are less than 1") 41 | } 42 | input := state.CheckAny(1) 43 | if argLength == 1 { 44 | ret := kit.String(input) 45 | L.Push(lua.LString(ret)) 46 | return 1 47 | } 48 | var offsets []int 49 | for i := 2; i < argLength; i++ { 50 | offset := state.CheckInt(i) 51 | offsets = append(offsets, offset) 52 | } 53 | ret := kit.String(input, offsets...) 54 | L.Push(lua.LString(ret)) 55 | return 1 56 | }) 57 | } 58 | 59 | func newToolKit(L *lua.LState, kit *toolkit.ToolKit) lua.LValue { 60 | toolkitTable := L.NewTable() 61 | toolkitTable.RawSetString("Hex", hexLuaFunction(L, kit)) 62 | toolkitTable.RawSetString("RandStr", randStrLuaFunction(L, kit)) 63 | toolkitTable.RawSetString("RandInt", randIntLuaFunction(L, kit)) 64 | toolkitTable.RawSetString("String", stringLuaFunction(L, kit)) 65 | return toolkitTable 66 | } 67 | -------------------------------------------------------------------------------- /vm/lua/glua/toolKit_test.go: -------------------------------------------------------------------------------- 1 | package glua 2 | 3 | import ( 4 | "fmt" 5 | "github.com/meshplus/hyperbench/plugins/toolkit" 6 | "github.com/stretchr/testify/assert" 7 | lua "github.com/yuin/gopher-lua" 8 | "testing" 9 | ) 10 | 11 | func Test_toolKit(t *testing.T) { 12 | L := lua.NewState() 13 | defer L.Close() 14 | mt := L.NewTypeMetatable("case") 15 | L.SetGlobal("case", mt) 16 | L.SetField(mt, "toolkit", newToolKit(L, toolkit.NewToolKit())) 17 | 18 | t.Run("RandStr", func(t *testing.T) { 19 | scripts := []string{ 20 | ` 21 | function run() 22 | return case.toolkit.RandStr(10) 23 | end 24 | `, 25 | } 26 | for _, script := range scripts { 27 | lvalue, err := runLuaRunFunc(L, script) 28 | assert.Nil(t, err) 29 | result, err := Lua2Go(lvalue) 30 | assert.Nil(t, err) 31 | assert.Equal(t, len(fmt.Sprint(result)), 10) 32 | } 33 | }) 34 | t.Run("RandStr", func(t *testing.T) { 35 | scripts := []string{ 36 | ` 37 | function run() 38 | return case.toolkit.RandInt(50,51) 39 | end 40 | `, 41 | } 42 | for _, script := range scripts { 43 | lvalue, err := runLuaRunFunc(L, script) 44 | assert.Nil(t, err) 45 | result, err := Lua2Go(lvalue) 46 | assert.Nil(t, err) 47 | assert.Equal(t, fmt.Sprint(result), "50") 48 | } 49 | }) 50 | t.Run("Hex", func(t *testing.T) { 51 | scripts := []string{ 52 | ` 53 | function run() 54 | return case.toolkit.Hex("aaaaaa") 55 | end 56 | `, 57 | } 58 | for _, script := range scripts { 59 | lvalue, err := runLuaRunFunc(L, script) 60 | assert.Nil(t, err) 61 | result, err := Lua2Go(lvalue) 62 | assert.Nil(t, err) 63 | assert.Equal(t, fmt.Sprint(result), "616161616161") 64 | } 65 | 66 | }) 67 | t.Run("String", func(t *testing.T) { 68 | toolkit.NewToolKit().String("") 69 | scripts := []string{ 70 | ` 71 | function run() 72 | return case.toolkit.String("aaaaaa",1,2) 73 | end 74 | `, 75 | ` 76 | function run() 77 | return case.toolkit.String("aaaaaa") 78 | end 79 | `, 80 | } 81 | for _, script := range scripts { 82 | lvalue, err := runLuaRunFunc(L, script) 83 | assert.Nil(t, err) 84 | result, err := Lua2Go(lvalue) 85 | assert.Nil(t, err) 86 | assert.Equal(t, fmt.Sprint(result), "") 87 | } 88 | 89 | }) 90 | 91 | } 92 | -------------------------------------------------------------------------------- /vm/vm.go: -------------------------------------------------------------------------------- 1 | package vm 2 | 3 | import ( 4 | fcom "github.com/meshplus/hyperbench-common/common" 5 | 6 | "github.com/meshplus/hyperbench/vm/base" 7 | "github.com/meshplus/hyperbench/vm/lua" 8 | ) 9 | 10 | // Type is the ext name of script file 11 | type Type string 12 | 13 | const ( 14 | // LUA vm type of lua. 15 | LUA Type = "lua" 16 | ) 17 | 18 | // MasterVM is the part interface of VM that will be called in master 19 | type MasterVM interface { 20 | // BeforeDeploy will call before deploy contract. 21 | BeforeDeploy() error 22 | // DeployContract deploy contract. 23 | DeployContract() error 24 | // BeforeGet will call before get context. 25 | BeforeGet() error 26 | // GetContext generate context for execute tx in vm. 27 | GetContext() ([]byte, error) 28 | // Statistic statistic remote execute info. 29 | Statistic(from, to int64) (*fcom.RemoteStatistic, error) 30 | // LogStatus records blockheight and time 31 | LogStatus() (int64, error) 32 | } 33 | 34 | // BaseVM is the part interface of VM that will be called in both master and worker 35 | type BaseVM interface { 36 | // Type return the vm type. 37 | Type() string 38 | // Close close vm. 39 | Close() 40 | } 41 | 42 | // WorkerVM is the part interface of VM that will be called in worker 43 | type WorkerVM interface { 44 | // BeforeSet will call before set context. 45 | BeforeSet() error 46 | // SetContext set context for execute tx in vm, the ctx is generated by GetContext. 47 | SetContext(ctx []byte) error 48 | // BeforeRun will call once before run. 49 | BeforeRun() error 50 | // Run create and send tx to client. 51 | Run(ctx fcom.TxContext) (*fcom.Result, error) 52 | // AfterRun will call once after run. 53 | AfterRun() error 54 | } 55 | 56 | // VM is the integrated interface of Virtual Machine running script 57 | type VM interface { 58 | BaseVM 59 | MasterVM 60 | WorkerVM 61 | } 62 | 63 | // NewVM creates a VM according to type and config 64 | func NewVM(vmType string, configBase base.ConfigBase) (VM, error) { 65 | vm := base.NewVMBase(configBase) 66 | switch Type(vmType) { 67 | case LUA: 68 | return lua.NewVM(vm) 69 | default: 70 | return vm, nil 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /vm/vm_test.go: -------------------------------------------------------------------------------- 1 | package vm 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/meshplus/hyperbench/vm/base" 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func TestNewVM(t *testing.T) { 11 | t.Skip() 12 | vm, err := NewVM("lua", base.ConfigBase{}) 13 | assert.Nil(t, vm) 14 | assert.Error(t, err) 15 | 16 | vm, err = NewVM("", base.ConfigBase{}) 17 | assert.NotNil(t, vm) 18 | assert.NoError(t, err) 19 | } 20 | --------------------------------------------------------------------------------