From 8e00b49729207df22ab4f4077945915b735a121d Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Fri, 27 Feb 2026 17:47:22 -0800 Subject: [PATCH 1/3] hotfix: disable storage proof replicaset check during block validation Skip enforceReplicas during ProcessProposal to avoid rejecting valid blocks when local storage_proof_peers diverges from proposer's (e.g. due to new node registration, eth sync drift, or different host list derivation). StorageProofVerification tx provides additional verification. Re-enable when replicaset derivation is deterministic across all nodes. Made-with: Cursor --- pkg/core/server/abci.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/core/server/abci.go b/pkg/core/server/abci.go index 7d2a91b7..f160af7d 100644 --- a/pkg/core/server/abci.go +++ b/pkg/core/server/abci.go @@ -996,7 +996,10 @@ func (s *Server) validateBlockTx(ctx context.Context, blockTime time.Time, block return false, nil } case *v1.SignedTransaction_StorageProof: - if err := s.isValidStorageProofTx(ctx, signedTx, blockHeight, true); err != nil { + // Hotfix: use enforceReplicas=false during block validation to avoid rejecting valid blocks when + // our local storage_proof_peers diverges from the proposer's (e.g. new node registration, eth sync drift). + // TODO: Re-enable when replicaset derivation is deterministic across all nodes. + if err := s.isValidStorageProofTx(ctx, signedTx, blockHeight, false); err != nil { s.logger.Error("Invalid block: invalid storage proof tx", zap.Error(err)) return false, nil } From e877d96b27f873a7b6762769278b41e069208efc Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Fri, 27 Feb 2026 17:49:55 -0800 Subject: [PATCH 2/3] Hotfix: v1.1.10 --- pkg/version/.version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/version/.version.json b/pkg/version/.version.json index 881d20aa..e1fa5b92 100644 --- a/pkg/version/.version.json +++ b/pkg/version/.version.json @@ -1,4 +1,4 @@ { - "version": "1.1.9", + "version": "1.1.10", "service": "validator" } From 5caa9e5a955a22dce4ce810d701f7da28eb9d597 Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Fri, 27 Feb 2026 17:58:10 -0800 Subject: [PATCH 3/3] Allow CI on hotfix --- .github/workflows/ci.yml | 4 ++-- .github/workflows/release.yml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6237fb0d..bc6333b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [ main, mainnet-alpha-beta ] + branches: [ main, mainnet-alpha-beta, hotfix/storage-proof-replicas ] pull_request: - branches: [ main, mainnet-alpha-beta ] + branches: [ main, mainnet-alpha-beta, hotfix/storage-proof-replicas ] jobs: build-test-push: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d2702441..e4ff3544 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,7 @@ on: options: - main - mainnet-alpha-beta + - hotfix/storage-proof-replicas version: description: 'Release version (e.g., v1.0.0, v2.0.0-beta.1)' required: true @@ -71,7 +72,7 @@ jobs: id: prerelease run: | # main branch releases are prereleases - # mainnet-alpha-beta releases are stable + # mainnet-alpha-beta and hotfix branches are stable releases if [[ "${{ inputs.branch }}" == "main" ]]; then echo "is_prerelease=true" >> $GITHUB_OUTPUT else @@ -89,6 +90,7 @@ jobs: generate_release_notes: true build-test-push: + needs: create-release uses: ./.github/workflows/docker-build.yml with: tag: ${{ inputs.version }}