Skip to content

refactor(bb): batch commit wire polys#17117

Merged
ludamad merged 27 commits intomerge-train/barretenbergfrom
ad/batch-commit
Sep 24, 2025
Merged

refactor(bb): batch commit wire polys#17117
ludamad merged 27 commits intomerge-train/barretenbergfrom
ad/batch-commit

Conversation

@ludamad
Copy link
Collaborator

@ludamad ludamad commented Sep 17, 2025

Optimizes performance, trading memory. Noticed 100s of milliseconds off for bb, second+ off for AVM bulk test (with potential for more, I was conservative).

The reason this improves performance is that the asymptotics of pippenger go down as we have multiple threads. Batching alleviates that.

Bundled:

  • remove stale issue reference
  • add BB_LIKELY to asserts to try to guide compiler optimization


{
BB_BENCH_NAME("spinning main thread");
// BB_BENCH_NAME("spinning main thread");
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

these can impede benching breakdowns rn

@ludamad ludamad changed the title wip(bb): batch commit wire polys refactor(bb): batch commit wire polys Sep 18, 2025
@ludamad ludamad added the ci-full Run all master checks. label Sep 18, 2025
Copy link
Contributor

@ledwards2225 ledwards2225 left a comment

Choose a reason for hiding this comment

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

Nice - thanks for doing this. Left a few small requests


namespace bb::avm2 {

// TODO(AD): @facundo - tune this value
Copy link
Contributor

Choose a reason for hiding this comment

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

@ludamad ludamad requested a review from charlielye as a code owner September 24, 2025 14:17
@ludamad ludamad merged commit f8eb2f2 into merge-train/barretenberg Sep 24, 2025
6 checks passed
@ludamad ludamad deleted the ad/batch-commit branch September 24, 2025 16:27
github-merge-queue bot pushed a commit that referenced this pull request Sep 24, 2025
BEGIN_COMMIT_OVERRIDE
refactor(bb): batch commit wire polys (#17117)
END_COMMIT_OVERRIDE
mralj pushed a commit that referenced this pull request Oct 13, 2025
alexghr pushed a commit that referenced this pull request Nov 5, 2025
# v2.0.3..v2.1.0-rc.1 Notes

## Significant L1 Changes


### 1.  **Rollup Contract Interface Changes**

- **`propose()`  function signature changed**: Now requires an
additional  `_attestationsAndSignersSignature`  parameter
- **`validateHeaderWithAttestations()`  function signature changed**:
Also requires the new signature parameter
- This affects any code that directly calls these functions on the
rollup contract

### 2.  **New Required Configuration Parameters**

Several new configuration parameters are now required for deployment:

- `localEjectionThreshold`: Stricter ejection threshold local to
specific rollup (default: 196,000 tokens)
- `slashingDisableDuration`: How long slashing can be disabled in
seconds (default: 5 days)

### 3.  **GSE Contract Changes**

- **New function**:  `setProofOfPossessionGasLimit()`  \- allows
governance to adjust gas limits for BLS proof validation
- **Gas-limited proof validation**: Proof of possession validation now
has configurable gas limits (default: 200,000 gas)

### 4.  **Validator Queue Management Changes**

- **`flushEntryQueue()`  behavior changed**: Now has an overload
accepting a  `_toAdd`  parameter to limit validator additions
- **New validator flush accounting**: System now tracks available
validator flushes per epoch

Significant Non-Breaking Changes
--------------------------------

### 1.  **Enhanced Slashing Controls**

- **Temporary slashing disable**: Vetoers can now temporarily disable
slashing for the configured duration
- **New function**:  `setSlashingEnabled(bool)`  for controlling
slashing state

### 2.  **Improved Validator Selection**

- **Configurable lag period**: Validator sampling now uses configurable
epoch lag instead of fixed 2-epoch delay
- **Better bootstrapping**: Enhanced validator set bootstrapping with
improved flush size calculations

### 3.  **Updated Default Values**

- **Coin issuer rate**: Updated to  `25,000,000,000 tokens / year` 
(approximately 793 tokens per second)
- **Local ejection threshold**: Set to 196,000 tokens (stricter than
global 50,000 threshold)

## Significant Node Changes

### Fixes

- Rollback world state on failed block sync – Prevents bad state
persistence by rolling back uncommitted data if block sync fails.
[(#17158)](github.com//pull/17158)
- Early rejection of duplicate nullifiers – Detects and rejects
transactions with duplicate nullifiers before inclusion.
[(#17157)](github.com//pull/17157)
- Watcher pruning fix – Watcher now re-executes only blocks from the
relevant pruned epoch, avoiding cross-epoch slashing issues.
[(#17145)](github.com//pull/17145)
- Improved proposal validation – Fully validates proposal headers
(including archive root derivation) and blocks attempts to reuse
existing block numbers.
[(#17144)](github.com//pull/17144)
- L1 to L2 message sync reliability – Waits for rollup to reach the
inbox block before marking L1→L2 messages as synced; adds helpers to
track message readiness.
[(#17132)](github.com//pull/17132)
- Slashing round recovery – Executes pending slashing rounds skipped
during the first executable round; adds slashExecuteRoundsLookBack to
control re-check depth.
[(#17125)](github.com//pull/17125)
- Broker restart on rollup change – Ensures broker restarts when rollup
chain changes to stay synchronized.
[(#17120)](github.com//pull/17120)
- Remote signer readiness check – Verifies that a remote signer is
available before use.
[(#17119)](github.com//pull/17119)
- Orchestrator and agent retry improvements – Makes connections to the
broker more robust under transient failures.
[(#17117)](github.com//pull/17117)
- Telemetry cleanup – Fixes incorrect or spammy telemetry warnings.
[(#17155)](github.com//pull/17155)

### Features

- Network configuration support – Introduces centralized configuration
for network parameters.
[(#17113)](github.com//pull/17113)


## Full Changelog

You can generate this yourself with `./scripts/commits
v2.0.3..v2.1.0-rc.1 1000 -m -g`.

#### Fixes

- fix: use archiveAt(0) instead of getBlock to get genesis archive tree
- backport v2
([#17447](#17447)) —
spypsy, 5 days ago
- fix: add keystoreDirectory option to sequencer
([#17265](#17265)) —
spypsy, 13 days ago
- fix: testnet archival node - v2
([#17142](#17142)) —
Aztec Bot, 3 weeks ago

#### Chores

- chore: bump minor version — Mitch, 4 days ago —
[dbc243f](dbc243f)
- chore: backport dependabot deps
([#17463](#17463)) —
Aztec Bot, 5 days ago
- chore: Backport slack alerts
([#17460](#17460)) —
PhilWindle, 5 days ago
- chore(backport-to-v2): chore: New salt for staging-ignition (#17453)
([#17453](#17453)) —
Aztec Bot, 5 days ago
- chore(backport-to-v2): fix: improve libp2p connection limits for
network discovery (#17425)
([#17425](#17425)) —
Aztec Bot, 5 days ago
- chore(backport-to-v2): feat: add flushing rewarder (#17335)
([#17335](#17335)) —
Aztec Bot, 6 days ago
- chore(backport-to-v2): feat: add date gated relayer (#17323)
([#17323](#17323)) —
Aztec Bot, 6 days ago
- chore(backport-to-v2): feat: support using existing ERC20 token for
fee and staking (#17413)
([#17413](#17413)) —
Aztec Bot, 6 days ago
- chore: Delete contract addresses from chain l2 config
([#17430](#17430)) —
PhilWindle, 6 days ago
- chore: More updated staging public config
([#17364](#17364)) —
PhilWindle, 7 days ago
- chore(backport-to-V2): L1 backports
([#17365](#17365)) —
Lasse Herskind, 7 days ago
- chore: Ensure DB map sizes are configured for networks
([#17383](#17383)) —
PhilWindle, 7 days ago
- chore: Backport of fixes into v2
([#17206](#17206)) —
PhilWindle, 8 days ago
- chore: update zkpassport version
([#17339](#17339)) —
saleel, 8 days ago
- chore: Backport of workflow fix
([#17333](#17333)) —
PhilWindle, 11 days ago
- chore: Streamline staging deployments
([#17328](#17328)) —
PhilWindle, 11 days ago
- chore(backport-to-v2): fix: avm gracefully handles shifts (shl) with
huge bit sizes (#17171)
([#17171](#17171)) —
Aztec Bot, 12 days ago
- chore(backport-to-v2): chore: remove unconstrained generics from trait
impls (#17075)
([#17075](#17075)) —
Aztec Bot, 12 days ago
- chore: Backport deployment refactor
([#17280](#17280)) —
PhilWindle, 12 days ago
- chore(backport-to-v2): fix(docs): Update Counter contract tutorial
imports and remove unnecessary sections (#17241)
([#17241](#17241)) —
Aztec Bot, 13 days ago
- chore: remove ACCEPT_DISABLED_AVM_VK_TREE_ROOT
([#17238](#17238)) —
Alex Gherghisan, 13 days ago
- chore: remove bad rollup-version default
([#17223](#17223)) —
Alex Gherghisan, 2 weeks ago
- chore(docs): node docs to v2
([#17205](#17205)) —
esau, 2 weeks ago
- chore(backport-to-v2): chore(avm)!: Fix a misleading log in recursive
verifier related to public input (#17184)
([#17184](#17184)) —
Aztec Bot, 2 weeks ago
- chore: Backport of ignition fix attempt 2
([#17201](#17201)) —
PhilWindle, 2 weeks ago
- chore: turn on testnet compat test
([#17195](#17195)) —
Alex Gherghisan, 2 weeks ago
- chore: Backport fix to staging-ignition to v2
([#17159](#17159)) —
PhilWindle, 3 weeks ago
- chore: kubectl
([#17140](#17140)) —
Alex Gherghisan, 3 weeks ago

#### Other

- backport dependabots p2
([#17488](#17488)) —
mralj, 4 days ago

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
ludamad added a commit that referenced this pull request Dec 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-full Run all master checks.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants