-
Notifications
You must be signed in to change notification settings - Fork 683
Description
Hello, friends from the community. I conducted an experiment on a chain launched with Tendemint and Cosmos SDK and had some questions about the selection of block producers. Here's my experiment(using cosmos-sdk v0.47.3, comebft v0.37.2):
- I launched a chain using Cosmos SDK.
- started two validator nodes with equal stake amounts.
I observed that both nodes took turns to produce blocks, which aligns with the principles of Tendermint's round-robin consensus.
Now, let's make some configuration changes on top of the default settings mentioned above:
- The first node uses the default consensus configuration with:
while the second node modifies the consensus field in the config.yaml with this:
At this point, I noticed that the round-robin consensus rule wasn't implemented, as the second node continued to produce blocks while the first node didn't get the chance
.
Why is this happening? Can block production time be modified by the validator to gain an advantage in block production? Does this deviate from the definition of round-robin consensus?
Since the first validator didn't produce blocks, I attempted to increase the delegation amount for the first validator, making Validator1's voting power 60% and Validator2's voting power 40%. Surprisingly, Validator1 also started producing blocks.
- Why is this? Isn't block production time determined by voting power? Why is it influenced by the node's block production time configuration?
- If it's the case, how can we address situations where someone arbitrarily adjusts their block production time to gain an advantage, especially since it seems like these configurations are entirely under the control of the nodes themselves?