diff --git a/beacon-chain/node/node.go b/beacon-chain/node/node.go index 23d3dd8986..5374afed9d 100644 --- a/beacon-chain/node/node.go +++ b/beacon-chain/node/node.go @@ -318,6 +318,7 @@ func startBaseServices(cliCtx *cli.Context, beacon *BeaconNode, depositAddress s } beacon.BlobStorage.WarmCache() + beacon.DataColumnStorage.WarmCache() log.Debugln("Starting Slashing DB") if err := beacon.startSlasherDB(cliCtx, clearer); err != nil { diff --git a/beacon-chain/p2p/discovery_test.go b/beacon-chain/p2p/discovery_test.go index 8ee1b43480..5bb38c350b 100644 --- a/beacon-chain/p2p/discovery_test.go +++ b/beacon-chain/p2p/discovery_test.go @@ -969,7 +969,7 @@ func TestFindPeers_NodeDeduplication(t *testing.T) { cache.SubnetIDs.EmptyAllCaches() defer cache.SubnetIDs.EmptyAllCaches() - ctx := context.Background() + ctx := t.Context() // Create LocalNodes and manipulate sequence numbers localNode1 := createTestNodeWithID(t, "node1") @@ -1193,8 +1193,6 @@ func TestFindPeers_received_bad_existing_node(t *testing.T) { cache.SubnetIDs.EmptyAllCaches() defer cache.SubnetIDs.EmptyAllCaches() - ctx := context.Background() - // Create LocalNode with same ID but different sequences localNode1 := createTestNodeWithID(t, "testnode") node1_seq1 := localNode1.Node() // Get current node @@ -1213,7 +1211,7 @@ func TestFindPeers_received_bad_existing_node(t *testing.T) { MaxPeers: 30, }, genesisValidatorsRoot: bytesutil.PadTo([]byte{'A'}, 32), - peers: peers.NewStatus(ctx, &peers.StatusConfig{ + peers: peers.NewStatus(t.Context(), &peers.StatusConfig{ PeerLimit: 30, ScorerParams: &scorers.Config{}, }), @@ -1243,7 +1241,7 @@ func TestFindPeers_received_bad_existing_node(t *testing.T) { service.dv5Listener = testp2p.NewMockListener(localNode, iter) // Run findPeers - node1_seq1 gets processed first, then callback marks peer bad, then node1_seq2 fails - ctxWithTimeout, cancel := context.WithTimeout(ctx, 1*time.Second) + ctxWithTimeout, cancel := context.WithTimeout(t.Context(), 1*time.Second) defer cancel() result, err := service.findPeers(ctxWithTimeout, 3) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel index 902c11f993..55cb56d63e 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel @@ -1,3 +1,5 @@ +# gazelle:ignore + load("@prysm//tools/go:def.bzl", "go_library", "go_test") go_library( @@ -63,8 +65,8 @@ go_library( "//beacon-chain/rpc/core:go_default_library", "//beacon-chain/startup:go_default_library", "//beacon-chain/state:go_default_library", - "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/state/state-native:go_default_library", + "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync:go_default_library", "//config/features:go_default_library", "//config/fieldparams:go_default_library", @@ -81,7 +83,7 @@ go_library( "//crypto/rand:go_default_library", "//encoding/bytesutil:go_default_library", "//encoding/ssz:go_default_library", - "//genesis:go_default_library", + "//genesis:go_default_library", "//math:go_default_library", "//monitoring/tracing:go_default_library", "//monitoring/tracing/trace:go_default_library", @@ -181,7 +183,6 @@ common_deps = [ "@org_golang_google_protobuf//types/known/emptypb:go_default_library", ] -# gazelle:ignore go_test( name = "go_default_test", timeout = "moderate", diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/construct_generic_block_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/construct_generic_block_test.go index 411f19789e..1eecb10a74 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/construct_generic_block_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/construct_generic_block_test.go @@ -29,12 +29,19 @@ func TestConstructGenericBeaconBlock(t *testing.T) { require.NoError(t, err) r1, err := eb.Block.HashTreeRoot() require.NoError(t, err) - result, err := vs.constructGenericBeaconBlock(b, nil, primitives.ZeroWei()) + bundle := &enginev1.BlobsBundleV2{ + KzgCommitments: [][]byte{{1, 2, 3}}, + Proofs: [][]byte{{4, 5, 6}}, + Blobs: [][]byte{{7, 8, 9}}, + } + result, err := vs.constructGenericBeaconBlock(b, bundle, primitives.ZeroWei()) require.NoError(t, err) r2, err := result.GetFulu().Block.HashTreeRoot() require.NoError(t, err) require.Equal(t, r1, r2) require.Equal(t, result.IsBlinded, false) + require.DeepEqual(t, bundle.Blobs, result.GetFulu().GetBlobs()) + require.DeepEqual(t, bundle.Proofs, result.GetFulu().GetKzgProofs()) }) // Test for Electra version diff --git a/changelog/manu-peerdas-various.md b/changelog/manu-peerdas-various.md new file mode 100644 index 0000000000..140445c778 --- /dev/null +++ b/changelog/manu-peerdas-various.md @@ -0,0 +1,3 @@ +### Added +- Warm data columns storage cache at start. +- Add `--data-column-path` flag. diff --git a/cmd/beacon-chain/main.go b/cmd/beacon-chain/main.go index dd145406b2..71356af20a 100644 --- a/cmd/beacon-chain/main.go +++ b/cmd/beacon-chain/main.go @@ -65,6 +65,7 @@ var appFlags = []cli.Flag{ flags.SlotsPerArchivedPoint, flags.DisableDebugRPCEndpoints, flags.SubscribeToAllSubnets, + flags.SubscribeAllDataSubnets, flags.HistoricalSlasherNode, flags.ChainID, flags.NetworkID, @@ -86,7 +87,6 @@ var appFlags = []cli.Flag{ flags.BeaconDBPruning, flags.PrunerRetentionEpochs, flags.EnableBuilderSSZ, - flags.SubscribeAllDataSubnets, cmd.MinimalConfigFlag, cmd.E2EConfigFlag, cmd.RPCMaxPageSizeFlag, @@ -144,6 +144,7 @@ var appFlags = []cli.Flag{ flags.SlasherFlag, flags.JwtId, storage.BlobStoragePathFlag, + storage.DataColumnStoragePathFlag, storage.BlobRetentionEpochFlag, storage.BlobStorageLayout, bflags.EnableExperimentalBackfill, diff --git a/cmd/beacon-chain/storage/options_test.go b/cmd/beacon-chain/storage/options_test.go index 5f679da25c..b4bdcd79a1 100644 --- a/cmd/beacon-chain/storage/options_test.go +++ b/cmd/beacon-chain/storage/options_test.go @@ -61,3 +61,12 @@ func TestConfigureBlobRetentionEpoch(t *testing.T) { _, err = blobRetentionEpoch(cliCtx) require.ErrorIs(t, err, errInvalidBlobRetentionEpochs) } +func TestDataColumnStoragePath_FlagSpecified(t *testing.T) { + app := cli.App{} + set := flag.NewFlagSet("test", 0) + set.String(DataColumnStoragePathFlag.Name, "/blah/blah", DataColumnStoragePathFlag.Usage) + cliCtx := cli.NewContext(&app, set, nil) + storagePath := dataColumnStoragePath(cliCtx) + + assert.Equal(t, "/blah/blah", storagePath) +} diff --git a/cmd/beacon-chain/usage.go b/cmd/beacon-chain/usage.go index be50e7ec7a..80aab2ee4c 100644 --- a/cmd/beacon-chain/usage.go +++ b/cmd/beacon-chain/usage.go @@ -127,6 +127,7 @@ var appHelpFlagGroups = []flagGroup{ storage.BlobRetentionEpochFlag, storage.BlobStorageLayout, storage.BlobStoragePathFlag, + storage.DataColumnStoragePathFlag, }, }, { // Flags relevant to configuring local block production or external builders such as mev-boost.