Skip to content

Write and run test for testing consensus reactor for 134MB (512x512 ODS) blocks across 100 validators #225

@musalbas

Description

@musalbas

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions