hyperledger-archives / caliper Goto Github PK
View Code? Open in Web Editor NEWA blockchain benchmark framework to measure performance of multiple blockchain solutions
License: Apache License 2.0
A blockchain benchmark framework to measure performance of multiple blockchain solutions
License: Apache License 2.0
A couple of the sawtooth network docker images (or docker files) are missing:
sawtooth-tp-python
sawtooth-tp-settings
I was able to get sawtooth up and running by substituting these for hyperledger docker hub equivalents. I can send a PR for that if y'all would like.
Hey! I've tried to check fabric benchmarks but something went wrong
Run via:
npm install && npm install fabric{,-ca}-client
node benchmark/simple/main.js
**** End-to-end flow: testing 'open' ****
----test round 0----
started monitor successfully
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer0.org1.example.com","grpc.default_authority":"peer0.org1.example.com","request-timeout":120000}
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer1.org2.example.com","grpc.default_authority":"peer1.org2.example.com","request-timeout":120000}
start client 22613:opening accounts
Client 22613: error Error: "admin" parameter must be of type boolean
at Client.newTransactionID (/home/kitsu/dev/caliper/node_modules/fabric-client/lib/Client.js:463:11)
at Object.invokebycontext (/home/kitsu/dev/caliper/src/fabric/e2eUtils.js:508:28)
at Fabric.invokeSmartContract (/home/kitsu/dev/caliper/src/fabric/fabric.js:84:25)
at Blockchain.invokeSmartContract (/home/kitsu/dev/caliper/src/comm/blockchain.js:100:31)
at Object.module.exports.run (/home/kitsu/dev/caliper/benchmark/simple/open.js:29:15)
at prev.then (/home/kitsu/dev/caliper/src/comm/bench-client.js:91:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:22613) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: "admin" parameter must be of type boolean
(node:22613) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer1.org2.example.com","grpc.default_authority":"peer1.org2.example.com","request-timeout":120000}
start client 22618:opening accounts
Client 22618: error Error: "admin" parameter must be of type boolean
at Client.newTransactionID (/home/kitsu/dev/caliper/node_modules/fabric-client/lib/Client.js:463:11)
at Object.invokebycontext (/home/kitsu/dev/caliper/src/fabric/e2eUtils.js:508:28)
at Fabric.invokeSmartContract (/home/kitsu/dev/caliper/src/fabric/fabric.js:84:25)
at Blockchain.invokeSmartContract (/home/kitsu/dev/caliper/src/comm/blockchain.js:100:31)
at Object.module.exports.run (/home/kitsu/dev/caliper/benchmark/simple/open.js:29:15)
at prev.then (/home/kitsu/dev/caliper/src/comm/bench-client.js:91:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:22618) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: "admin" parameter must be of type boolean
(node:22618) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer1.org2.example.com","grpc.default_authority":"peer1.org2.example.com","request-timeout":120000}
start client 22612:opening accounts
Client 22612: error Error: "admin" parameter must be of type boolean
at Client.newTransactionID (/home/kitsu/dev/caliper/node_modules/fabric-client/lib/Client.js:463:11)
at Object.invokebycontext (/home/kitsu/dev/caliper/src/fabric/e2eUtils.js:508:28)
at Fabric.invokeSmartContract (/home/kitsu/dev/caliper/src/fabric/fabric.js:84:25)
at Blockchain.invokeSmartContract (/home/kitsu/dev/caliper/src/comm/blockchain.js:100:31)
at Object.module.exports.run (/home/kitsu/dev/caliper/benchmark/simple/open.js:29:15)
at prev.then (/home/kitsu/dev/caliper/src/comm/bench-client.js:91:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:22612) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: "admin" parameter must be of type boolean
(node:22612) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
start client 22624:opening accounts
Client 22624: error Error: "admin" parameter must be of type boolean
at Client.newTransactionID (/home/kitsu/dev/caliper/node_modules/fabric-client/lib/Client.js:463:11)
at Object.invokebycontext (/home/kitsu/dev/caliper/src/fabric/e2eUtils.js:508:28)
at Fabric.invokeSmartContract (/home/kitsu/dev/caliper/src/fabric/fabric.js:84:25)
at Blockchain.invokeSmartContract (/home/kitsu/dev/caliper/src/comm/blockchain.js:100:31)
at Object.module.exports.run (/home/kitsu/dev/caliper/benchmark/simple/open.js:29:15)
at prev.then (/home/kitsu/dev/caliper/src/comm/bench-client.js:91:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:22624) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: "admin" parameter must be of type boolean
(node:22624) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer1.org2.example.com","grpc.default_authority":"peer1.org2.example.com","request-timeout":120000}
start client 22630:opening accounts
Client 22630: error Error: "admin" parameter must be of type boolean
at Client.newTransactionID (/home/kitsu/dev/caliper/node_modules/fabric-client/lib/Client.js:463:11)
at Object.invokebycontext (/home/kitsu/dev/caliper/src/fabric/e2eUtils.js:508:28)
at Fabric.invokeSmartContract (/home/kitsu/dev/caliper/src/fabric/fabric.js:84:25)
at Blockchain.invokeSmartContract (/home/kitsu/dev/caliper/src/comm/blockchain.js:100:31)
at Object.module.exports.run (/home/kitsu/dev/caliper/benchmark/simple/open.js:29:15)
at prev.then (/home/kitsu/dev/caliper/src/comm/bench-client.js:91:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:22630) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: "admin" parameter must be of type boolean
(node:22630) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Hi all!
Running the simple benchmark results in the following error since the update to Fabric 1.0.5
***** instantiate chaincode *****
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer0.org1.example.com","grpc.default_authority":"peer0.org1.example.com"}
ok 4 The chaincode instantiate transaction was valid.
ok 5 Instantiated chaincode simple successfully
Sleep 5s...
**** End-to-end flow: testing 'open' ****
----test round 0----
started monitor successfully
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer1.org2.example.com","grpc.default_authority":"peer1.org2.example.com","grpc.keepalive_timeout_ms":3000,"grpc.keepalive_time_ms":360000}
start client 64984:opening accounts
E1216 14:09:28.516382190 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.516482489 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.516543852 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.516578931 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.516623617 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.516655271 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.516698200 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.516729054 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.516770530 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.516801077 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.516884760 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.516922654 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.517647763 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.517707686 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
E1216 14:09:28.517762837 60783 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E1216 14:09:28.517795290 60783 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
So the chaincode invoke part reports the error.
Works fine if I pull the 1.0.0 versions of the docker images.
when i am running node main.js i am facing channel creation problem
I changed fabric.json with hyperledger/fabric-samples/first-network
{
"fabric": {
"cryptodir": "network/fabric/first-network/crypto-config",
"network": {
"orderer": {
"url": "grpc://orderer.example.com:7050",
"mspid": "OrdererMSP",
"msp": "network/fabric/first-network/crypto-config/ordererOrganizations/example.com/msp/",
"server-hostname": "orderer.example.com",
"tls_cacerts": "network/fabric/first-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt"
},
"org1": {
"name": "org1",
"mspid": "Org1MSP",
"msp": "network/fabric/first-network/crypto-config/peerOrganizations/org1.example.com/msp/",
"ca": {
"url": "https://localhost:7054",
"name": "ca-org1"
},
"peer1": {
"requests": "grpc://peero.org1.example.com:7051",
"events": "grpc://peer0.org1.example.com:7053",
"server-hostname": "peer0.org1.example.com",
"tls_cacerts": "network/fabric/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
},
"peer2": {
"requests": "grpc://peer1.org1.example.com:7051",
"events": "grpc://peer1.org1.example.com:7053",
"server-hostname": "peer1.org1.example.com",
"tls_cacerts": "network/fabric/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt"
}
},
"org2": {
"name": "org2",
"mspid": "Org2MSP",
"msp": "network/fabric/first-network/crypto-config/peerOrganizations/org2.example.com/msp/",
"ca": {
"url": "https://localhost:8054",
"name": "ca-org2"
},
Error :
***** create channels *****
__dirname: /opt/caliper/src/fabric: caRootsPath: network/fabric/first-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
channels: before new Client creation
operator: fail
at: channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:168:19)
stack: |-
Error: Failed to create channels Error: SERVICE_UNAVAILABLE
at ClientDuplexStream.<anonymous> (/opt/caliper/node_modules/fabric-client/lib/Orderer.js:128:21)
at emitOne (events.js:96:13)
at ClientDuplexStream.emit (events.js:188:7)
at ClientDuplexStream._emitStatusIfDone (/opt/caliper/node_modules/grpc/src/client.js:258:12)
at ClientDuplexStream._receiveStatus (/opt/caliper/node_modules/grpc/src/client.js:233:8)
at /opt/caliper/node_modules/grpc/src/client.js:757:12
at Test.assert [as _assert] (/opt/caliper/node_modules/tape/lib/test.js:212:54)
at Test.bound [as _assert] (/opt/caliper/node_modules/tape/lib/test.js:64:32)
at Test.fail (/opt/caliper/node_modules/tape/lib/test.js:277:10)
at Test.bound [as fail] (/opt/caliper/node_modules/tape/lib/test.js:64:32)
at channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:168:19)
at process._tickCallback (internal/process/next_tick.js:103:7)
...
fabric.init() failed, Error: Fabric: Create channel failed
at channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:170:31)
at process._tickCallback (internal/process/next_tick.js:103:7)
unexpected error, Error: Fabric: Create channel failed
at channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:170:31)
at process._tickCallback (internal/process/next_tick.js:103:7)
1..1
Dear Developers,
I am trying to separate the benchmark artifacts from the code-base of Caliper. The directory structure I am trying to build is the following:
.
├── benchmarks
│ └── simple
│ ├── config.json
│ ├── contract
│ └── simple
│ └── simpletest.go
│ ├── fabric.json
│ ├── main.js
│ ├── node_modules
│ ├── ...
│ ├── open.js
│ ├── package.json
│ └── query.js
├── caliper
│ ├── ...
The first steps I took was separating the *.json
and *.js
files of the simple benchmark (so the contract and network paths remained the same). I performed the following in my new benchmarks/simple
folder:
npm init && npm install commander fs-extra --save
to run main.js
config.json
to "config": "../benchmarks/simple/fabric.json"
and "callback" : "../benchmarks/simple/open.js"
since these should be relative to the Caliper root directory.main.js
on line 43 to var absCaliperDir = path.join(__dirname, '../../caliper');
So far so good, I could install & instantiate the chaincode from its original caliper/src/contract/fabric/simple
directory.
After this, I relocated the chaincode to my benchmarks/simple/contract/simple
directory and changed the chaincode path in fabric.json
to the following:
"chaincodes": [{"id": "simple", "path": "../../benchmarks/simple/contract/simple", "language":"golang", "version": "v0", "channel": "mychannel"}],
Based on the original path, I thought this should be relative to the caliper/src
folder.
But running the benchmark gives the following error:
# Instantiate chaincode......
info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer0.org1.example.com","grpc.default_authority":"peer0.org1.example.com"}
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: Error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package ../../benchmarks/simple/contract/simple: open /benchmarks/simple/contract/simple: no such file or directory
can't load package: package ../../benchmarks/simple/contract/simple: open /benchmarks/simple/contract/simple: no such file or directory
"
at new createStatusError (/home/klenik/Projects/caliper/node_modules/grpc/src/client.js:64:15)
at /home/klenik/Projects/caliper/node_modules/grpc/src/client.js:573:15
I am lost at this point, since I do not know where this path is being rejected. On the client (SDK) side or the Fabric (peer) side? Did I miss something? How can I deploy chaincodes from outside your contract/fabric
directory?
Thanks for the help!
Does the current implementation supports for multiple orderer? I can see changes in createchannel.js needed. Can you provide any support on that?
Hi,
I am using caliper to do a benchmark test for Hyperledger fabric ledger. I noticed few things in the caliper code:
s/soultions/solutions/g
at /home/ibmadmin/gopath/src/github.com/hyperledger/fabric-sdk-node/fabric-client/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction) - make sure the chaincode simple has been successfully instantiated and try again
at new createStatusError (/home/ibmadmin/gopath/src/github.com/hyperledger/fabric-sdk-node/fabric-client/node_modules/grpc/src/client.js
In logs of peer:
2018-02-28 06:16:44.252 UTC [chaincode] ExecuteChaincode -> ERRO 25c Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction)
2018-02-28 06:16:44.252 UTC [chaincode] ExecuteChaincode -> ERRO 25d Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction)
2018-02-28 06:16:44.252 UTC [txvalidator] VSCCValidateTxForCC -> ERRO 25e Invoke VSCC failed for transaction txid=4f3f9598214a46523b90023b4cec676b0e20e6012cf0c0744619351d360f933e, error Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction)
2018-02-28 06:16:44.252 UTC [txvalidator] Validate -> ERRO 25f VSCCValidateTx for transaction txId = 4f3f9598214a46523b90023b4cec676b0e20e6012cf0c0744619351d360f933e returned error Invoke VSCC failed for transaction txid=4f3f9598214a46523b90023b4cec676b0e20e6012cf0c0744619351d360f933e, error Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction)
2018-02-28 06:16:44.252 UTC [gossip/state] commitBlock -> ERRO 260 Got error while committing(Invoke VSCC failed for transaction txid=4f3f9598214a46523b90023b4cec676b0e20e6012cf0c0744619351d360f933e, error Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction))
2018-02-28 06:16:44.252 UTC [gossip/state] deliverPayloads -> CRIT 261 Cannot commit block to the ledger due to Invoke VSCC failed for transaction txid=4f3f9598214a46523b90023b4cec676b0e20e6012cf0c0744619351d360f933e, error Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction)
panic: Cannot commit block to the ledger due to Invoke VSCC failed for transaction txid=4f3f9598214a46523b90023b4cec676b0e20e6012cf0c0744619351d360f933e, error Error executing chaincode: Failed to execute transaction (Timeout expired while executing transaction)
goroutine 179 [running]:
panic(0x1092cac0, 0xc424d7ae40)
/opt/go/src/runtime/panic.go:500 +0x3a8
github.com/hyperledger/fabric/vendor/github.com/op/go-logging.(*Logger).Panicf(0xc4202317a0, 0x10a97c21, 0x2b, 0xc424d7ad70, 0x1, 0x1)
/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/op/go-logging/logger.go:194 +0x134
github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).deliverPayloads(0xc420315b80)
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:449 +0x7a4
created by github.com/hyperledger/fabric/gossip/state.NewGossipStateProvider
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:228 +0x9e0
how and which files do i need to edit to run the benchmark test for hyperledger/fabric-samples/first-network can you please update?
i have edited caliper/benchmark/simple/config.json like below,
"command" : {
"start": "command to start the first-network test",
"end": "command to stop"
},
and when i run the test, i got error as below
#node benchmark/simple/main.js
****create channels ****
__dirname: /opt/caliper/src/fabric: caRootsPath: ./fabric-samples/first-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
channels: before new Client creation
operator: fail
at: channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:168:19)
stack: |-
Error: Failed to create channels Error: SERVICE_UNAVAILABLE
at ClientDuplexStream.<anonymous> (/opt/caliper/node_modules/fabric-client/lib/Orderer.js:128:21)
at emitOne (events.js:96:13)
at ClientDuplexStream.emit (events.js:188:7)
at ClientDuplexStream._emitStatusIfDone (/opt/caliper/node_modules/grpc/src/client.js:258:12)
at ClientDuplexStream._receiveStatus (/opt/caliper/node_modules/grpc/src/client.js:233:8)
at /opt/caliper/node_modules/grpc/src/client.js:757:12
at Test.assert [as _assert] (/opt/caliper/node_modules/tape/lib/test.js:212:54)
at Test.bound [as _assert] (/opt/caliper/node_modules/tape/lib/test.js:64:32)
at Test.fail (/opt/caliper/node_modules/tape/lib/test.js:277:10)
at Test.bound [as fail] (/opt/caliper/node_modules/tape/lib/test.js:64:32)
at channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:168:19)
at process._tickCallback (internal/process/next_tick.js:103:7)
...
fabric.init() failed, Error: Fabric: Create channel failed
at channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:170:31)
at process._tickCallback (internal/process/next_tick.js:103:7)
unexpected error, Error: Fabric: Create channel failed
at channels.reduce.then.then.catch (/opt/caliper/src/fabric/create-channel.js:170:31)
at process._tickCallback (internal/process/next_tick.js:103:7)
1..1
Hello there!
module.js:538
throw err;
^
Error: Cannot find module './api.js'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/kirill/projects/fabric-sdk-node/fabric-ca-client/lib/FabricCAClientImpl.js:19:11)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
This error happens while executing node main.js
command in caliper/benchmark/simple
directory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.