Accept txs in any order; add blobs to blob txs

This commit is contained in:
Alexey Osipov 2025-10-03 19:41:11 +03:00
parent 1e4b39ed12
commit fc2e51dced
No known key found for this signature in database

View file

@ -250,16 +250,23 @@ concurrently, with different request IDs.`)
t.Fatalf("unexpected request id in response: got %d, want %d", got, want) t.Fatalf("unexpected request id in response: got %d, want %d", got, want)
} }
// Check received headers for accuracy. // Check if headers match.
if expected, err := s.chain.GetHeaders(req1); err != nil { if got, err := s.chain.GetHeaders(req1); err != nil {
t.Fatalf("failed to get expected headers for request 1: %v", err) t.Fatalf("failed to get expected block headers: %v", err)
} else if !headersMatch(expected, headers1.BlockHeadersRequest) { } else if !headersMatch(headers1.BlockHeadersRequest, got) && !headersMatch(headers2.BlockHeadersRequest, got) {
t.Fatalf("header mismatch: \nexpected %v \ngot %v", expected, headers1) t.Fatalf("header mismatch: \nexpected %v or %v \ngot %v", headers2, headers2, got)
} } else if headersMatch(headers1.BlockHeadersRequest, got) {
if expected, err := s.chain.GetHeaders(req2); err != nil { if got2, err := s.chain.GetHeaders(req2); err != nil {
t.Fatalf("failed to get expected headers for request 2: %v", err) t.Fatalf("failed to get expected block headers: %v", err)
} else if !headersMatch(expected, headers2.BlockHeadersRequest) { } else if !headersMatch(headers2.BlockHeadersRequest, got2) {
t.Fatalf("header mismatch: \nexpected %v \ngot %v", expected, headers2) t.Fatalf("header mismatch: \nexpected %v \ngot %v", headers2, got2)
}
} else {
if got2, err := s.chain.GetHeaders(req2); err != nil {
t.Fatalf("failed to get expected block headers: %v", err)
} else if !headersMatch(headers1.BlockHeadersRequest, got2) {
t.Fatalf("header mismatch: \nexpected %v \ngot %v", headers1, got2)
}
} }
} }
@ -318,15 +325,22 @@ same request ID. The node should handle the request by responding to both reques
} }
// Check if headers match. // Check if headers match.
if expected, err := s.chain.GetHeaders(request1); err != nil { if got, err := s.chain.GetHeaders(request1); err != nil {
t.Fatalf("failed to get expected block headers: %v", err) t.Fatalf("failed to get expected block headers: %v", err)
} else if !headersMatch(expected, headers1.BlockHeadersRequest) { } else if !headersMatch(headers1.BlockHeadersRequest, got) && !headersMatch(headers2.BlockHeadersRequest, got) {
t.Fatalf("header mismatch: \nexpected %v \ngot %v", expected, headers1) t.Fatalf("header mismatch: \nexpected %v or %v \ngot %v", headers2, headers2, got)
} } else if headersMatch(headers1.BlockHeadersRequest, got) {
if expected, err := s.chain.GetHeaders(request2); err != nil { if got2, err := s.chain.GetHeaders(request2); err != nil {
t.Fatalf("failed to get expected block headers: %v", err) t.Fatalf("failed to get expected block headers: %v", err)
} else if !headersMatch(expected, headers2.BlockHeadersRequest) { } else if !headersMatch(headers2.BlockHeadersRequest, got2) {
t.Fatalf("header mismatch: \nexpected %v \ngot %v", expected, headers2) t.Fatalf("header mismatch: \nexpected %v \ngot %v", headers2, got2)
}
} else {
if got2, err := s.chain.GetHeaders(request2); err != nil {
t.Fatalf("failed to get expected block headers: %v", err)
} else if !headersMatch(headers1.BlockHeadersRequest, got2) {
t.Fatalf("header mismatch: \nexpected %v \ngot %v", headers1, got2)
}
} }
} }
@ -887,7 +901,7 @@ func (s *Suite) makeBlobTxs(count, blobs int, discriminator byte) (txs types.Tra
from, nonce := s.chain.GetSender(5) from, nonce := s.chain.GetSender(5)
for i := 0; i < count; i++ { for i := 0; i < count; i++ {
// Make blob data, max of 2 blobs per tx. // Make blob data, max of 2 blobs per tx.
blobdata := make([]byte, blobs%3) blobdata := make([]byte, min(blobs, 2))
for i := range blobdata { for i := range blobdata {
blobdata[i] = discriminator blobdata[i] = discriminator
blobs -= 1 blobs -= 1