Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions aztec-up/test/amm_flow.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail

export SEQ_ENABLE_PROPOSER_PIPELINING=true

# Start local network and wait for port to open.
aztec start --local-network &
local_network_pid=$!
Expand Down
1 change: 0 additions & 1 deletion aztec-up/test/basic_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ echo

export LOG_LEVEL=silent
export PXE_PROVER=none
export SEQ_ENABLE_PROPOSER_PIPELINING=true

# Start local network and wait for port to open.
aztec start --local-network &
Expand Down
2 changes: 0 additions & 2 deletions aztec-up/test/bridge_and_claim.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail

export SEQ_ENABLE_PROPOSER_PIPELINING=true

# Start local network and wait for port to open.
aztec start --local-network &
local_network_pid=$!
Expand Down
1 change: 0 additions & 1 deletion docs/examples/ts/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ services:
WS_BLOCK_CHECK_INTERVAL_MS: 500
ARCHIVER_VIEM_POLLING_INTERVAL_MS: 500
P2P_MIN_TX_POOL_AGE_MS: 0
SEQ_ENABLE_PROPOSER_PIPELINING: 'true'
HARDWARE_CONCURRENCY: ${HARDWARE_CONCURRENCY:-}

docs-examples:
Expand Down
1 change: 0 additions & 1 deletion playground/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ services:
WS_BLOCK_CHECK_INTERVAL_MS: 50
ARCHIVER_VIEM_POLLING_INTERVAL_MS: 500
P2P_MIN_TX_POOL_AGE_MS: 0
SEQ_ENABLE_PROPOSER_PIPELINING: 'true'
healthcheck:
test: ['CMD', 'curl', '-fSs', 'http://127.0.0.1:8080/status']
interval: 3s
Expand Down
15 changes: 0 additions & 15 deletions yarn-project/aztec/src/local-network/local-network.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,21 +206,6 @@ export async function createLocalNetwork(config: Partial<LocalNetworkConfig> = {
SequencerState.SYNCHRONIZING,
]);
watcher?.setIsSequencerBuilding(() => !idleStates.has(sequencer.getState()));
// Under proposer pipelining the L1 publish for slot N happens during wall-clock slot N,
// but the proposer for slot N has already built the checkpoint during slot N-1 and is
// waiting for L1 to advance. We need to fast-forward L1 to wake that wait — and the wait
// we have to break first is `waitForValidParentCheckpointOnL1`, which blocks the
// checkpoint_proposal_job's background submission task until the archiver has synced past
// the build slot. That wait happens *before* `PUBLISHING_CHECKPOINT` is set, so a hook on
// that state transition would be circular (L1 has to advance before the state we'd use to
// advance L1 fires). The earliest pre-wait signal is `block-proposed`, which the sequencer
// emits once each block is built. In sandbox single-block-per-slot mode this is
// effectively "checkpoint built", and the watcher warp is harmless if a subsequent
// assembly/validation/parent-wait step aborts: L1 just sits one slot ahead, which the
// cascade absorbs.
if (watcher) {
sequencer.on('block-proposed', ({ slot }) => watcher!.setProposedTargetSlot(Number(slot)));
}
}

let epochTestSettler: EpochTestSettler | undefined;
Expand Down
32 changes: 0 additions & 32 deletions yarn-project/aztec/src/testing/anvil_test_watcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,6 @@ export class AnvilTestWatcher {
// Tracks when we first observed the current unfilled slot with pending txs (real wall time).
private unfilledSlotFirstSeen?: { slot: number; realTime: number };

// Latest target slot for which the proposer has built a block destined for L1 but which has
// not yet been committed. Set by the proposer-pipelining hook from `block-proposed` events so
// the watcher can advance L1 (and the injected date provider) to the target slot ahead of the
// publisher's `sendRequestsAt` sleep, instead of waiting a full wall-clock slot.
private proposedTargetSlot?: number;

constructor(
private cheatcodes: EthCheatCodes,
rollupAddress: EthAddress,
Expand Down Expand Up @@ -92,18 +86,6 @@ export class AnvilTestWatcher {
this.isSequencerBuilding = fn;
}

/**
* Records the target slot for which the proposer has built a block destined for L1. Used by
* the local-network watcher to fast-forward L1 (and the injected date provider) ahead of the
* pipelined publisher's `sendRequestsAt` sleep so it ends promptly instead of waiting a full
* wall-clock slot. Only ratchets up — late warps for stale slots are no-ops.
*/
setProposedTargetSlot(slot: number) {
if (this.proposedTargetSlot === undefined || slot > this.proposedTargetSlot) {
this.proposedTargetSlot = slot;
}
}

async start() {
if (this.filledRunningPromise) {
throw new Error('Watcher already watching for filled slot');
Expand Down Expand Up @@ -195,20 +177,6 @@ export class AnvilTestWatcher {
return;
}

// Pipelined-publish shortcut: if the proposer has built a block destined for a slot
// beyond the current L1 slot, fast-forward L1 to that slot's timestamp so the publisher's
// `sendRequestsAt(targetSlot)` sleep ends and the multicall mines inside the target slot.
// Without this, the publisher waits up to a full real-time slot for wall clock to catch up.
if (this.proposedTargetSlot !== undefined && this.proposedTargetSlot > currentSlot) {
const targetSlotTimestamp = Number(
await this.rollup.read.getTimestampForSlot([BigInt(this.proposedTargetSlot)]),
);
if (await this.warpToTimestamp(targetSlotTimestamp)) {
this.logger.info(`Warped L1 to target slot ${this.proposedTargetSlot} for pipelined publish`);
}
return;
}

// If there are pending txs and the sequencer missed them, warp quickly (after a 2s real-time debounce) so the
// sequencer can retry in the next slot. Without this, we'd have to wait a full real-time slot duration (~36s) for
// the dateProvider to catch up to the next slot timestamp. We skip the warp if the sequencer is actively building
Expand Down
1 change: 0 additions & 1 deletion yarn-project/end-to-end/scripts/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ services:
WS_BLOCK_CHECK_INTERVAL_MS: 500
ARCHIVER_VIEM_POLLING_INTERVAL_MS: 500
P2P_MIN_TX_POOL_AGE_MS: 0
SEQ_ENABLE_PROPOSER_PIPELINING: 'true'
HARDWARE_CONCURRENCY: ${HARDWARE_CONCURRENCY:-}

end-to-end:
Expand Down
Loading