2021-10-18 12:48:05 -05:00
|
|
|
package node
|
|
|
|
|
2021-11-04 14:19:44 -04:00
|
|
|
import (
|
2024-02-14 21:46:47 -08:00
|
|
|
"github.com/prysmaticlabs/prysm/v5/beacon-chain/blockchain"
|
|
|
|
"github.com/prysmaticlabs/prysm/v5/beacon-chain/builder"
|
|
|
|
"github.com/prysmaticlabs/prysm/v5/beacon-chain/db/filesystem"
|
|
|
|
"github.com/prysmaticlabs/prysm/v5/beacon-chain/execution"
|
|
|
|
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives"
|
2021-11-04 14:19:44 -04:00
|
|
|
)
|
2021-10-18 12:48:05 -05:00
|
|
|
|
|
|
|
// Option for beacon node configuration.
|
|
|
|
type Option func(bn *BeaconNode) error
|
|
|
|
|
|
|
|
// WithBlockchainFlagOptions includes functional options for the blockchain service related to CLI flags.
|
|
|
|
func WithBlockchainFlagOptions(opts []blockchain.Option) Option {
|
|
|
|
return func(bn *BeaconNode) error {
|
2021-11-04 14:19:44 -04:00
|
|
|
bn.serviceFlagOpts.blockchainFlagOpts = opts
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-08-01 07:43:47 -07:00
|
|
|
// WithExecutionChainOptions includes functional options for the execution chain service related to CLI flags.
|
|
|
|
func WithExecutionChainOptions(opts []execution.Option) Option {
|
2021-11-04 14:19:44 -04:00
|
|
|
return func(bn *BeaconNode) error {
|
2022-08-01 07:43:47 -07:00
|
|
|
bn.serviceFlagOpts.executionChainFlagOpts = opts
|
2021-10-18 12:48:05 -05:00
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
2022-06-01 08:12:15 -07:00
|
|
|
|
|
|
|
// WithBuilderFlagOptions includes functional options for the builder service related to CLI flags.
|
|
|
|
func WithBuilderFlagOptions(opts []builder.Option) Option {
|
|
|
|
return func(bn *BeaconNode) error {
|
|
|
|
bn.serviceFlagOpts.builderOpts = opts
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
2023-11-21 12:44:38 -06:00
|
|
|
|
|
|
|
// WithBlobStorage sets the BlobStorage backend for the BeaconNode
|
|
|
|
func WithBlobStorage(bs *filesystem.BlobStorage) Option {
|
|
|
|
return func(bn *BeaconNode) error {
|
|
|
|
bn.BlobStorage = bs
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
2023-12-06 14:20:34 -06:00
|
|
|
|
|
|
|
// WithBlobRetentionEpochs sets the blobRetentionEpochs value, used in kv store initialization.
|
|
|
|
func WithBlobRetentionEpochs(e primitives.Epoch) Option {
|
|
|
|
return func(bn *BeaconNode) error {
|
|
|
|
bn.blobRetentionEpochs = e
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|