Skip to content

Lower the empty block creation interval #102

Description

@rmontagnin

Context

Currently inside Desmos we have the following Tendermint consensus params set:

  • create_empty_blocks: true
  • create_empty_blocks_interval: 0s
  • timeout_commit: 1s
  • timeout_propose: 3s
  • peer_gossip_sleep_duration: 100ms

This has lead the chain to produce a lot of empty blocks at the current rate of 1 every 5-6 seconds, causing new validators to take up to 6 hours to completely sync the node the first time they start it up.

While empty blocks are used to tell the chain has not stopped (its the only meaning they have), I really think that this should be addressed in some way.

After @kwunyeung told me e-Money have been able to create a 1-minute-heartbeat system, I've browsed through their code and seen that they have set the following parameters instead:

  • create_empty_blocks: false
  • create_empty_blocks_interval: 60s
  • timeout_commit: 500ms
  • timeout_propose: 2s
  • peer_gossip_sleep_duration: 25ms

This code can be found inside e-Money's cmd main.go file.

As @kwunyeung said, they are setting all the other parameters as the create_empty_blocks might not work now (but Ethan Frey should have pointed this out already). To fix these they are using all the other 4 to make all the nodes act the same way, effectively lowering the production of empty blocks.

@kwunyeung also said IOV has managed to do a similar thing but with a 5 minutes heartbeat instead.

What I think we should do is implement a 2 minutes heartbeat, as I think we will have enough transactions in any case in the future, and lowering this amount could affect the calculations of slashing and block rewards which are currently based on block height, as @kwunyeung said too.

What are your thoughts @kwunyeung @bragaz?

CC @angelorc

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/enhancementEnhance an already existing feature; no "New feature" to addstatus/waiting-upstreamThis issue is waiting for a dependency to be updated in order to be worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions