mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 23:18:15 -05:00
Use NetworkSchedule config to determine max blobs at epoch (#15714)
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
This commit is contained in:
@@ -1017,13 +1017,13 @@ func TestBlobRangeForBlocks(t *testing.T) {
|
||||
for i := range blks {
|
||||
sbbs[i] = blks[i]
|
||||
}
|
||||
retentionStart := primitives.Slot(5)
|
||||
retentionStart := blks[len(blks)/2].Block().Slot()
|
||||
bwb, err := sortedBlockWithVerifiedBlobSlice(sbbs)
|
||||
require.NoError(t, err)
|
||||
bounds := countCommitments(bwb, retentionStart).blobRange(nil)
|
||||
require.Equal(t, retentionStart, bounds.low)
|
||||
higher := primitives.Slot(len(blks) + 1)
|
||||
bounds = countCommitments(bwb, higher).blobRange(nil)
|
||||
maxBlkSlot := blks[len(blks)-1].Block().Slot()
|
||||
bounds = countCommitments(bwb, maxBlkSlot+1).blobRange(nil)
|
||||
var nilBounds *blobRange
|
||||
require.Equal(t, nilBounds, bounds)
|
||||
|
||||
@@ -1054,17 +1054,17 @@ func TestBlobRequest(t *testing.T) {
|
||||
}
|
||||
bwb, err := sortedBlockWithVerifiedBlobSlice(sbbs)
|
||||
require.NoError(t, err)
|
||||
maxBlkSlot := primitives.Slot(len(blks) - 1)
|
||||
|
||||
tooHigh := primitives.Slot(len(blks) + 1)
|
||||
maxBlkSlot := blks[len(blks)-1].Block().Slot()
|
||||
tooHigh := maxBlkSlot + 1
|
||||
req = countCommitments(bwb, tooHigh).blobRange(nil).Request()
|
||||
require.Equal(t, nilReq, req)
|
||||
|
||||
req = countCommitments(bwb, maxBlkSlot).blobRange(nil).Request()
|
||||
require.Equal(t, uint64(1), req.Count)
|
||||
require.Equal(t, maxBlkSlot, req.StartSlot)
|
||||
require.Equal(t, uint64(1), req.Count)
|
||||
|
||||
halfway := primitives.Slot(5)
|
||||
halfway := blks[len(blks)/2].Block().Slot()
|
||||
req = countCommitments(bwb, halfway).blobRange(nil).Request()
|
||||
require.Equal(t, halfway, req.StartSlot)
|
||||
// adding 1 to include the halfway slot itself
|
||||
@@ -1103,6 +1103,12 @@ func TestCountCommitments(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCommitmentCountList(t *testing.T) {
|
||||
de := params.BeaconConfig().DenebForkEpoch
|
||||
ds := util.SlotAtEpoch(t, de)
|
||||
denebRel := func(s primitives.Slot) primitives.Slot {
|
||||
return ds + s
|
||||
}
|
||||
maxBlobs := params.BeaconConfig().MaxBlobsPerBlock(ds)
|
||||
cases := []struct {
|
||||
name string
|
||||
cc commitmentCountList
|
||||
@@ -1119,20 +1125,20 @@ func TestCommitmentCountList(t *testing.T) {
|
||||
{
|
||||
name: "nil bss, single slot",
|
||||
cc: []commitmentCount{
|
||||
{slot: 11235, count: 1},
|
||||
{slot: denebRel(11235), count: 1},
|
||||
},
|
||||
expected: &blobRange{low: 11235, high: 11235},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: 11235, Count: 1},
|
||||
expected: &blobRange{low: denebRel(11235), high: denebRel(11235)},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: denebRel(11235), Count: 1},
|
||||
},
|
||||
{
|
||||
name: "nil bss, sparse slots",
|
||||
cc: []commitmentCount{
|
||||
{slot: 11235, count: 1},
|
||||
{slot: 11240, count: params.BeaconConfig().MaxBlobsPerBlock(0)},
|
||||
{slot: 11250, count: 3},
|
||||
{slot: denebRel(11235), count: 1},
|
||||
{slot: denebRel(11240), count: maxBlobs},
|
||||
{slot: denebRel(11250), count: 3},
|
||||
},
|
||||
expected: &blobRange{low: 11235, high: 11250},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: 11235, Count: 16},
|
||||
expected: &blobRange{low: denebRel(11235), high: denebRel(11250)},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: denebRel(11235), Count: 16},
|
||||
},
|
||||
{
|
||||
name: "AllAvailable in middle, some avail low, none high",
|
||||
@@ -1141,15 +1147,15 @@ func TestCommitmentCountList(t *testing.T) {
|
||||
bytesutil.ToBytes32([]byte("0")): {0, 1},
|
||||
bytesutil.ToBytes32([]byte("1")): {0, 1, 2, 3, 4, 5},
|
||||
}
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, onDisk)
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, de, onDisk)
|
||||
},
|
||||
cc: []commitmentCount{
|
||||
{slot: 0, count: 3, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: 5, count: params.BeaconConfig().MaxBlobsPerBlock(0), root: bytesutil.ToBytes32([]byte("1"))},
|
||||
{slot: 15, count: 3},
|
||||
{slot: denebRel(0), count: 3, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: denebRel(5), count: maxBlobs, root: bytesutil.ToBytes32([]byte("1"))},
|
||||
{slot: denebRel(15), count: 3},
|
||||
},
|
||||
expected: &blobRange{low: 0, high: 15},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: 0, Count: 16},
|
||||
expected: &blobRange{low: denebRel(0), high: denebRel(15)},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: denebRel(0), Count: 16},
|
||||
},
|
||||
{
|
||||
name: "AllAvailable at high and low",
|
||||
@@ -1158,15 +1164,15 @@ func TestCommitmentCountList(t *testing.T) {
|
||||
bytesutil.ToBytes32([]byte("0")): {0, 1},
|
||||
bytesutil.ToBytes32([]byte("2")): {0, 1, 2, 3, 4, 5},
|
||||
}
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, onDisk)
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, de, onDisk)
|
||||
},
|
||||
cc: []commitmentCount{
|
||||
{slot: 0, count: 2, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: 5, count: 3},
|
||||
{slot: 15, count: params.BeaconConfig().MaxBlobsPerBlock(0), root: bytesutil.ToBytes32([]byte("2"))},
|
||||
{slot: denebRel(0), count: 2, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: denebRel(5), count: 3},
|
||||
{slot: denebRel(15), count: maxBlobs, root: bytesutil.ToBytes32([]byte("2"))},
|
||||
},
|
||||
expected: &blobRange{low: 5, high: 5},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: 5, Count: 1},
|
||||
expected: &blobRange{low: denebRel(5), high: denebRel(5)},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: denebRel(5), Count: 1},
|
||||
},
|
||||
{
|
||||
name: "AllAvailable at high and low, adjacent range in middle",
|
||||
@@ -1175,16 +1181,16 @@ func TestCommitmentCountList(t *testing.T) {
|
||||
bytesutil.ToBytes32([]byte("0")): {0, 1},
|
||||
bytesutil.ToBytes32([]byte("2")): {0, 1, 2, 3, 4, 5},
|
||||
}
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, onDisk)
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, de, onDisk)
|
||||
},
|
||||
cc: []commitmentCount{
|
||||
{slot: 0, count: 2, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: 5, count: 3},
|
||||
{slot: 6, count: 3},
|
||||
{slot: 15, count: params.BeaconConfig().MaxBlobsPerBlock(0), root: bytesutil.ToBytes32([]byte("2"))},
|
||||
{slot: denebRel(0), count: 2, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: denebRel(5), count: 3},
|
||||
{slot: denebRel(6), count: 3},
|
||||
{slot: denebRel(15), count: maxBlobs, root: bytesutil.ToBytes32([]byte("2"))},
|
||||
},
|
||||
expected: &blobRange{low: 5, high: 6},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: 5, Count: 2},
|
||||
expected: &blobRange{low: denebRel(5), high: denebRel(6)},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: denebRel(5), Count: 2},
|
||||
},
|
||||
{
|
||||
name: "AllAvailable at high and low, range in middle",
|
||||
@@ -1194,16 +1200,16 @@ func TestCommitmentCountList(t *testing.T) {
|
||||
bytesutil.ToBytes32([]byte("1")): {0, 1},
|
||||
bytesutil.ToBytes32([]byte("2")): {0, 1, 2, 3, 4, 5},
|
||||
}
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, onDisk)
|
||||
return filesystem.NewMockBlobStorageSummarizer(t, de, onDisk)
|
||||
},
|
||||
cc: []commitmentCount{
|
||||
{slot: 0, count: 2, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: 5, count: 3, root: bytesutil.ToBytes32([]byte("1"))},
|
||||
{slot: 10, count: 3},
|
||||
{slot: 15, count: params.BeaconConfig().MaxBlobsPerBlock(0), root: bytesutil.ToBytes32([]byte("2"))},
|
||||
{slot: denebRel(0), count: 2, root: bytesutil.ToBytes32([]byte("0"))},
|
||||
{slot: denebRel(5), count: 3, root: bytesutil.ToBytes32([]byte("1"))},
|
||||
{slot: denebRel(10), count: 3},
|
||||
{slot: denebRel(15), count: maxBlobs, root: bytesutil.ToBytes32([]byte("2"))},
|
||||
},
|
||||
expected: &blobRange{low: 5, high: 10},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: 5, Count: 6},
|
||||
expected: &blobRange{low: denebRel(5), high: denebRel(10)},
|
||||
request: ðpb.BlobSidecarsByRangeRequest{StartSlot: denebRel(5), Count: 6},
|
||||
},
|
||||
}
|
||||
for _, c := range cases {
|
||||
@@ -1218,8 +1224,8 @@ func TestCommitmentCountList(t *testing.T) {
|
||||
require.IsNil(t, br.Request())
|
||||
} else {
|
||||
req := br.Request()
|
||||
require.DeepEqual(t, req.StartSlot, c.request.StartSlot)
|
||||
require.DeepEqual(t, req.Count, c.request.Count)
|
||||
require.Equal(t, req.StartSlot, c.request.StartSlot)
|
||||
require.Equal(t, req.Count, c.request.Count)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1299,7 +1305,7 @@ func TestVerifyAndPopulateBlobs(t *testing.T) {
|
||||
r1: {0, 1},
|
||||
r7: {0, 1, 2, 3, 4, 5},
|
||||
}
|
||||
bss := filesystem.NewMockBlobStorageSummarizer(t, onDisk)
|
||||
bss := filesystem.NewMockBlobStorageSummarizer(t, params.BeaconConfig().DenebForkEpoch, onDisk)
|
||||
err := verifyAndPopulateBlobs(bwb, blobs, testReqFromResp(bwb), bss)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 6, len(bwb[i1].Blobs))
|
||||
|
||||
Reference in New Issue
Block a user