Lower the empty block creation interval #102
Labels
kind/enhancement
Enhance an already existing feature; no "New feature" to add
status/waiting-upstream
This issue is waiting for a dependency to be updated in order to be worked on
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
The text was updated successfully, but these errors were encountered: