Conversation
|
CometBFT v1.0 release plan: cometbft/cometbft#578 |
|
Back to draft now that CI ran once. (pass 🥳 ) |
|
Hey, Happy to comment on some of these. You are one of the first teams to experiment with upgrading to v1 so really appreciate the questions and thoughts here as they enable us to know what is important vs. unimportant.
Actually this is not consensus breaking. (Ref) What is important is that validators/node operators coordinate and aware of the configuration change and maintain the configuration of timeout_vote consistent. But this change is not encoded does not affect content of blocks or hashes, so it is not consensus breaking.
Largely due to introduction of PBTS. Ref: https://informal.systems/blog/introducing-proposer-based-timestamps-pbts-in-cometbft
The changelog should be comprehensive. I understand the feedback and feeling here is that too many things changed; is it less disruptive and more useful for you to have smaller, more frequent releases? Actually if you do not enable PBTS I believe nothing in v1 is consensus breaking. I will double check this but your validators might not even need to coordinate in rolling out the upgrade - the proto changes might require coordination (let me confirm though). This is because the block protocol remains unchanged fundamentally in v1. Separate topic: Here is a basic reference we have w.r.t upgrade taxonomy. Glad to explain further or in a call if useful. |
57fb5d4 to
dd69cb2
Compare
|
@adizere Thanks! Sorry for the delay in responding -- you commented while I was on break. |
|
@adizere Hey, I tried rolling updates to comet1.0 build, here are my first set of observations:
Node with older versions: Panicking Peer disconnects with every block:
|
|
Indexer works as expected with both versioned and non versioned endpoints. |




DO NOT MERGE.
This completes the switch to cometbft v1.0 (from v0.38) started in #621
This was a quick first pass, but it amazingly seems to pass acceptance test, but I don't know about integ yet.
The motivation for doing this now is two fold:
v1.xand we may not need to waste our time chasing the cause since we already know some of the issues are in cometbft code (e.g. the logging issue).v0.8and updating to cometbft v1.0 on a live network appears to be a very difficult or impossible. While cometbft v1.0 is not yet released, it seems to be getting close with an alpha release almost two months ago. See their tags page.There are a number of major changes:
apimodule that is separate from their main module. Pretty much every variable name is changed.timeout_prevoteandtimeout_commitare consolidate totimeout_vote. Surely this is a consensus breaker.GenesisDoctype no longer has aABCIfield, and now has aSynchronyandFeaturefieldabciTypes.Ed25519ValidatorUpdateis gone, and we have to manually make the ed25519crypto.PrivKeyand construct acmtAPIabci.ValidatorUpdateinstace. This is actually minor.cometNodes.GenesisDocProvidernow returns a struct with the genesis doc and an optional hash. We might investigate using this to ensure the correct genesis file is used.ValidatorSignerhas a newSignBytesmethod and change method signatures. There are tweaks with extension signatures taken from upstreamFilePVas well. We should audit their changes and ensure we have them.So, there is a lot to investigate and research on their github or elsewhere to understand: