-
Notifications
You must be signed in to change notification settings - Fork 23
Test Scenarios
More detailed infos about test scenarios.
List of all scenarios, planned and done
This is the base scenario of system testing.
5,000 clients plus one bootstrapping nodes are deployed. Each client is fresh to the network, e.g. hasn't participated on any blockchain before. Each client will get its peers from the bootstrapping node. Each client starts and stops mining randomly. When the scenario stops, all clients have found consensus.
Implemented via https://github.com/ethereum/system-testing/blob/master/scenarios/scenario_chain_consensus.py.
Currently works with python client. To support other clients, they need to support the following structured logging messages.
Log on new head:
message="eth.chain.new_head" block_hash="block_hash_hexhash_64byte"
Note: You can use different names for the event message (these can be mapped to the canonical name). You can not choose different keys for the event attributes though. You don't need to supply a timestamp nor the nodeid.
starts one client
let it mine some ether
start all clients
create tx client_0 > client_1
send tx to one client
check tx propagation time < X
check consensus
implemented in https://github.com/ethereum/system-testing/blob/master/scenarios/scenario_tx_propagation.py
This uses RPC to send transactions. TODO check JSON-RPC usability
Log on new tx received:
message="eth.tx.new_tx" tx_hash="tx_hash_hexhash_64byte"
new scenarios will need additional structured log messages to be implemented.