Replies: 7 comments 8 replies
-
Thanks for you suggestions, @S1nus . The consensus parameters are something used by the consensus itself, not the application. If you could expand on what you are trying to achieve, we can work together on a solution. I am changing this issue into a discussion for now. |
Beta Was this translation helpful? Give feedback.
-
We think ABCI is useful for consensus engines besides CometBFT. It would be nice if the headers pertaining to consensus could be customized! |
Beta Was this translation helpful? Give feedback.
-
Thanks for clarifying. I see what you mean. cc @adizere |
Beta Was this translation helpful? Give feedback.
-
This is a feature we would love to have as well. It would allow the sdk to work with different abci implementations. A proto any message could suffice here and may be cleaner than bytes but bytes would also suffice |
Beta Was this translation helpful? Give feedback.
-
Just for a bit of context, because the name "consensus parameters" can be confusing. Consensus parameters are not necessarily parameters for the consensus operation. In fact most of the parameters used by the consensus protocol are not "consensus parameters". For instance, consensus timeouts are local parameters, set in the configuration file. And here lays the distinction: "consensus parameters" are global parameters, shared by all nodes in a network; changes in "consensus parameters" requires consensus, namely they are "proposed", included in a block, then updated by all nodes at (or from) the same height of the blockchain. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the clarification Daniel! I dug into the codebase and found that the naming around consensus params is quite subtle indeed. We have these three names that would be good to disambiguate: Consensus parametersDefined in Timeout parameters
Consensus parameters and Timeout parameters are not relevant for this discussion. Block.Header fields
Questions to further clarify & de-risk the scope
Finally, modifying/creating Headers seems to be relatively contained in the codebase (mostly in |
Beta Was this translation helpful? Give feedback.
-
Bumping this @adizere, we need dis one as well |
Beta Was this translation helpful? Give feedback.
-
Feature Request
Customizable parameters in the ABCI block header
Summary
Replace consenus-related parameters in the header with a generic blob byte array for increased customizability with Rollkit's various weird fork-choice schemes
Problem Definition
This increases separation between consensus and execution. We have some schemes where the block proposer does not matter and no signatures need to be verified, such as fork-choice based on ordering in a DA layer, or by gas consumed. We may also wish to add other things to the header, such as a ZK proof in a ZK rollup.
Proposal
The header currently looks like this:
We may wish to customize these fields and add more fields, one possibility is to replace it with a generic byte array and interpret serialized structs like so:
Beta Was this translation helpful? Give feedback.
All reactions