Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
566d7f5
refactor(p2p): merge FastTxCollection into TxCollection with sequenti…
fcarreiro May 13, 2026
a7a0d8c
refactor(publisher): bundle-level simulate; drop per-action enqueue s…
spalladino May 13, 2026
4b52402
Merge branch 'next' into merge-train/spartan
May 13, 2026
ad97697
Merge branch 'next' into merge-train/spartan
May 13, 2026
460a87e
refactor(stdlib): remove deprecated RevertCode/TxExecutionResult alia…
spalladino May 13, 2026
1eaca4b
Merge branch 'next' into merge-train/spartan
May 14, 2026
498b961
test(e2e): fix race in 'proposer invalidates multiple checkpoints' (#…
spalladino May 14, 2026
437eacb
fix: clean up old jobs regardless of pending status (#23260)
alexghr May 14, 2026
db4bd98
refactor(p2p): remove unused sendBatchRequest (#23273)
fcarreiro May 14, 2026
6eedaa5
chore(p2p): remove proposal_tx_collector leftovers (#23276)
fcarreiro May 14, 2026
816aef3
feat: slash truncated checkpoint proposals (#23250)
alexghr May 14, 2026
55df962
refactor: remove unused map in attestation pool (#23284)
alexghr May 14, 2026
e52eb69
Merge branch 'next' into merge-train/spartan
May 14, 2026
85f9c92
Merge branch 'next' into merge-train/spartan
May 14, 2026
8a6316f
Merge branch 'next' into merge-train/spartan
May 14, 2026
71d3b16
Merge branch 'next' into merge-train/spartan
May 14, 2026
78c6e81
chore(p2p): assert last block in checkpoint proposal is correct (#23274)
spalladino May 14, 2026
0da3480
refactor(l1-tx-utils): use DateProvider for fail-fast timeout check (…
spalladino May 14, 2026
9759aa6
Merge branch 'next' into merge-train/spartan
May 15, 2026
fff23f9
feat(sandbox): support proposer pipelining in local network (#23277)
spalladino May 15, 2026
7551378
Merge branch 'next' into merge-train/spartan
May 15, 2026
3ba6dbe
test(e2e): fix race in broadcasted_invalid_block_proposal_slash under…
AztecBot May 15, 2026
e0f2339
fix(archiver): atomic getter for L2 tips (#23295)
spalladino May 15, 2026
0291cc2
fix(sequencer): use targetSlot in tryVoteWhenEscapeHatchOpen under pi…
spalladino May 15, 2026
1c09902
fix(world-state): make fork close idempotent for pruned forks (#23298)
spalladino May 15, 2026
943ca27
test(e2e): migrate passing tests to proposer pipelining (#23275)
spalladino May 15, 2026
111f72d
chore: update dashboard (#23312)
alexghr May 15, 2026
fc2a31c
Merge branch 'next' into merge-train/spartan
May 15, 2026
d05dd77
test(e2e): drain in-flight pipelined block on warp in e2e_expiration_…
AztecBot May 15, 2026
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
24 changes: 16 additions & 8 deletions .test_patterns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,10 @@ tests:
error_regex: "Error: Timeout of 2000ms exceeded"
owners:
- *martin
- regex: "kv-store/.*store\\.test"
error_regex: "guards against too many cursors"
owners:
- *palla
- regex: "ethereum/src/test/tx_delayer.test.ts"
error_regex: "delays a transaction until a given L1 timestamp"
owners:
Expand All @@ -172,6 +176,18 @@ tests:
error_regex: "ContractFunctionExecutionError: The contract function"
owners:
- *mitch
# Under proposer pipelining each validator votes in its own slot and the votes
# don't aggregate into the same round, so the slashing quorum (3) is never
# reached within the 414s budget; the test consistently times out at the docker
# outer 600s (exit 124). The publisher refactor lands all vote-offenses tx's
# on L1 successfully — voteCount on the slasher proposer simply stays at 1
# per round. This is a slashing-payload aggregation issue independent of
# publisher work; skip until the slashing team addresses it separately.
- regex: "e2e_p2p/valid_epoch_pruned_slash.test.ts"
skip: true
owners:
- *mitch
- *palla
- regex: "archiver/src/archiver/archiver.test.ts"
error_regex: "Received number of calls: 1"
owners:
Expand All @@ -185,14 +201,6 @@ tests:
- *phil
- *palla

# http://ci.aztec-labs.com/64a972aafaa40dd0
# ProvingBroker › Retries › does not retry if job is stale — kv-store closes
# before the broker's final reportProvingJobError write lands.
- regex: "prover-client/src/proving_broker/proving_broker.test.ts"
error_regex: "does not retry if job is stale|Store is closed"
owners:
- *alex

# Nightly GKE tests
- regex: "spartan/bootstrap.sh"
owners:
Expand Down
2 changes: 2 additions & 0 deletions aztec-up/test/amm_flow.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#!/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: 1 addition & 0 deletions aztec-up/test/basic_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ 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: 2 additions & 0 deletions aztec-up/test/bridge_and_claim.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#!/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: 1 addition & 0 deletions docs/examples/ts/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ 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: 1 addition & 0 deletions playground/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ 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
4 changes: 4 additions & 0 deletions spartan/aztec-node/templates/_pod-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,10 @@ spec:
- name: SLASH_INVALID_BLOCK_PENALTY
value: {{ .Values.node.slash.invalidBlockPenalty | quote }}
{{- end }}
{{- if .Values.node.slash.invalidCheckpointProposalPenalty }}
- name: SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY
value: {{ .Values.node.slash.invalidCheckpointProposalPenalty | quote }}
{{- end }}
{{- if .Values.node.slash.proposeInvalidAttestationsPenalty }}
- name: SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY
value: {{ .Values.node.slash.proposeInvalidAttestationsPenalty | quote }}
Expand Down
1 change: 1 addition & 0 deletions spartan/aztec-node/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ node:
inactivityPenalty: ""
inactivityTargetPercentage: ""
invalidBlockPenalty: ""
invalidCheckpointProposalPenalty: ""
proposeInvalidAttestationsPenalty: ""
attestDescendantOfInvalidPenalty: ""
attestInvalidCheckpointProposalPenalty: ""
Expand Down
5 changes: 5 additions & 0 deletions spartan/environments/network-defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ slasher: &slasher
SLASH_UNKNOWN_PENALTY: 10e18
# Penalty for broadcasting an invalid block.
SLASH_INVALID_BLOCK_PENALTY: 10e18
# Penalty for broadcasting an invalid checkpoint proposal.
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0
# L2 slots grace period before considering an offense expired.
SLASH_GRACE_PERIOD_L2_SLOTS: 0

Expand Down Expand Up @@ -247,6 +249,7 @@ networks:
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 10e18
SLASH_UNKNOWN_PENALTY: 10e18
SLASH_INVALID_BLOCK_PENALTY: 10e18
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0
SLASH_GRACE_PERIOD_L2_SLOTS: 0
ENABLE_VERSION_CHECK: true

Expand Down Expand Up @@ -293,6 +296,7 @@ networks:
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 10e18
SLASH_UNKNOWN_PENALTY: 10e18
SLASH_INVALID_BLOCK_PENALTY: 10e18
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0
SLASH_GRACE_PERIOD_L2_SLOTS: 64
ENABLE_VERSION_CHECK: true

Expand Down Expand Up @@ -353,4 +357,5 @@ networks:
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 2000e18
SLASH_UNKNOWN_PENALTY: 2000e18
SLASH_INVALID_BLOCK_PENALTY: 2000e18
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0
SLASH_GRACE_PERIOD_L2_SLOTS: 1200
185 changes: 146 additions & 39 deletions spartan/metrics/grafana/dashboards/aztec_network.json
Original file line number Diff line number Diff line change
Expand Up @@ -248,11 +248,11 @@
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
"uid": "${data_source}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"\"}, \"aztec_status\", \"Pending chain\", \"aztec_status\", \"^$\"))",
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"proposed\"}, \"aztec_status\", \"Proposed chain\", \"aztec_status\", \"^proposed$\")) or max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"\"}, \"aztec_status\", \"Proposed chain\", \"aztec_status\", \"^$\"))",
"instant": true,
"legendFormat": "{{aztec_status}}",
"range": false,
Expand All @@ -261,16 +261,16 @@
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
"uid": "${data_source}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"proven\"}, \"aztec_status\", \"Proven chain\", \"aztec_status\", \"^proven$\"))",
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"checkpointed\"}, \"aztec_status\", \"Checkpointed chain\", \"aztec_status\", \"^checkpointed$\")) or max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"\"}, \"aztec_status\", \"Checkpointed chain\", \"aztec_status\", \"^$\"))",
"hide": false,
"instant": true,
"legendFormat": "{{aztec_status}}",
"range": false,
"refId": "E"
"refId": "B"
},
{
"datasource": {
Expand All @@ -279,38 +279,12 @@
},
"editorMode": "code",
"exemplar": false,
"expr": "max by (aztec_status) (label_replace(aztec_archiver_l1_block_height{k8s_namespace_name=\"$namespace\"}, \"aztec_status\", \"l1\", \"aztec_status\", \"^$\"))",
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\",aztec_status=\"proven\"}, \"aztec_status\", \"Proven chain\", \"aztec_status\", \"^proven$\"))",
"hide": false,
"instant": true,
"legendFormat": "L1",
"legendFormat": "{{aztec_status}}",
"range": false,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "${data_source}"
},
"editorMode": "code",
"expr": "max(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\", aztec_status=\"\"}) - max(aztec_archiver_block_height{k8s_namespace_name=\"$namespace\", aztec_status=\"proven\"})",
"hide": false,
"instant": false,
"legendFormat": "Pending chain depth",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "${data_source}"
},
"editorMode": "code",
"expr": "max(aztec_archiver_prune_count{k8s_namespace_name=\"$namespace\"}) or vector(0)",
"hide": false,
"instant": false,
"legendFormat": "Total re-orgs",
"range": true,
"refId": "D"
}
],
"title": "Current Block Heights",
Expand Down Expand Up @@ -2592,15 +2566,47 @@
"uid": "${data_source}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "max by(service_name, aztec_status) (aztec_archiver_block_height{service_namespace=\"$namespace\", aztec_status=~\"proposed|proven\"})",
"editorMode": "code",
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{service_namespace=\"$namespace\", aztec_status=\"proposed\"}, \"aztec_status\", \"Proposed chain\", \"aztec_status\", \"^proposed$\")) or max by (aztec_status) (label_replace(aztec_archiver_block_height{service_namespace=\"$namespace\", aztec_status=\"\"}, \"aztec_status\", \"Proposed chain\", \"aztec_status\", \"^$\"))",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"legendFormat": "{{aztec_status}}",
"range": true,
"refId": "A",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "${data_source}"
},
"disableTextWrap": false,
"editorMode": "code",
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{service_namespace=\"$namespace\", aztec_status=\"checkpointed\"}, \"aztec_status\", \"Checkpointed chain\", \"aztec_status\", \"^checkpointed$\")) or max by (aztec_status) (label_replace(aztec_archiver_block_height{service_namespace=\"$namespace\", aztec_status=\"\"}, \"aztec_status\", \"Checkpointed chain\", \"aztec_status\", \"^$\"))",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{aztec_status}}",
"range": true,
"refId": "B",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "${data_source}"
},
"disableTextWrap": false,
"editorMode": "code",
"expr": "max by (aztec_status) (label_replace(aztec_archiver_block_height{service_namespace=\"$namespace\", aztec_status=\"proven\"}, \"aztec_status\", \"Proven chain\", \"aztec_status\", \"^proven$\"))",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{aztec_status}}",
"range": true,
"refId": "C",
"useBackend": false
}
],
"title": "Block height",
Expand Down Expand Up @@ -2669,8 +2675,8 @@
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 75
"x": 0,
"y": 83
},
"id": 11,
"options": {
Expand Down Expand Up @@ -2774,7 +2780,7 @@
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"x": 12,
"y": 83
},
"id": 24,
Expand Down Expand Up @@ -2814,6 +2820,107 @@
],
"title": "Archiver Sync Duration (P95)",
"type": "timeseries"
},
{
"datasource": {
"default": true,
"type": "prometheus",
"uid": "${data_source}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 8,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "stepBefore",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 75
},
"id": 41,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.3.6",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${data_source}"
},
"editorMode": "code",
"expr": "max by(k8s_pod_name) (aztec_archiver_block_height{k8s_namespace_name=\"$namespace\", aztec_status=\"proposed\"}) or max by(k8s_pod_name) (aztec_archiver_block_height{k8s_namespace_name=\"$namespace\", aztec_status=\"\"})",
"instant": false,
"legendFormat": "{{k8s_pod_name}}",
"range": true,
"refId": "A"
}
],
"title": "Proposed Chains by Pod",
"type": "timeseries"
}
],
"preload": false,
Expand Down
1 change: 1 addition & 0 deletions spartan/scripts/deploy_network.sh
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,7 @@ SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY = ${SLASH_ATTEST_DESCENDANT_OF_INVALI
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY = ${SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY:-null}
SLASH_UNKNOWN_PENALTY = ${SLASH_UNKNOWN_PENALTY:-null}
SLASH_INVALID_BLOCK_PENALTY = ${SLASH_INVALID_BLOCK_PENALTY:-null}
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY = ${SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY:-null}
SLASH_OFFENSE_EXPIRATION_ROUNDS = ${SLASH_OFFENSE_EXPIRATION_ROUNDS:-null}
SLASH_MAX_PAYLOAD_SIZE = ${SLASH_MAX_PAYLOAD_SIZE:-null}
OTEL_COLLECTOR_ENDPOINT = "${OTEL_COLLECTOR_ENDPOINT}"
Expand Down
Loading
Loading