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

fix: handle sequencer building block mid-synch #11735

Merged
merged 4 commits into from
Feb 5, 2025
Merged

Conversation

alexghr
Copy link
Contributor

@alexghr alexghr commented Feb 4, 2025

This PR fixes a race condition in the sequencer that would happen in e2e tests (or sandbox, basically anywhere we warp time because of auto mine) where the sequencer would not handle a block being synchronized in the middle of block production.

This PR merges getting the chain tip with checking if its components are synchronized. This way it at least will fail at canProposeAtTime since the provided archive might be old.

Thanks @spalladino and @LHerskind for help debugging this one :)

@alexghr alexghr marked this pull request as draft February 5, 2025 08:37
@alexghr alexghr marked this pull request as ready for review February 5, 2025 09:49
@alexghr alexghr force-pushed the ag/race-in-seq-synch branch from 00905c5 to 8a3ec06 Compare February 5, 2025 09:53
@alexghr alexghr force-pushed the ag/race-in-seq-synch branch from 8a3ec06 to ac43e51 Compare February 5, 2025 10:13
Copy link
Contributor

github-actions bot commented Feb 5, 2025

Changes to public function bytecode sizes

Generated at commit: ca38846cd95def1cdfeed03c7f539f4838fbade8, compared to commit: 2fd08babea610f97d63adcea5630cfd3065fd3a8

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch -4 ✅ -0.01%
AvmTest::bulk_testing -4 ✅ -0.02%
TokenBridge::public_dispatch -4 ✅ -0.02%
Test::consume_message_from_arbitrary_sender_public -4 ✅ -0.05%
AppSubscription::public_dispatch -4 ✅ -0.10%
AppSubscription::constructor -4 ✅ -0.13%
AvmTest::variable_base_msm -16 ✅ -6.96%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch 69,677 (-4) -0.01%
AvmTest::bulk_testing 22,134 (-4) -0.02%
TokenBridge::public_dispatch 21,090 (-4) -0.02%
Test::consume_message_from_arbitrary_sender_public 7,776 (-4) -0.05%
AppSubscription::public_dispatch 4,206 (-4) -0.10%
AppSubscription::constructor 3,062 (-4) -0.13%
AvmTest::variable_base_msm 214 (-16) -6.96%

Copy link
Contributor

github-actions bot commented Feb 5, 2025

Changes to circuit sizes

Generated at commit: ca38846cd95def1cdfeed03c7f539f4838fbade8, compared to commit: 2fd08babea610f97d63adcea5630cfd3065fd3a8

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base_private +20 ❌ +0.01% +19 ❌ +0.00%
rollup_base_public +20 ❌ +0.01% +20 ❌ +0.00%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base_private 137,856 (+20) +0.01% 1,775,166 (+19) +0.00%
rollup_base_public 357,075 (+20) +0.01% 3,167,366 (+20) +0.00%

@alexghr alexghr enabled auto-merge (squash) February 5, 2025 16:41
@alexghr alexghr merged commit 435a0af into master Feb 5, 2025
52 checks passed
@alexghr alexghr deleted the ag/race-in-seq-synch branch February 5, 2025 16:52
sklppy88 pushed a commit that referenced this pull request Feb 6, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.75.0</summary>

##
[0.75.0](aztec-package-v0.74.0...aztec-package-v0.75.0)
(2025-02-06)


### Miscellaneous

