Skip to content
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++ vote extensions & FinalizeBlock #9396

Closed
14 of 17 tasks
Tracked by #9428 ...
sergio-mena opened this issue Sep 8, 2022 · 0 comments
Closed
14 of 17 tasks
Tracked by #9428 ...

ABCI++ vote extensions & FinalizeBlock #9396

sergio-mena opened this issue Sep 8, 2022 · 0 comments
Assignees
Labels
C:abci Component: Application Blockchain Interface E:medium Estimated to take up to a month or two feature Feature work that definitely changes system behavior stale for use by stalebot

Comments

@sergio-mena
Copy link
Contributor

sergio-mena commented Sep 8, 2022

This is the continuation of the work started in #9053: backport ABCI++ implementation, which lives in the v0.36.x branch.
Once this tracking issue is completed, the whole ABCI++ interface should be ready for QA process, and then release.

Proposed Path to Done. Summary

The main idea behind this plan is to proceed in the same way as #9053.
The main approach is:

  • We will "follow" our work on v0.36.x. By "following a PR", I mean looking at that PR (similar work done for v0.36.x) and copying over only what makes sense. "git cherry-pick" turned out to be our best friend for "following" PRs in ABCI++ Prepare/Process Proposal #9053
  • We will be considering only commits related to vote extensions and FinalizeBlock
  • We will be skipping PrepareProposal/ProcessProposal related commits (as they are already in main via ABCI++ Prepare/Process Proposal #9053)

The work is structured very similarly to #9053. It consists of two main parts (further described below):

  • (1) Preliminary work [Estimation of critical path: XXX days (with 1 thread)]
  • (2) Core feature work [Estimation of critical path: XXX days (with 5 threads)]

(1) and (2) can mostly proceed in parallel.

protobufs will be managed as in v0.37.x → They will 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

  • Create feature branch: feature/abci++vef [Estimation: 0 days]
  • Restore CI on feature/abci++vef branch [Estimation: 0.5 days]
  • e2e tests: port any improvements not included in the core work section (git diff HEAD..v0.36.x -- test/e2e) [Estimation: 2 days] (tracking: e2e: add contexts and e2e generator tests #9426)

(2) Core feature work

We have three threads that can proceed in parallel:

  • Vote extensions (*) [Estimation: XXX days]
  • FinalizeBlock (*) [Estimation: XXX days]
  • Spec and doc work [Estimation: XXX days]

(*) Only when vote extensions and FinalizeBlock are done, can we proceed with the fourth part:

  • Final adjustments [Estimation: XXX days, assuming no parallel work done]
    • tasks here could be further parallelized

Vote Extensions

FinalizeBlock

Final adjustments

Most of these tasks can be done in parallel, but they are quite short.

Spec and doc work

Low risk, can proceed completely in parallel with the rest

@sergio-mena sergio-mena self-assigned this Sep 8, 2022
@sergio-mena sergio-mena added C:abci Component: Application Blockchain Interface E:medium Estimated to take up to a month or two feature Feature work that definitely changes system behavior backlog-priority A priority issue in the backlog labels Sep 8, 2022
@cmwaters cmwaters pinned this issue Sep 13, 2022
@cmwaters cmwaters self-assigned this Sep 13, 2022
@thanethomson thanethomson mentioned this issue Sep 13, 2022
19 tasks
@thanethomson thanethomson removed the backlog-priority A priority issue in the backlog label Oct 7, 2022
@thanethomson thanethomson added the priority A high-priority, high-level item to be shown on the priorities project board label Oct 17, 2022
@thanethomson thanethomson removed the priority A high-priority, high-level item to be shown on the priorities project board label Dec 22, 2022
@github-actions github-actions bot added the stale for use by stalebot label Mar 4, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:abci Component: Application Blockchain Interface E:medium Estimated to take up to a month or two feature Feature work that definitely changes system behavior stale for use by stalebot
Projects
Status: Done/Merged
Development

No branches or pull requests

5 participants
@thanethomson @sergio-mena @cmwaters and others