This page provides a place to record a number of permissioned-chain configurations and test results, to allow for easier collaboration to (re)run test scenarios and compare performance over time.
4-node QBFT chain trying Bonsai (full sync mode) with caliper at 200TPS:
Configuration of boot node:
p2p-port=30303
rpc-http-port=8545
rpc-http-api=["NET","ETH","WEB3","ADMIN","TXPOOL","QBFT"]
rpc-http-enabled=true
rpc-ws-enabled=true
rpc-ws-port=8555
tx-pool="sequenced"
data-storage-format="FOREST"
data-path="./data"
tx-pool-no-local-priority=true
min-gas-price=0
tx-pool-limit-by-account-percentage=0.55
Configuration of nodes 2-4:
bootnodes=["enode://<enode-for-boot-node>@127.0.0.1:30303"]
p2p-port=<unique port>
rpc-http-port=<unique port>
rpc-http-api=["NET","ETH","WEB3","ADMIN","TXPOOL","QBFT"]
rpc-http-enabled=true
rpc-ws-enabled=true
rpc-ws-port=<unique port>
tx-pool="sequenced"
data-storage-format="FOREST"
data-path="./data"
tx-pool-no-local-priority=true
min-gas-price=0
tx-pool-limit-by-account-percentage=0.55
Genesis file:
{
"config" : {
"chainId" : 1337,
"berlinBlock": 0,
"londonBlock": 0,
"zeroBaseFee": true,
"qbft" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 4
}
},
"contractSizeLimit" : 99999999999,
"nonce" : "0x0",
"timestamp" : "0x58ee40ba",
"gasLimit" : "0x1FFFFFFFFFFFFF",
"difficulty" : "0x1",
"mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase" : "0x0000000000000000000000000000000000000000",
"extraData" : "0xf87aa00000000000000000000000000000000000000000000000000000000000000000f854946a5d767a9cfd5711bffefa121491fe9d78d27a2794f4ffcf181a94328e848a9622d2d668d9a703508994a0685b78b74b63841651855f23d8161482e3bd1b9433b38bbb139832055630194c0673a43b6075663fc080c0"
}
Caliper scenario:
simpleArgs: &simple-args
initialMoney: 100000
moneyToTransfer: 100
numberOfAccounts: &number-of-accounts 10000 # the configured number of accounts
test:
name: simple
description: >-
This is an example benchmark for Caliper, to test the backend DLT's
performance with simple account opening & querying transactions.
workers:
number: 1
rounds:
- label: open
description: >-
Test description for the opening of an account through the deployed
contract.
txNumber: *number-of-accounts
rateControl:
type: fixed-rate
opts:
tps: 200 # tps for opening the configured number of accounts
workload:
module: benchmarks/scenario/simple/open.js
arguments: *simple-args
- label: query
description: Test description for the query performance of the deployed contract.
txNumber: *number-of-accounts
rateControl:
type: fixed-rate
opts:
tps: 800 # tps for querying the configured number of accounts
workload:
module: benchmarks/scenario/simple/query.js
arguments: *simple-args
- label: transfer
description: Test description for transfering money between accounts.
txNumber: *number-of-accounts
rateControl:
type: fixed-rate
opts:
tps: 200 # tps for transfer using the configured number of accounts
workload:
module: benchmarks/scenario/simple/transfer.js
arguments:
<<: *simple-args
money: 100
Results for Besu 24.4.0-rc (commit https://github.com/hyperledger/besu/commit/9ae52a97cdea827d74e5500ff93fd5b42045c066): Test fails after ~ 70 blocks with
...
This section includes various setup and testing results for different permissioned chain scenarios. See sub-pages for the different scenarios currently being exercised.