A multi-node level fuzzer, written in python, that uses the functional test framework to spin up a many nodes and throw a large amount of random work (RPCs) at them, including transactions and mining. Keep track of the expected state, such as which entries should be in various nodes' wallets, and check them. All the while randomly hard-killing, soft-stopping, and restart the nodes.
We had something like this for the distributed storage system I worked on in a previous job, and it was very good at uncovering bugs.
A multi-node level fuzzer, written in python, that uses the functional test framework to spin up a many nodes and throw a large amount of random work (RPCs) at them, including transactions and mining. Keep track of the expected state, such as which entries should be in various nodes' wallets, and check them. All the while randomly hard-killing, soft-stopping, and restart the nodes.
We had something like this for the distributed storage system I worked on in a previous job, and it was very good at uncovering bugs.
Possibly related: https://github.com/zcash/zcash/pull/3913