Repository navigation
Conversation
… support Replace the legacy single-shard DONConfig/DON wiring with the shared ShardedDONs/ShardEndpoint model (as Dummy/WebAPI/HTTP already use). Quorum (F+1/2F+1) and rate limiters are now evaluated per shard independently; the first shard to reach quorum wins, and a shard whose quorum becomes unreachable no longer fails the whole request on its own. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
|
I see you updated files related to
|
Contributor
|
✅ No conflicts with other open PRs targeting |
Fan-out previously raced every configured shard and forwarded whichever reached quorum first, which is wrong here: secrets.get/capability.exec requests are not interchangeable across shards. The enclave now selects the shard via an explicit shard_index in request params (bumped to chainlink-common's new *int ShardIndex field, PR smartcontractkit/chainlink-common#2470); a missing value is rejected rather than defaulted to shard 0, since 0 is itself a valid shard. fanOutToNodes, evaluateShard (renamed from evaluateShards), and forwardAfterGrace now operate on the single resolved shard instead of looping over all of them. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Match chainlink-common#2470's simplified design (ShardIndex went from *int to plain int): a request without shard_index now routes to shard 0 instead of being rejected. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A gateway service can attach several DONs, so shard_index alone was ambiguous. The handler now picks the DON named by don_name (optional when there is a single DON) and the shard_index within it. Bumps chainlink-common to the branch adding DonName (#2476). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…on_shard_index Follows the field rename in chainlink-common#2476. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
DONConfig/DONwiring onto the sharedShardedDONs/ShardEndpointmodel (Dummy, WebAPI, and HTTP capability handlers already use it; Vault is in a separate PR, [CRE-6797] Migrate Vault gateway handler to sharded DONs config #23985).handler_factory.gonow passes the sharded DON matrix straight through for this handler type instead of flattening to shard 0 of DON 0.secrets.get/capability.execrequest is routed to exactly one shard, named byworkflow_don_name+workflow_don_shard_indexin the request params — these requests are not interchangeable across shards, so quorum is no longer raced across all of them.workflow_don_shard_indexdefaults to 0 when omitted;workflow_don_namemay be omitted only when the service has a single DON. Both are fields on chainlink-common's relay params (#2470 merged, #2476 adds the fields). Requires Fix bad geth log decoding #2476 to merge and be released (go.mod currently points at its branch commit).F+1/2F+1) and rate limiters are otherwise unchanged from the pre-migration single-shard behavior, just parameterized by the resolved shard.Test plan
go test ./core/services/gateway/handlers/confidentialrelay/... -race— all existing tests pass unchanged (single-shard behavior preserved exactly)workflow_don_nameselects the DON (required with multiple DONs, unknown rejected), out-of-rangeshard_indexis rejectedgo build ./core/services/gateway/...andgolangci-lint runcleanDeployment Validation
Existing canaries; confidential-relay quorum/success metrics continue reporting non-zero.
🤖 Generated with Claude Code