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

feat(sequencer)!: update to ABCI v0.38 #831

Merged
merged 55 commits into from
Apr 17, 2024
Merged

feat(sequencer)!: update to ABCI v0.38 #831

merged 55 commits into from
Apr 17, 2024

Conversation

noot
Copy link
Collaborator

@noot noot commented Mar 18, 2024

Summary

updates the sequencer app to use ABCI v0.38, which replaces begin_block/deliver_tx/end_block with one call, finalize_block.

relevant penumbra PRs:

Background

this was inevitable, also it cleans up the block execution flow inside the sequencer application. (removed processed_txs and current_sequencer_block_builder from the app)

Changes

  • implement finalize_block; for the most part, I left the begin_block/deliver_tx/end_block as they are but called them inside finalize_block
  • however the block execution flow is cleaned up as we no longer need to track how many txs have been delivered (for the commitments) and we can construct the SequencerBlock at the end of finalize_block without needing to track things between calls

Testing

unit tests

ran it with cometbft release v0.38.6

Breaking Changelist

  • the sequencer app will now only work with a cometbft version that supports ABCI v0.38

Related Issues

closes #679

@github-actions github-actions bot added the sequencer pertaining to the astria-sequencer crate label Mar 18, 2024
@noot noot marked this pull request as ready for review April 11, 2024 23:53
Copy link
Contributor

@Fraser999 Fraser999 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blockers, but a few questions/suggestions/nitpicks.

crates/astria-sequencer/src/service/consensus.rs Outdated Show resolved Hide resolved
crates/astria-sequencer/src/app.rs Show resolved Hide resolved
crates/astria-sequencer/src/app.rs Outdated Show resolved Hide resolved
crates/astria-sequencer/src/app.rs Outdated Show resolved Hide resolved
crates/astria-sequencer/src/app.rs Outdated Show resolved Hide resolved
crates/astria-sequencer/src/app.rs Show resolved Hide resolved
crates/astria-sequencer/src/app.rs Outdated Show resolved Hide resolved
Copy link
Member

@SuperFluffy SuperFluffy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just comments re issues for tracking the next penumbra release && populating AppHash with already available data.

penumbra-ibc = { git = "https://github.com/penumbra-zone/penumbra.git", tag = "v0.69.1", default-features = false }
penumbra-proto = { git = "https://github.com/penumbra-zone/penumbra.git", tag = "v0.69.1" }
penumbra-tower-trace = { git = "https://github.com/penumbra-zone/penumbra.git", tag = "v0.69.1" }
# update once https://github.com/penumbra-zone/penumbra/commit/8b06546af43bf073fd99f3f9d82b8afb51872489 makes it into a release
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's have a tracking issue for this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tower-actor = "0.1.0"
cnidarium = { git = "https://github.com/penumbra-zone/penumbra.git", tag = "v0.69.1" }
cnidarium-component = { git = "https://github.com/penumbra-zone/penumbra.git", tag = "v0.69.1" }
cnidarium = { git = "https://github.com/penumbra-zone/penumbra.git", rev = "8b06546af43bf073fd99f3f9d82b8afb51872489" }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as for the penumbra deps, right? Let's add this to a tracking issue

crates/astria-sequencer/src/app.rs Show resolved Hide resolved
evidence_hash: Some(Hash::default()), // unused
height: finalize_block.height,
last_block_id: None, // unused
last_commit_hash: Some(Hash::default()), // unused
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turns out, this is just: Some(Hash::default()) -> Some(Hash::None)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes :)

@noot noot requested a review from a team as a code owner April 17, 2024 00:40
Base automatically changed from noot/proto-updates-for-038 to main April 17, 2024 01:50
@github-actions github-actions bot added conductor pertaining to the astria-conductor crate proto pertaining to the Astria Protobuf spec sequencer-relayer pertaining to the astria-sequencer-relayer crate labels Apr 17, 2024
@noot noot enabled auto-merge April 17, 2024 02:36
@noot noot requested a review from a team as a code owner April 17, 2024 02:45
@github-actions github-actions bot added the cd label Apr 17, 2024
Copy link
Member

@joroshiba joroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

infra approval for charts

@noot noot added this pull request to the merge queue Apr 17, 2024
Merged via the queue into main with commit 1684774 Apr 17, 2024
36 checks passed
@noot noot deleted the noot/sequencer-0.38 branch April 17, 2024 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cd conductor pertaining to the astria-conductor crate proto pertaining to the Astria Protobuf spec sequencer pertaining to the astria-sequencer crate sequencer-relayer pertaining to the astria-sequencer-relayer crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

sequencer: update to cometbft 0.38, utilize FinalizeBlock, cache execution.
4 participants