hyperledger / caliper

A blockchain benchmark framework to measure performance of multiple blockchain solutions https://wiki.hyperledger.org/display/caliper
https://hyperledger.github.io/caliper/
Apache License 2.0
650 stars 403 forks source link

remove node as the chaincode language for fabric integration testing #1476

Closed davidkel closed 1 year ago

davidkel commented 1 year ago

Couple of reasons for this

  1. Fabric doesn't pin exact versions of it's dependencies which means that changes to the dependency tree outside of our control (in fact it's outside of fabric's control because they don't pin dependencies) can break the code. This has happened today with grpc-js 1.8.1->1.8.2 breaking all node chaincodes. We could add a shrinkwrap to fix the versions but that brings me to my second point
  2. Node chaincode is not as efficient as Go chaincode. Also npm install has to be run to prepare the chaincode for each run whereas we go chaincode we can pre-vendor and keep that in the code tree. Both will make it faster for integration testing and reduce the testing time and thus reduce power usage. Also this is less likely to break.