eth/downloader: prioritize block fetch based on chain position, cap memory use
This commit is contained in:
@ -32,31 +32,30 @@ func createBlocksFromHashSet(hashes *set.Set) []*types.Block {
|
||||
}
|
||||
|
||||
func TestChunking(t *testing.T) {
|
||||
queue := newqueue()
|
||||
queue := newQueue()
|
||||
peer1 := newPeer("peer1", common.Hash{}, nil, nil)
|
||||
peer2 := newPeer("peer2", common.Hash{}, nil, nil)
|
||||
|
||||
// 99 + 1 (1 == known genesis hash)
|
||||
hashes := createHashes(0, 99)
|
||||
hashSet := createHashSet(hashes)
|
||||
queue.put(hashSet)
|
||||
queue.Insert(hashes)
|
||||
|
||||
chunk1 := queue.get(peer1, 99)
|
||||
chunk1 := queue.Reserve(peer1, 99)
|
||||
if chunk1 == nil {
|
||||
t.Errorf("chunk1 is nil")
|
||||
t.FailNow()
|
||||
}
|
||||
chunk2 := queue.get(peer2, 99)
|
||||
chunk2 := queue.Reserve(peer2, 99)
|
||||
if chunk2 == nil {
|
||||
t.Errorf("chunk2 is nil")
|
||||
t.FailNow()
|
||||
}
|
||||
|
||||
if chunk1.hashes.Size() != 99 {
|
||||
t.Error("expected chunk1 hashes to be 99, got", chunk1.hashes.Size())
|
||||
if len(chunk1.Hashes) != 99 {
|
||||
t.Error("expected chunk1 hashes to be 99, got", len(chunk1.Hashes))
|
||||
}
|
||||
|
||||
if chunk2.hashes.Size() != 1 {
|
||||
t.Error("expected chunk1 hashes to be 1, got", chunk2.hashes.Size())
|
||||
if len(chunk2.Hashes) != 1 {
|
||||
t.Error("expected chunk1 hashes to be 1, got", len(chunk2.Hashes))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user