* Playground name change
([#11720](#11720))
([c5cbf65](c5cbf65))
</details>

<details><summary>barretenberg.js: 0.75.0</summary>

##
[0.75.0](barretenberg.js-v0.74.0...barretenberg.js-v0.75.0)
(2025-02-06)


### Miscellaneous

* Better bundling for bb.js, remove aztec.js bundling
([#11761](#11761))
([8cc3f0a](8cc3f0a))
* Playground name change
([#11720](#11720))
([c5cbf65](c5cbf65))
</details>

<details><summary>aztec-packages: 0.75.0</summary>

##
[0.75.0](aztec-packages-v0.74.0...aztec-packages-v0.75.0)
(2025-02-06)


### ⚠ BREAKING CHANGES

* introduce `WithHash<T>` + use it in `PublicImmutable`
([#8022](#8022))
* leonidas library
([#11596](#11596))

### Features

* Allow resolved types in constructors
(noir-lang/noir#7223)
([b60a39d](b60a39d))
* Allow specifying multiple patterns in nargo test
(noir-lang/noir#7186)
([b60a39d](b60a39d))
* Contracts deployed in txe should emit deployment nullifier
automatically
([#11708](#11708))
([20f5653](20f5653))
* **docs:** Applying structure feedback + adding nodes docs
([#10976](#10976))
([2fd08ba](2fd08ba))
* **docs:** Inspiration / ideas page
([#11755](#11755))
([0b012f1](0b012f1))
* **experimental:** Implement enum tag constants
(noir-lang/noir#7183)
([b60a39d](b60a39d))
* **experimental:** Implement zeroed for enums
(noir-lang/noir#7252)
([b60a39d](b60a39d))
* **experimental:** Parse match expressions
(noir-lang/noir#7243)
([b60a39d](b60a39d))
* **experimental:** Support enums in comptime code
(noir-lang/noir#7194)
([b60a39d](b60a39d))
* Gen public base prover.toml
([#11757](#11757))
([1fa89da](1fa89da))
* Introduce `WithHash&lt;T&gt;` + use it in `PublicImmutable`
([#8022](#8022))
([6c15604](6c15604))
* K-shifts
([#11663](#11663))
([511abe5](511abe5))
* Leonidas library
([#11596](#11596))
([e8cfed7](e8cfed7))
* **LSP:** Suggest enum variants without parameters
(noir-lang/noir#7261)
([b60a39d](b60a39d))
* **optimization:** Add purity analysis to SSA
(noir-lang/noir#7197)
([b60a39d](b60a39d))
* Report wrong proof length in the verifier contract
([#11728](#11728))
([1a83cd2](1a83cd2))
* Simplify subtraction from self to return zero
(noir-lang/noir#7189)
([b60a39d](b60a39d))
* Sync from aztec-packages (noir-lang/noir#7241)
([b60a39d](b60a39d))


### Bug Fixes

* Add missing `is_empty` check for enums
(noir-lang/noir#7257)
([b60a39d](b60a39d))
* Avoid type error when calling something with a type alias of a
function (noir-lang/noir#7239)
([b60a39d](b60a39d))
* **brillig:** Globals entry point reachability analysis
(noir-lang/noir#7188)
([b60a39d](b60a39d))
* Contracts with no private / public functions should not fail to
generate a contract artifact
([#11744](#11744))
([672171c](672171c))
* Correct reversed callstacks
(noir-lang/noir#7212)
([b60a39d](b60a39d))
* Deflake prover node epoch proof quote test
([#11773](#11773))
([04e1061](04e1061))
* **docs:** Fix docs previews
([#11736](#11736))
([255b3d8](255b3d8))
* Handle sequencer building block mid-synch
([#11735](#11735))
([435a0af](435a0af))
* Prevent panic within `remove_possibly_mutated_cached_make_arrays`
(noir-lang/noir#7264)
([b60a39d](b60a39d))
* **ssa:** Only attempt to inline constant Brillig calls for entry
points (noir-lang/noir#7260)
([b60a39d](b60a39d))
* **ssa:** Use number of SSA instructions for the Brillig unrolling
bytecode size limit (noir-lang/noir#7242)
([b60a39d](b60a39d))
* **unrolling:** Fetch original bytecode size from the original function
(noir-lang/noir#7253)
([b60a39d](b60a39d))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](#11768))
([fafe3ba](fafe3ba))
* **avm:** Full row cleanup
([#11767](#11767))
([6145cd0](6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](#11762))
([b003567](b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](#11761))
([8cc3f0a](8cc3f0a))
* Build docs in the merge queue
(noir-lang/noir#7218)
([b60a39d](b60a39d))
* Bump gates diff (noir-lang/noir#7245)
([b60a39d](b60a39d))
* Change log level for block proposal
([#11734](#11734))
([29ee9aa](29ee9aa))
* **ci:** Add test for global vars entry points regression
(noir-lang/noir#7209)
([b60a39d](b60a39d))
* Clarify to_radix docs examples
(noir-lang/noir#7230)
([b60a39d](b60a39d))
* **docs:** Moving references to noir-starter to awesome-noir
(noir-lang/noir#7203)
([b60a39d](b60a39d))
* Early check type equality in try_unify
(noir-lang/noir#7263)
([b60a39d](b60a39d))
* Exclude dependency fetching time from benchmarks
(noir-lang/noir#7210)
([b60a39d](b60a39d))
* Fix struct example (noir-lang/noir#7198)
([b60a39d](b60a39d))
* More scalability for our metrics
([#11732](#11732))
([52bbf14](52bbf14))
* Playground name change
([#11720](#11720))
([c5cbf65](c5cbf65))
* Re-enable p2p test
([#11706](#11706))
([652c251](652c251)),
closes
[#10737](#10737)
* Remove stale zk constants and methods
([#11715](#11715))
([7a2870f](7a2870f))
* Replace relative paths to noir-protocol-circuits
([aabab34](aabab34))
* Replace relative paths to noir-protocol-circuits
([0720d18](0720d18))
* Request txs in prover-node after each block finishes
([#11749](#11749))
([61e4eee](61e4eee))
* Rework defunctionalize pass to not rely on DFG bugs
(noir-lang/noir#7222)
([b60a39d](b60a39d))
* Sandbox lower sequencer log level
([#11742](#11742))
([7b30758](7b30758)),
closes
[#11677](#11677)
* **spartan:** Making the spartan script add the coinbase address
([#11235](#11235))
([b97ff0d](b97ff0d))
* **ssa:** Flip the SSA Brillig constraint check to off by default
(noir-lang/noir#7211)
([b60a39d](b60a39d))
* Start tracking time to run critical library tests
(noir-lang/noir#7221)
([b60a39d](b60a39d))
* Update docs to use devcontainer feature
(noir-lang/noir#7206)
([b60a39d](b60a39d))
* Use batch p2p reqresp for requesting txs in prover node
([#11741](#11741))
([df9e4ec](df9e4ec))
</details>

<details><summary>barretenberg: 0.75.0</summary>

##
[0.75.0](barretenberg-v0.74.0...barretenberg-v0.75.0)
(2025-02-06)


### Features

* K-shifts
([#11663](#11663))
([511abe5](511abe5))
* Report wrong proof length in the verifier contract
([#11728](#11728))
([1a83cd2](1a83cd2))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](#11768))
([fafe3ba](fafe3ba))
* **avm:** Full row cleanup
([#11767](#11767))
([6145cd0](6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](#11762))
([b003567](b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](#11761))
([8cc3f0a](8cc3f0a))
* Remove stale zk constants and methods
([#11715](#11715))
([7a2870f](7a2870f))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Feb 7, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.75.0</summary>

##
[0.75.0](AztecProtocol/aztec-packages@aztec-package-v0.74.0...aztec-package-v0.75.0)
(2025-02-06)


### Miscellaneous

* Playground name change
([#11720](AztecProtocol/aztec-packages#11720))
([c5cbf65](AztecProtocol/aztec-packages@c5cbf65))
</details>

<details><summary>barretenberg.js: 0.75.0</summary>

##
[0.75.0](AztecProtocol/aztec-packages@barretenberg.js-v0.74.0...barretenberg.js-v0.75.0)
(2025-02-06)


### Miscellaneous

* Better bundling for bb.js, remove aztec.js bundling
([#11761](AztecProtocol/aztec-packages#11761))
([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a))
* Playground name change
([#11720](AztecProtocol/aztec-packages#11720))
([c5cbf65](AztecProtocol/aztec-packages@c5cbf65))
</details>

<details><summary>aztec-packages: 0.75.0</summary>

##
[0.75.0](AztecProtocol/aztec-packages@aztec-packages-v0.74.0...aztec-packages-v0.75.0)
(2025-02-06)


### ⚠ BREAKING CHANGES

* introduce `WithHash<T>` + use it in `PublicImmutable`
([#8022](AztecProtocol/aztec-packages#8022))
* leonidas library
([#11596](AztecProtocol/aztec-packages#11596))

### Features

* Allow resolved types in constructors
(noir-lang/noir#7223)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Allow specifying multiple patterns in nargo test
(noir-lang/noir#7186)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Contracts deployed in txe should emit deployment nullifier
automatically
([#11708](AztecProtocol/aztec-packages#11708))
([20f5653](AztecProtocol/aztec-packages@20f5653))
* **docs:** Applying structure feedback + adding nodes docs
([#10976](AztecProtocol/aztec-packages#10976))
([2fd08ba](AztecProtocol/aztec-packages@2fd08ba))
* **docs:** Inspiration / ideas page
([#11755](AztecProtocol/aztec-packages#11755))
([0b012f1](AztecProtocol/aztec-packages@0b012f1))
* **experimental:** Implement enum tag constants
(noir-lang/noir#7183)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **experimental:** Implement zeroed for enums
(noir-lang/noir#7252)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **experimental:** Parse match expressions
(noir-lang/noir#7243)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **experimental:** Support enums in comptime code
(noir-lang/noir#7194)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Gen public base prover.toml
([#11757](AztecProtocol/aztec-packages#11757))
([1fa89da](AztecProtocol/aztec-packages@1fa89da))
* Introduce `WithHash&lt;T&gt;` + use it in `PublicImmutable`
([#8022](AztecProtocol/aztec-packages#8022))
([6c15604](AztecProtocol/aztec-packages@6c15604))
* K-shifts
([#11663](AztecProtocol/aztec-packages#11663))
([511abe5](AztecProtocol/aztec-packages@511abe5))
* Leonidas library
([#11596](AztecProtocol/aztec-packages#11596))
([e8cfed7](AztecProtocol/aztec-packages@e8cfed7))
* **LSP:** Suggest enum variants without parameters
(noir-lang/noir#7261)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **optimization:** Add purity analysis to SSA
(noir-lang/noir#7197)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Report wrong proof length in the verifier contract
([#11728](AztecProtocol/aztec-packages#11728))
([1a83cd2](AztecProtocol/aztec-packages@1a83cd2))
* Simplify subtraction from self to return zero
(noir-lang/noir#7189)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Sync from aztec-packages (noir-lang/noir#7241)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))


### Bug Fixes

* Add missing `is_empty` check for enums
(noir-lang/noir#7257)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Avoid type error when calling something with a type alias of a
function (noir-lang/noir#7239)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **brillig:** Globals entry point reachability analysis
(noir-lang/noir#7188)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Contracts with no private / public functions should not fail to
generate a contract artifact
([#11744](AztecProtocol/aztec-packages#11744))
([672171c](AztecProtocol/aztec-packages@672171c))
* Correct reversed callstacks
(noir-lang/noir#7212)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Deflake prover node epoch proof quote test
([#11773](AztecProtocol/aztec-packages#11773))
([04e1061](AztecProtocol/aztec-packages@04e1061))
* **docs:** Fix docs previews
([#11736](AztecProtocol/aztec-packages#11736))
([255b3d8](AztecProtocol/aztec-packages@255b3d8))
* Handle sequencer building block mid-synch
([#11735](AztecProtocol/aztec-packages#11735))
([435a0af](AztecProtocol/aztec-packages@435a0af))
* Prevent panic within `remove_possibly_mutated_cached_make_arrays`
(noir-lang/noir#7264)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **ssa:** Only attempt to inline constant Brillig calls for entry
points (noir-lang/noir#7260)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **ssa:** Use number of SSA instructions for the Brillig unrolling
bytecode size limit (noir-lang/noir#7242)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **unrolling:** Fetch original bytecode size from the original function
(noir-lang/noir#7253)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](AztecProtocol/aztec-packages#11768))
([fafe3ba](AztecProtocol/aztec-packages@fafe3ba))
* **avm:** Full row cleanup
([#11767](AztecProtocol/aztec-packages#11767))
([6145cd0](AztecProtocol/aztec-packages@6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](AztecProtocol/aztec-packages#11762))
([b003567](AztecProtocol/aztec-packages@b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](AztecProtocol/aztec-packages#11761))
([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a))
* Build docs in the merge queue
(noir-lang/noir#7218)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Bump gates diff (noir-lang/noir#7245)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Change log level for block proposal
([#11734](AztecProtocol/aztec-packages#11734))
([29ee9aa](AztecProtocol/aztec-packages@29ee9aa))
* **ci:** Add test for global vars entry points regression
(noir-lang/noir#7209)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Clarify to_radix docs examples
(noir-lang/noir#7230)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **docs:** Moving references to noir-starter to awesome-noir
(noir-lang/noir#7203)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Early check type equality in try_unify
(noir-lang/noir#7263)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Exclude dependency fetching time from benchmarks
(noir-lang/noir#7210)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Fix struct example (noir-lang/noir#7198)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* More scalability for our metrics
([#11732](AztecProtocol/aztec-packages#11732))
([52bbf14](AztecProtocol/aztec-packages@52bbf14))
* Playground name change
([#11720](AztecProtocol/aztec-packages#11720))
([c5cbf65](AztecProtocol/aztec-packages@c5cbf65))
* Re-enable p2p test
([#11706](AztecProtocol/aztec-packages#11706))
([652c251](AztecProtocol/aztec-packages@652c251)),
closes
[#10737](AztecProtocol/aztec-packages#10737)
* Remove stale zk constants and methods
([#11715](AztecProtocol/aztec-packages#11715))
([7a2870f](AztecProtocol/aztec-packages@7a2870f))
* Replace relative paths to noir-protocol-circuits
([aabab34](AztecProtocol/aztec-packages@aabab34))
* Replace relative paths to noir-protocol-circuits
([0720d18](AztecProtocol/aztec-packages@0720d18))
* Request txs in prover-node after each block finishes
([#11749](AztecProtocol/aztec-packages#11749))
([61e4eee](AztecProtocol/aztec-packages@61e4eee))
* Rework defunctionalize pass to not rely on DFG bugs
(noir-lang/noir#7222)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Sandbox lower sequencer log level
([#11742](AztecProtocol/aztec-packages#11742))
([7b30758](AztecProtocol/aztec-packages@7b30758)),
closes
[#11677](AztecProtocol/aztec-packages#11677)
* **spartan:** Making the spartan script add the coinbase address
([#11235](AztecProtocol/aztec-packages#11235))
([b97ff0d](AztecProtocol/aztec-packages@b97ff0d))
* **ssa:** Flip the SSA Brillig constraint check to off by default
(noir-lang/noir#7211)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Start tracking time to run critical library tests
(noir-lang/noir#7221)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Update docs to use devcontainer feature
(noir-lang/noir#7206)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Use batch p2p reqresp for requesting txs in prover node
([#11741](AztecProtocol/aztec-packages#11741))
([df9e4ec](AztecProtocol/aztec-packages@df9e4ec))
</details>

<details><summary>barretenberg: 0.75.0</summary>

##
[0.75.0](AztecProtocol/aztec-packages@barretenberg-v0.74.0...barretenberg-v0.75.0)
(2025-02-06)


### Features

* K-shifts
([#11663](AztecProtocol/aztec-packages#11663))
([511abe5](AztecProtocol/aztec-packages@511abe5))
* Report wrong proof length in the verifier contract
([#11728](AztecProtocol/aztec-packages#11728))
([1a83cd2](AztecProtocol/aztec-packages@1a83cd2))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](AztecProtocol/aztec-packages#11768))
([fafe3ba](AztecProtocol/aztec-packages@fafe3ba))
* **avm:** Full row cleanup
([#11767](AztecProtocol/aztec-packages#11767))
([6145cd0](AztecProtocol/aztec-packages@6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](AztecProtocol/aztec-packages#11762))
([b003567](AztecProtocol/aztec-packages@b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](AztecProtocol/aztec-packages#11761))
([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a))
* Remove stale zk constants and methods
([#11715](AztecProtocol/aztec-packages#11715))
([7a2870f](AztecProtocol/aztec-packages@7a2870f))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants