Skip to content

Commit a74c158

Browse files
authored
Merge pull request #850 from ava-labs/signature-aggregator-requestnum
Signature aggregator requestnum
2 parents 1db2344 + efabb1b commit a74c158

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

signature-aggregator/aggregator/aggregator.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ func NewSignatureAggregator(
108108
pChainClientOptions: pChainClientOptions,
109109
currentL1ValidatorsCache: cache.NewTTLCache[ids.ID, []platformvmapi.APIL1Validator](l1ValidatorBalanceTTL),
110110
}
111-
sa.currentRequestID.Store(rand.Uint32())
111+
// invariant: requestIDs for AppRequests must be odd numbered
112+
sa.currentRequestID.Store(rand.Uint32() | 1)
112113
return &sa, nil
113114
}
114115

@@ -354,7 +355,8 @@ func (s *SignatureAggregator) CreateSignedMessage(
354355
// Query the validators with retries. On each retry, query one node per unique BLS pubkey
355356
operation := func() error {
356357
// Construct the AppRequest
357-
requestID := s.currentRequestID.Add(1)
358+
// Increments by two to keep the requestID odd
359+
requestID := s.currentRequestID.Add(2)
358360
outMsg, err := s.messageCreator.AppRequest(
359361
unsignedMessage.SourceChainID,
360362
requestID,

signature-aggregator/aggregator/aggregator_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ func TestCreateSignedMessageRetriesAndFailsWithoutP2PResponses(t *testing.T) {
239239

240240
var (
241241
connectedValidators, _ = makeConnectedValidators(2)
242-
requestID = aggregator.currentRequestID.Load() + 1
242+
requestID = aggregator.currentRequestID.Load() + 2
243243
)
244244

245245
chainID := ids.GenerateTestID()
@@ -266,14 +266,14 @@ func TestCreateSignedMessageRetriesAndFailsWithoutP2PResponses(t *testing.T) {
266266
// Expect at most one call to RegisterAppRequest per node per retry for up to [maxAppRequestRetries] retries
267267
for i := uint32(0); i < maxAppRequestRetries; i++ {
268268
appRequestCopy := appRequest
269-
appRequestCopy.RequestID = appRequest.RequestID + i
269+
appRequestCopy.RequestID = appRequest.RequestID + i*2
270270
mockNetwork.EXPECT().RegisterAppRequest(appRequestCopy).MaxTimes(1)
271271
}
272272
}
273273

274274
for i := uint32(0); i < maxAppRequestRetries; i++ {
275275
mockNetwork.EXPECT().RegisterRequestID(
276-
requestID+i,
276+
requestID+i*2,
277277
nodeIDs,
278278
).Return(
279279
make(chan message.InboundMessage, len(appRequests)),
@@ -357,7 +357,7 @@ func TestCreateSignedMessageSucceeds(t *testing.T) {
357357

358358
// prime the signers' responses:
359359

360-
requestID := aggregator.currentRequestID.Load() + 1
360+
requestID := aggregator.currentRequestID.Load() + 2
361361

362362
appRequests := makeAppRequests(chainID, requestID, connectedValidators)
363363
for _, appRequest := range appRequests {

0 commit comments

Comments
 (0)