-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ABCI++ Prepare/Process Proposal #9053
Comments
What's the new (?) / current (?) plan around vote extensions? We were planning around the previous (?) plan to have 0.36 include all of ABCI++, including vote extensions -- is that still happening? There are references to vote extensions in some of the component issues but I'm not sure what the plan is. |
I think this should be part of the Finalize Block work |
Hey @hdevalence the engineering team is no longer in charge of this decision, I think someone form the Tendermint Council should respond. I think they have a plan for the release. cc'ing the council members: @alexanderbez @ValarDragon @zmanian @milosevic @xla @melekes @liamsi |
We can do it both ways (moving the Thinking about your comment, I realize that, if it can be done as part of |
Looking at the issue here, I'm seeing the |
@williambanfield the purpose is to methodically reuse the work we did for v0.36.x. I'm not willing to re-implement ABCI++ from scratch again. And the fact is that the diffs we worked on in v0.36.x (the famous "synchronize" tasks that you and @thanethomson worked on), which are the backbone of the v0.36.x implementation, do depend on these earlier diffs. So bringing these first looks to me like the path of least resistance. And we can leverage (with limitations) git's 3-way merge to make sure we don't forget anything, we leverage all the problems we found/fixed, all the reviews we carried out, etc, on v0.36.x. |
@sergio-mena Should we include the subset of changes from #8216 that affect |
@williambanfield you're totally right. I initially left #8216 out of this tracking branch since I only remembered the changes in |
The work to update to Enums ended up being a no-op at this point in time. The original PR added the following Enums:
No implementation was needed for any of these for the following reasons: |
Closing as all tasks are marked as done now |
In this work, we effectively need to rebuild ABCI++ (currently on the v0.36.x branch) on a branch off of v0.34.x, starting just with ABCI++ Prepare/Process Proposal.
The remainder of ABCI++ will be released in subsequent releases.
Proposed Path to Done. Summary
The main idea behind this plan is to proceed in the same way we did for v0.36.x, represented in ABCI++ project board.
The main differences will be:
The work is structured into two main parts (further described below):
(1) and (2) can mostly proceed in parallel.
N.B.: Let’s manage the protobufs the right way this time 😊 → They should evolve with the code
Proposed Path to Done. Details
(1) Preliminary Work
We could have two threads here, but as all these tasks serialized are shorter than the critical path in "Core Feature Work", there's no point
Fix UTs on v0.34.x branch (or on new main) [Estimation: 1 day]feature/abci++ppp
[Estimation: 0 days]feature/abci++ppp
branch [Estimation: 0.5 days]v0.36.x
to ABCI++ feature branch #9271(2) Core feature work
We have three threads that can proceed in parallel:
(*) Only when PrepareProposal and ProcessProposal are done, can we proceed with the fourth part:
PrepareProposal
ModifiedTxStatus
from the spec and the code #8210ProcessProposal
ProcessProposal
PR #7752Final adjustments
Most of these tasks can be done in parallel, but they are quite short.
Move app_hash from Commit to EndBlock: follow abci: Moveapp_hash
parameter fromCommit
toFinalizeBlock
#8664PrepareProposal
andProcessProposal
parts [Estimation: 1 day]PrepareProposal
/ProcessProposal
: Comparetypes.proto
infeature/abci++ppp
andv0.36.x
#9221) Compare the status of abci'stypes.proto
infeature/abci++ppp
andv0.36.x
and make sure no changes are related toPrepareProposal
/ProcessProposal
At this point, external teams should be able to start integration of
PrepareProposal
/ProcessProposal
Remove old methods. See what makes sense out of Remove obsolete abci methods, no longer called by ABCI++ Tendermint #8633PrepareProposal
command to cli #8656), ProcessProposal (follow abci-cli: Addprocess_proposal
command to abci-cli #8901) [Estimation: 1.5 days]Spec and doc work
feature/abci++ppp
branch and remove references to unused features- Vote extensions, FinalizeBlock (type of work similar to Remove references to vote extensions from Tendermint spec before releasing v0.36 #7745)
Commit
to the ABCI++ spec, and other late modifications #8796)Restoredata
field inCommit
Misbehaviour
toByzantineValidators
Evidence
toMisbheaviour
Review ADRs and RFCs that make sense onfeature/abci++ppp
branchThe text was updated successfully, but these errors were encountered: