mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-23 05:06:43 +00:00
Accept txs in any order; add blobs to blob txs
This commit is contained in:
parent
1e4b39ed12
commit
fc2e51dced
1 changed files with 33 additions and 19 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue