The sawtooth-validator command controls the behavior of the validator.

A validator is the component ultimately responsible for validating batches of transactions, combining them into blocks, maintaining consensus with the network, and coordinating communication between clients, other validators, and transaction processors. Much of the actual validation is delegated to other components, such as transaction processors and the active consensus module.

Note the following options, which provide several ways to configure the validator.

  • Use the --peering option to set the peering type to dynamic or static.

    • If set to static, use the --peers option to list the URLs of all peers that the validator should connect to, using the format tcp://hostname:port. Specify multiple peer URLs in a comma-separated list.

    • If set to dynamic, any static peers will be processed first, before starting the topology buildout starting, then the URLs specified by --seeds will be used for the initial connection to the validator network.

  • Use --scheduler to set the scheduler type to serial or parallel. Note that both scheduler types result in the same deterministic results and are completely interchangeable. However, parallel processing of transactions provides a performance improvement even for fast transaction workloads by reducing the overall latency effects that occur when transactions are processed serially.

  • Use --network-auth to specify the required authorization procedure (trust or challenge) that validator connections must go through before they are allowed to participate on the network. To use network permissions, specify challenge, which requires connections to sign a challenge so their identity can be proved.

Please build sawtooth-validator first with 'build_all' or 'build_validator'