The purpose of this test is to (1) verify that the consensus reactor of CometBFT can deal with 134MB blocks across 100 validators, and (2) establish what is the minimum value for timeout_commit that can be used for such block sizes. We do not need to run any celestia-node nodes for the scope of this test. We should also disable mempool tx gossiping in this test and generate transactions locally, as the scope of this test is to test the consensus reactor only.
Setup
- Create 100 validators using this branch that has a maximum ODS size of 512x512: https://github.com/musalbas/celestia-app/tree/musalbas/ods1024
- Validators should have a realistic network latency setup
- Set max_bytes in genesis.json to
1073741824 (1GB)
- Set broadcast=false in config.toml
- Set RecvRate and SendRate to
10000000 (10MB) in config.toml (we can try to adjust this later if that causes issues)
- Set timeout_commit in config.toml to
3 - we should play with this to see what's the lowest we can get away with
- Each validator should have 16 vCPUs, to ensure that constructing the erasure code isn't a bottleneck
Test
- On each validator, run the
txsim utility locally on a separate process, with the following options: --blob 500 --blob-sizes 1000000-1000000 --blob-amounts 1-1 --feegrant true. This will create 500 routines on each validator, that are sending PFBs with 1MB blobs. Validators will need an account with sufficient funds to do this.
- Record (1) the block size of each block to verify that blocks are getting filled up; (2) the number of signatures of each block to verify that all validators are able to sign and commit each block; (3) network bandwidth statistics
The purpose of this test is to (1) verify that the consensus reactor of CometBFT can deal with 134MB blocks across 100 validators, and (2) establish what is the minimum value for
timeout_committhat can be used for such block sizes. We do not need to run any celestia-node nodes for the scope of this test. We should also disable mempool tx gossiping in this test and generate transactions locally, as the scope of this test is to test the consensus reactor only.Setup
1073741824(1GB)10000000(10MB) in config.toml (we can try to adjust this later if that causes issues)3- we should play with this to see what's the lowest we can get away withTest
txsimutility locally on a separate process, with the following options:--blob 500 --blob-sizes 1000000-1000000 --blob-amounts 1-1 --feegrant true. This will create 500 routines on each validator, that are sending PFBs with 1MB blobs. Validators will need an account with sufficient funds to do this.