The sidecar has per-function benchmarks but none of the assembled service, so no way to tell which of
its stages binds without a cluster.
Run the real service on one machine against a real block store and real gRPC, with the orderer and the
coordinator stubbed, and report tx/s. Generate the transactions before the timed section, or setup
dominates the profile.
This is what found the block store ceiling (#784, hyperledger/fabric-x-common#165): it put a serialized goroutine at a 100% per-block
duty cycle on a machine at 18% CPU, which no machine-level metric shows.
The sidecar has per-function benchmarks but none of the assembled service, so no way to tell which of
its stages binds without a cluster.
Run the real service on one machine against a real block store and real gRPC, with the orderer and the
coordinator stubbed, and report tx/s. Generate the transactions before the timed section, or setup
dominates the profile.
This is what found the block store ceiling (#784, hyperledger/fabric-x-common#165): it put a serialized goroutine at a 100% per-block
duty cycle on a machine at 18% CPU, which no machine-level metric shows.