From fb90446cffcbff989d100dfec5b182fb491d191d Mon Sep 17 00:00:00 2001 From: Nikita Kryuchkov Date: Mon, 2 Feb 2026 20:18:32 +0300 Subject: [PATCH 1/3] deduplicate messages if validator has already been seen for a subnet --- protocol/v2/ssv/runner/aggregator_committee.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/protocol/v2/ssv/runner/aggregator_committee.go b/protocol/v2/ssv/runner/aggregator_committee.go index 9d7c56c760..5851cb224b 100644 --- a/protocol/v2/ssv/runner/aggregator_committee.go +++ b/protocol/v2/ssv/runner/aggregator_committee.go @@ -1592,8 +1592,14 @@ func (r *AggregatorCommitteeRunner) executeDuty(ctx context.Context, logger *zap case spectypes.BNRoleSyncCommitteeContribution: // Sign sync committee selection proofs for each subcommittee + // Selection proof depends only on slot+subcommittee index, so emit at most one per subnet. + seenSubnets := make(map[uint64]struct{}) for _, index := range vDuty.ValidatorSyncCommitteeIndices { subnet := r.GetBeaconNode().SyncCommitteeSubnetID(phase0.CommitteeIndex(index)) + if _, seen := seenSubnets[subnet]; seen { + continue + } + seenSubnets[subnet] = struct{}{} data := &altair.SyncAggregatorSelectionData{ Slot: duty.DutySlot(), From 788ca9e6bfe07cc5ebce173f2136b707d67e381a Mon Sep 17 00:00:00 2001 From: Nikita Kryuchkov Date: Mon, 16 Feb 2026 18:27:58 +0300 Subject: [PATCH 2/3] fix spec version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 65d34246ca..d6f7dd4899 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( github.com/sourcegraph/conc v0.3.0 github.com/spf13/cobra v1.8.1 github.com/ssvlabs/eth2-key-manager v1.5.6 - github.com/ssvlabs/ssv-spec v1.2.3-0.20260121164943-4280751195c0 + github.com/ssvlabs/ssv-spec v1.2.3-0.20260211095607-d07ddb9c8019 github.com/ssvlabs/ssv/ssvsigner v0.0.0-20251110161756-cd931098ea44 github.com/status-im/keycard-go v0.2.0 github.com/stretchr/testify v1.11.1 diff --git a/go.sum b/go.sum index f6f89bc610..3bbb5de7a7 100644 --- a/go.sum +++ b/go.sum @@ -731,8 +731,8 @@ github.com/ssvlabs/eth2-key-manager v1.5.6 h1:BMxVCsbcIlUiiO0hpePkHxzX0yhKgMkEzV github.com/ssvlabs/eth2-key-manager v1.5.6/go.mod h1:tjzhmMzrc0Lzc/OMW1h9Mz8AhmKH7FQC/nFiMNJ0bd8= github.com/ssvlabs/go-eth2-client v0.6.31-0.20250922150906-26179dd60c9c h1:iNQoRbEajriawtkSFiyHsJNiXyfyTrPrnmO0NaWiNv4= github.com/ssvlabs/go-eth2-client v0.6.31-0.20250922150906-26179dd60c9c/go.mod h1:fvULSL9WtNskkOB4i+Yyr6BKpNHXvmpGZj9969fCrfY= -github.com/ssvlabs/ssv-spec v1.2.3-0.20260121164943-4280751195c0 h1:/sGLLm5PFr2FvfujnnwZvdB+8chUaJxbSIdKiQ5l/J0= -github.com/ssvlabs/ssv-spec v1.2.3-0.20260121164943-4280751195c0/go.mod h1:GedhFYGHVJRYYH3nEp05Gn14tyvg6VbTbaIxrMtI7Cg= +github.com/ssvlabs/ssv-spec v1.2.3-0.20260211095607-d07ddb9c8019 h1:SdcJSR5iL955WSaR8PEP2JI5B412K0RimgIdzW9x+bA= +github.com/ssvlabs/ssv-spec v1.2.3-0.20260211095607-d07ddb9c8019/go.mod h1:GedhFYGHVJRYYH3nEp05Gn14tyvg6VbTbaIxrMtI7Cg= github.com/ssvlabs/ssv/ssvsigner v0.0.0-20251110161756-cd931098ea44 h1:uwOEN9S5D+CQcD1AC/XKeQpfb3AVXe1SJ4hhhIJhojU= github.com/ssvlabs/ssv/ssvsigner v0.0.0-20251110161756-cd931098ea44/go.mod h1:w7i5oZKhFVq9jVOTe1Ykk0CtJEtmSJbdXErIbsewMXk= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= From 11a88d9a730fdf271ee51177f68c16efad19fc13 Mon Sep 17 00:00:00 2001 From: Nikita Kryuchkov Date: Mon, 16 Feb 2026 20:44:06 +0300 Subject: [PATCH 3/3] update spec version --- go.mod | 2 +- go.sum | 4 ++-- ssvsigner/go.mod | 2 +- ssvsigner/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index d6f7dd4899..f693194c08 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( github.com/sourcegraph/conc v0.3.0 github.com/spf13/cobra v1.8.1 github.com/ssvlabs/eth2-key-manager v1.5.6 - github.com/ssvlabs/ssv-spec v1.2.3-0.20260211095607-d07ddb9c8019 + github.com/ssvlabs/ssv-spec v1.2.3-0.20260216165540-a5bc57233c10 github.com/ssvlabs/ssv/ssvsigner v0.0.0-20251110161756-cd931098ea44 github.com/status-im/keycard-go v0.2.0 github.com/stretchr/testify v1.11.1 diff --git a/go.sum b/go.sum index 3bbb5de7a7..9dc73f2407 100644 --- a/go.sum +++ b/go.sum @@ -731,8 +731,8 @@ github.com/ssvlabs/eth2-key-manager v1.5.6 h1:BMxVCsbcIlUiiO0hpePkHxzX0yhKgMkEzV github.com/ssvlabs/eth2-key-manager v1.5.6/go.mod h1:tjzhmMzrc0Lzc/OMW1h9Mz8AhmKH7FQC/nFiMNJ0bd8= github.com/ssvlabs/go-eth2-client v0.6.31-0.20250922150906-26179dd60c9c h1:iNQoRbEajriawtkSFiyHsJNiXyfyTrPrnmO0NaWiNv4= github.com/ssvlabs/go-eth2-client v0.6.31-0.20250922150906-26179dd60c9c/go.mod h1:fvULSL9WtNskkOB4i+Yyr6BKpNHXvmpGZj9969fCrfY= -github.com/ssvlabs/ssv-spec v1.2.3-0.20260211095607-d07ddb9c8019 h1:SdcJSR5iL955WSaR8PEP2JI5B412K0RimgIdzW9x+bA= -github.com/ssvlabs/ssv-spec v1.2.3-0.20260211095607-d07ddb9c8019/go.mod h1:GedhFYGHVJRYYH3nEp05Gn14tyvg6VbTbaIxrMtI7Cg= +github.com/ssvlabs/ssv-spec v1.2.3-0.20260216165540-a5bc57233c10 h1:ecHp7F0mcvc9AKCb00PEX2CGgxraUvhkARN+XheiD3o= +github.com/ssvlabs/ssv-spec v1.2.3-0.20260216165540-a5bc57233c10/go.mod h1:GedhFYGHVJRYYH3nEp05Gn14tyvg6VbTbaIxrMtI7Cg= github.com/ssvlabs/ssv/ssvsigner v0.0.0-20251110161756-cd931098ea44 h1:uwOEN9S5D+CQcD1AC/XKeQpfb3AVXe1SJ4hhhIJhojU= github.com/ssvlabs/ssv/ssvsigner v0.0.0-20251110161756-cd931098ea44/go.mod h1:w7i5oZKhFVq9jVOTe1Ykk0CtJEtmSJbdXErIbsewMXk= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= diff --git a/ssvsigner/go.mod b/ssvsigner/go.mod index c3530f4185..7e874126eb 100644 --- a/ssvsigner/go.mod +++ b/ssvsigner/go.mod @@ -33,7 +33,7 @@ require ( github.com/sourcegraph/conc v0.3.0 github.com/ssvlabs/eth2-key-manager v1.5.6 github.com/ssvlabs/ssv v1.2.1-0.20251110161756-cd931098ea44 - github.com/ssvlabs/ssv-spec v1.2.3-0.20260121164943-4280751195c0 + github.com/ssvlabs/ssv-spec v1.2.3-0.20260216165540-a5bc57233c10 github.com/stretchr/testify v1.11.1 github.com/testcontainers/testcontainers-go v0.37.0 github.com/valyala/fasthttp v1.58.0 diff --git a/ssvsigner/go.sum b/ssvsigner/go.sum index bbb593a014..27b465e5f8 100644 --- a/ssvsigner/go.sum +++ b/ssvsigner/go.sum @@ -332,8 +332,8 @@ github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0b github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/ssvlabs/eth2-key-manager v1.5.6 h1:BMxVCsbcIlUiiO0hpePkHxzX0yhKgMkEzVSoNmSXySM= github.com/ssvlabs/eth2-key-manager v1.5.6/go.mod h1:tjzhmMzrc0Lzc/OMW1h9Mz8AhmKH7FQC/nFiMNJ0bd8= -github.com/ssvlabs/ssv-spec v1.2.3-0.20260121164943-4280751195c0 h1:/sGLLm5PFr2FvfujnnwZvdB+8chUaJxbSIdKiQ5l/J0= -github.com/ssvlabs/ssv-spec v1.2.3-0.20260121164943-4280751195c0/go.mod h1:GedhFYGHVJRYYH3nEp05Gn14tyvg6VbTbaIxrMtI7Cg= +github.com/ssvlabs/ssv-spec v1.2.3-0.20260216165540-a5bc57233c10 h1:ecHp7F0mcvc9AKCb00PEX2CGgxraUvhkARN+XheiD3o= +github.com/ssvlabs/ssv-spec v1.2.3-0.20260216165540-a5bc57233c10/go.mod h1:GedhFYGHVJRYYH3nEp05Gn14tyvg6VbTbaIxrMtI7Cg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=