Summary
Fixes
This is a mandatory upgrade for all users running any prior version. All prior Anchor releases, including v1.2.4, are affected by vulnerabilities. All Anchor nodes should be upgraded as soon as possible. Further details to come in the following days.
Upgrade / deployment notes
- Operator DB migration (not backward-compatible). This release migrates
anchor_db.sqlite(now managed by [refinery], #948). Downgrading to a prior version requires removing anchor_db.sqlite and resyncing. Slashing protection is unaffected (separate slashing_protection.sqlite). --builder-proposalsdeprecated & ignored (#748). Validator registrations are now always created; the flag no longer does anything and will error in a future release. Remove it from your config.
Highlights
- Beacon node fallback: new CLI options to configure BeaconNodeFallback (#753) + Lighthouse beacon-head monitor wiring (#1011).
- Database: migrations moved to refinery (#948), share-pubkey queries (#936), validator-index DB index (#943).
- CLI: new dedicated cli crate + generated CLI reference docs (#901, #960, #1020).
- Dependencies: Lighthouse updated to v8.1.0+ (#813, #879); dependency security fixes in bytes (RUSTSEC-2026-0007, #797) and alloy/ruint (#766).
Boole SSV fork — groundwork (inactive)
Substantial preparatory code for the upcoming Boole SSV fork landed in this release (MinHash subnet topology #752, generic fork infrastructure #774, SIP-43 subnet-topology transition #754, aggregator-committee types #775, fork-aware networking). Boole is not scheduled on any built-in network (mainnet/hoodi/holesky have no fork epoch), so it has no effect until a future release activates it.
All Changes
- chore: Release v1.3.0 (#1140)
- chore: backmerge stable → unstable (v1.3.0 release)
- chore: bump rust-libp2p pin (#1151)
- ci: opt in to fork PR checkout in claude-pr-review (#1152)
- chore: add gossipsub subscription filters (#1146)
- Merge branch 'stable' into backmerge-v1.3.0
- ci: raise Claude review turn budget and bump to Opus 4.8 (#1130)
- chore: satisfy Rust 1.97 useless_borrows_in_formatting lint (#1127)
- ci: bump ssv-mini pin to fix local-testnet (#1112)
- fix(subnet_service): don't subscribe to subnets of liquidated clusters (#1086)
- fix(processor): raise urgent_consensus queue default (#1091)
- merge from stable
- feat(qbft_manager): add instrumentation taxonomy and metrics surface (#1068)
- chore(metrics): add Eager Attesting dashboard row (#1060)
- feat(validator_store): drive Phase 2 from beacon head events (#1041)
- fix(operator_key): accept go-ssv keystores with diacritic passwords (#1021)
- feat(client): wire LH beacon head monitor (#1011)
- ci: add CLI reference documentation-to-docgen check workflow (#1020)
- ci: bump Node20-deprecated actions in remaining workflows (Phase 2 of #1040) (#1045)
- ci: bump release.yml actions ahead of Node20 deprecation (Phase 3 of #1040) (#1046)
- chore: normalizes value_name CLI reference definition fields to UPPER_SNAKE_CASE (#1029)
- docs: updates machine-generated docs with anchor-docgen format (#1019)
- feat: Implements docgen crate with makefile invocation for checking and updating anchor documentation (#939)
- feat: instruments proposer block sign duty pre-QBFT fetch (#1012)
- feat: instruments proposer pre-QBFT fetch in randao_reveal step (#999)
- fix(eth): force WS reconnect when live block stream goes idle (#1001)
- fix: prioritize urgent processor work (#1002)
- ci: add coverage workflow (#996)
- test: split qbft aggregator rejection test (#1005)
- test: AggregatorCommitteeConsensusDataTest (#984)
- refactor(signature_collector): extract state struct (#982)
- test: split qbft test setup (#994)
- test: split qbft timeout tests (#990)
- refactor: ProposerConsensusDataTest uses assert_error_code helper (#985)
- chore: ignore hickory-proto audit advisories (#988)
- feat: Adds root proposer-duty span and top level checkpoints to sign_block in validator_store (#967)
- fix: accept past-round QBFT decided messages (#981)
- test: committee member test (#968)
- chore: add create-pr skill (#978)
- test: skip DepositDataSpecTest (#965)
- fix(qbft): align quorum rule with ssv-spec (2f + 1) (#966)
- fix(eth): replay duplicate operator keys (#973)
- fix(eth): skip duplicate-owner validator replay (#970)
- ci: address cargo audit failure (#971)
- test: DutySpecTest (#962)
- feat: Creates directory in docs to contain CLI command usage documentation (#960)
- fix: clippy useless conversion attestation zip (#963)
- refactor(database): replace custom migrations with refinery (#948)
- chore(deps): bump rustls-webpki to 0.103.12 (#952)
- test: proposer consensus-data spec coverage (#942)
- feat: add share pubkey queries (#936)
- chore: add validator index db index (#943)
- test: add encryption spec test (#839)
- test: add aggregate committee coverage (#926)
- refactor: rename committee batch-size field (#937)
- fix(eth): abort batches on internal event processing failures (#351)
- chore: trivial refactor and docs adjustments for automated doc generator (#910)
- refactor(database): remove legacy non-tx wrappers (#909)
- Merge branch 'stable' into backmerge-v1.2.3
- feat: query multiple beacon nodes in parallel (#875)
- fix: offload index sync store to blocking task (#841)
- feat: introduces cli crate and migrates cli definitions to commonly accessible module (#901)
- fix(eth): process contract logs one block at a time (#904)
- chore(deps): bump rustls-webpki to 0.103.10 (#907)
- fix: committee contributions batch by committee (#888)
- refactor(database): prepare tx-scoped block processing (#898)
- test: add committee attestation integration tests (#897)
- fix: agg attestation batching (#881)
- refactor: decode proposerconsensusdata block helpers (#865)
- refactor: extract ConsensusDecider trait for testability (#899)
- refactor: extract SignatureCollecting trait for testability (#895)
- chore: bump lh crates to latest from unstable (#879)
- fix: sync committee message batch by committee (#887)
- chore: add commit hash to docker build (#877)
- merge from stable
- fix: optimize the signing of attestations (#834)
- ci: add Dependabot policy to close dependency update gap (#869)
- ci: strengthen PR template with evidence, risk, and rollback prompts (#870)
- chore: restructure CLAUDE.md into modular rules (#861)
- fix: validate SignedSSVMessage on SSZ-decoded network messages (#853)
- test: add SubnetService lifecycle integration tests (#858)
- refactor: validator store trait fns return streams (#855)
- chore: update Lighthouse and rusqlite dependencies (#859)
- refactor: group Node CLI fields into logical option sub-structs (#846)
- chore: tweak minTargetPercent for testnet stability (#851)
- feat: replace SharedDomainType with SharedForkLifecycle for fork-aware peer selection (#824)
- Merge branch 'stable' into unstable
- test: add message type validation spec tests (#837)
- refactor: extract PartialSignatureMessages::validate() in ssv_types (#843)
- test: add encoding spec tests for SSV types (#835)
- test: add spec_tests crate foundation with BeaconVote encoding test (#833)
- Merge branch 'stable' into unstable
- feat: add CORS support for HTTP API and metrics endpoints (#756)
- chore: Change lint
allows toexpects (#831) - feat: Allow conversion between key files (#803)
- feat: reject deprecated roles after Boole fork (#794)
- chore: update Lighthouse dependency to v8.1.0 (#813)
- fix(ci): use app token for checkout in claude-pr-review (#828)
- fix(ci): fix claude-pr-review checkout for fork PRs (#827)
- fix: make observed_peer_subnets fork-aware (#820)
- refactor: rename ValidatorConsensusData to ProposerConsensusData (#808)
- fix: partial sig message length increase (#822)
- fix: prevent ANSI escape sequences leaking into file log span fields (#815)
- fix: share domain type across network components to fix handshake after fork activation (#814)
- chore: Get rid of more unused dependencies (#805)
- chore: update time dependency (#809)
- fix: do not exit subnet service if there are no more fork changes (#798)
- chore: Less strict testnet in CI (#795)
- docs: add AGENTS symlink and evidence rule (#800)
- refactor(network): split run loop handlers (#799)
- feat: build AggregatorCommitteeConsensusData and post consensus handling (#786)
- fix: update bytes to 1.11.1 to fix RUSTSEC-2026-0007 (#797)
- fix: do not use fixed start time for proposal duties (#787)
- chore: Update leader election function to include Eth epoch (#776)
- fix: integer underflow in follow distance calculation (#792)
- feat: implement subnet topology fork transition (SIP-43) (#754)
- feat: add AggregatorCommittee P2P validation and QBFT routing (#782)
- chore: Edition in rustfmt.toml (#788)
- refactor: phase metadata service across full slot duration (#781)
- chore: update anchor to latest lighthouse package versions (#779)
- ci: Local Net CI Workflow (#562)
- fix: do not disconnect peers if we have no subnets yet (#784)
- fix: allow beacon votes when source and target equal and 0 (#783)
- feat: add AggregatorCommittee types for Boole fork (#775)
- chore: Remove old
blsfullagrange impl (#725) - feat: add generic Fork infrastructure for SSV protocol upgrades (#774)
- refactor(subnet_service): split monolithic lib.rs into focused modules (#767)
- chore(deps): update alloy to 1.2.1 and fix ruint security vulnerability (#766)
- docs: Avoid confusion around reth's full/archive node terminology (#750)
- chore!: Remove builder proposals flag (#748)
- Merge branch 'stable' into unstable
- feat(networking): Implement support for UPnP (#444)
- feat: add CLI options for BeaconNodeFallback configuration (#753)
- docs: update Anchor documentation (#739)
- fix: warn if OperatorAdded events not in sync (#625)
- feat: add MinHash subnet calculation algorithm (#752)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | anchor-v1.3.0-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | anchor-v1.3.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | anchor-v1.3.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| System | Option | - | Resource |
| Docker | v1.3.0 | sigp/anchor |