mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 03:30:37 +00:00
Caplin: under the hood block downloading (#8459)
This commit is contained in:
parent
f265bd8bfc
commit
9e42b705ce
@ -78,7 +78,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry
|
||||
COPY --from=builder /app/build/bin/state /usr/local/bin/state
|
||||
COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool
|
||||
COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle
|
||||
COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1
|
||||
COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin
|
||||
COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression
|
||||
|
||||
|
||||
|
@ -74,7 +74,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry
|
||||
COPY --from=builder /app/build/bin/state /usr/local/bin/state
|
||||
COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool
|
||||
COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle
|
||||
COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1
|
||||
COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin
|
||||
COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression
|
||||
|
||||
EXPOSE 8545 \
|
||||
|
2
Makefile
2
Makefile
@ -119,7 +119,7 @@ COMMANDS += txpool
|
||||
COMMANDS += verkle
|
||||
COMMANDS += evm
|
||||
COMMANDS += sentinel
|
||||
COMMANDS += caplin-phase1
|
||||
COMMANDS += caplin
|
||||
COMMANDS += caplin-regression
|
||||
|
||||
|
||||
|
@ -33,6 +33,10 @@ func (m *mockEngine) ForkChoiceUpdate(finalized libcommon.Hash, head libcommon.H
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
func (m *mockEngine) FrozenBlocks() uint64 {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
func (m *mockEngine) NewPayload(payload *cltypes.Eth1Block, beaconParentRoot *libcommon.Hash) (bool, error) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/golang/snappy"
|
||||
"github.com/ledgerwatch/erigon/cl/clparams"
|
||||
"github.com/ledgerwatch/erigon/cl/cltypes"
|
||||
)
|
||||
@ -40,11 +41,11 @@ func writeExecutionBlockPtr(w io.Writer, p *cltypes.Eth1Block) error {
|
||||
temp := make([]byte, 8)
|
||||
binary.BigEndian.PutUint64(temp, p.BlockNumber)
|
||||
|
||||
return writeChunk(w, temp, pointerDataType, false)
|
||||
return writeChunk(w, temp, pointerDataType)
|
||||
}
|
||||
|
||||
func readExecutionBlockPtr(r io.Reader) (uint64, error) {
|
||||
b, dT, err := readChunk(r, false)
|
||||
b, dT, err := readChunk(r)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
@ -90,11 +91,15 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error
|
||||
currentChunkLength += uint64(body.AttesterSlashings.EncodingSizeSSZ())
|
||||
|
||||
// Write the chunk and chunk attestations
|
||||
if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType, false); err != nil {
|
||||
if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType); err != nil {
|
||||
return err
|
||||
}
|
||||
encoded = encoded[currentChunkLength:]
|
||||
if err := writeChunk(w, encoded[:uint64(body.Attestations.EncodingSizeSSZ())], chunkDataType, true); err != nil {
|
||||
snappyWriter := snappy.NewBufferedWriter(w)
|
||||
if err := writeChunk(snappyWriter, encoded[:uint64(body.Attestations.EncodingSizeSSZ())], chunkDataType); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := snappyWriter.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
encoded = encoded[body.Attestations.EncodingSizeSSZ():]
|
||||
@ -103,7 +108,7 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error
|
||||
currentChunkLength += uint64(body.Deposits.EncodingSizeSSZ())
|
||||
currentChunkLength += uint64(body.VoluntaryExits.EncodingSizeSSZ())
|
||||
|
||||
if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType, false); err != nil {
|
||||
if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType); err != nil {
|
||||
return err
|
||||
}
|
||||
// we are done if we are before altair
|
||||
@ -117,10 +122,13 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error
|
||||
if version <= clparams.BellatrixVersion {
|
||||
return nil
|
||||
}
|
||||
return writeChunk(w, encoded, chunkDataType, false)
|
||||
return writeChunk(w, encoded, chunkDataType)
|
||||
}
|
||||
|
||||
func ReadBlockFromrSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) {
|
||||
func ReadBlockFromSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) {
|
||||
plainSSZ := []byte{}
|
||||
|
||||
block := cltypes.NewSignedBeaconBlock(cfg)
|
||||
// Metadata section is just the current hardfork of the block. TODO(give it a useful purpose)
|
||||
v, err := readMetadataForBlock(r)
|
||||
if err != nil {
|
||||
@ -128,31 +136,34 @@ func ReadBlockFromrSnapshot(r io.Reader, executionReader ExecutionBlockReaderByN
|
||||
}
|
||||
|
||||
// Read the first chunk
|
||||
chunk1, dT1, err := readChunk(r, false)
|
||||
chunk1, dT1, err := readChunk(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if dT1 != chunkDataType {
|
||||
return nil, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunkDataType)
|
||||
}
|
||||
plainSSZ = append(plainSSZ, chunk1...)
|
||||
// Read the attestation chunk (2nd chunk)
|
||||
chunk2, dT2, err := readChunk(r, true)
|
||||
chunk2, dT2, err := readChunk(snappy.NewReader(r))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if dT2 != chunkDataType {
|
||||
return nil, fmt.Errorf("malformed beacon block, invalid chunk 2 type %d, expected: %d", dT2, chunkDataType)
|
||||
}
|
||||
plainSSZ = append(plainSSZ, chunk2...)
|
||||
// Read the 3rd chunk
|
||||
chunk3, dT3, err := readChunk(r, false)
|
||||
chunk3, dT3, err := readChunk(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if dT3 != chunkDataType {
|
||||
return nil, fmt.Errorf("malformed beacon block, invalid chunk 3 type %d, expected: %d", dT3, chunkDataType)
|
||||
}
|
||||
plainSSZ = append(plainSSZ, chunk3...)
|
||||
if v <= clparams.AltairVersion {
|
||||
return blockFromChunks(v, cfg, chunk1, chunk2, chunk3)
|
||||
return block, block.DecodeSSZ(plainSSZ, int(v))
|
||||
}
|
||||
// Read the block pointer and retrieve chunk4 from the execution reader
|
||||
blockPointer, err := readExecutionBlockPtr(r)
|
||||
@ -168,28 +179,20 @@ func ReadBlockFromrSnapshot(r io.Reader, executionReader ExecutionBlockReaderByN
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
plainSSZ = append(plainSSZ, chunk4...)
|
||||
if v <= clparams.BellatrixVersion {
|
||||
return blockFromChunks(v, cfg, chunk1, chunk2, chunk3, chunk4)
|
||||
return block, block.DecodeSSZ(plainSSZ, int(v))
|
||||
}
|
||||
|
||||
// Read the 5h chunk
|
||||
chunk5, dT5, err := readChunk(r, false)
|
||||
chunk5, dT5, err := readChunk(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if dT5 != chunkDataType {
|
||||
return nil, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT5, chunkDataType)
|
||||
}
|
||||
plainSSZ = append(plainSSZ, chunk5...)
|
||||
|
||||
return blockFromChunks(v, cfg, chunk1, chunk2, chunk3, chunk4, chunk5)
|
||||
}
|
||||
|
||||
func blockFromChunks(v clparams.StateVersion, cfg *clparams.BeaconChainConfig, chunks ...[]byte) (*cltypes.SignedBeaconBlock, error) {
|
||||
block := cltypes.NewSignedBeaconBlock(cfg)
|
||||
plainSSZ := []byte{}
|
||||
for _, chunk := range chunks {
|
||||
plainSSZ = append(plainSSZ, chunk...)
|
||||
}
|
||||
return block, block.DecodeSSZ(plainSSZ, int(v))
|
||||
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ func TestBlockSnapshotEncoding(t *testing.T) {
|
||||
}
|
||||
var b bytes.Buffer
|
||||
require.NoError(t, snapshot_format.WriteBlockForSnapshot(blk, &b))
|
||||
blk2, err := snapshot_format.ReadBlockFromrSnapshot(&b, &br, &clparams.MainnetBeaconConfig)
|
||||
blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig)
|
||||
require.NoError(t, err)
|
||||
_ = blk2
|
||||
hash1, err := blk.HashSSZ()
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"io"
|
||||
|
||||
"github.com/ledgerwatch/erigon/cl/clparams"
|
||||
"github.com/ledgerwatch/erigon/cl/utils"
|
||||
)
|
||||
|
||||
type dataType int
|
||||
@ -17,10 +16,7 @@ const (
|
||||
)
|
||||
|
||||
// writeChunk writes a chunk to the writer.
|
||||
func writeChunk(w io.Writer, buf []byte, t dataType, snappy bool) error {
|
||||
if snappy {
|
||||
buf = utils.CompressSnappy(buf)
|
||||
}
|
||||
func writeChunk(w io.Writer, buf []byte, t dataType) error {
|
||||
// prefix is type of chunk + length of chunk
|
||||
prefix := make([]byte, 8)
|
||||
binary.BigEndian.PutUint64(prefix, uint64(len(buf)))
|
||||
@ -34,22 +30,20 @@ func writeChunk(w io.Writer, buf []byte, t dataType, snappy bool) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func readChunk(r io.Reader, snappy bool) (buf []byte, t dataType, err error) {
|
||||
func readChunk(r io.Reader) (buf []byte, t dataType, err error) {
|
||||
prefix := make([]byte, 8)
|
||||
if _, err := r.Read(prefix); err != nil {
|
||||
return nil, dataType(0), err
|
||||
fmt.Println("A")
|
||||
if _, err = r.Read(prefix); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
t = dataType(prefix[0])
|
||||
prefix[0] = 0
|
||||
fmt.Println(binary.BigEndian.Uint64(prefix))
|
||||
buf = make([]byte, binary.BigEndian.Uint64(prefix))
|
||||
if _, err := r.Read(buf); err != nil {
|
||||
return nil, t, err
|
||||
if _, err = r.Read(buf); err != nil {
|
||||
return
|
||||
}
|
||||
if snappy {
|
||||
buf, err = utils.DecompressSnappy(buf)
|
||||
}
|
||||
return buf, t, err
|
||||
return
|
||||
}
|
||||
|
||||
func readMetadataForBlock(r io.Reader) (clparams.StateVersion, error) {
|
||||
|
@ -96,3 +96,7 @@ func (cc *ExecutionClientDirect) GetBodiesByRange(start, count uint64) ([]*types
|
||||
func (cc *ExecutionClientDirect) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) {
|
||||
return cc.chainRW.GetBodiesByHases(hashes), nil
|
||||
}
|
||||
|
||||
func (cc *ExecutionClientDirect) FrozenBlocks() uint64 {
|
||||
return cc.chainRW.FrozenBlocks()
|
||||
}
|
||||
|
@ -224,3 +224,7 @@ func (cc *ExecutionClientRpc) GetBodiesByHashes(hashes []libcommon.Hash) ([]*typ
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (cc *ExecutionClientRpc) FrozenBlocks() uint64 {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
@ -22,4 +22,6 @@ type ExecutionEngine interface {
|
||||
// Range methods
|
||||
GetBodiesByRange(start, count uint64) ([]*types.RawBody, error)
|
||||
GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error)
|
||||
// Snapshots
|
||||
FrozenBlocks() uint64
|
||||
}
|
||||
|
@ -154,7 +154,7 @@ func (g *GossipManager) onRecv(ctx context.Context, data *sentinel.GossipData, l
|
||||
if err := operationsContract[*cltypes.AttesterSlashing](ctx, g, l, data, int(version), "attester slashing", g.forkChoice.OnAttesterSlashing); err != nil {
|
||||
return err
|
||||
}
|
||||
case sentinel.GossipType_BlsToExecutionChangeType:
|
||||
case sentinel.GossipType_BlsToExecutionChangeGossipType:
|
||||
if err := operationsContract[*cltypes.SignedBLSToExecutionChange](ctx, g, l, data, int(version), "bls to execution change", g.forkChoice.OnBlsToExecutionChange); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -46,6 +46,8 @@ type Args struct {
|
||||
|
||||
targetEpoch, seenEpoch uint64
|
||||
targetSlot, seenSlot uint64
|
||||
|
||||
downloadedHistory bool
|
||||
}
|
||||
|
||||
func ClStagesCfg(
|
||||
@ -93,11 +95,11 @@ const (
|
||||
minPeersForDownload = uint64(4)
|
||||
)
|
||||
|
||||
func MetaCatchingUp(args Args, hasDownloaded bool) StageName {
|
||||
func MetaCatchingUp(args Args) StageName {
|
||||
if args.peers < minPeersForDownload {
|
||||
return WaitForPeers
|
||||
}
|
||||
if !hasDownloaded {
|
||||
if !args.downloadedHistory {
|
||||
return DownloadHistoricalBlocks
|
||||
}
|
||||
if args.seenEpoch < args.targetEpoch {
|
||||
@ -188,6 +190,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
log.Error("failed to get sentinel peer count", "err", err)
|
||||
args.peers = 0
|
||||
}
|
||||
args.downloadedHistory = downloaded
|
||||
args.seenSlot = cfg.forkChoice.HighestSeen()
|
||||
args.seenEpoch = args.seenSlot / cfg.beaconCfg.SlotsPerEpoch
|
||||
args.targetSlot = utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot)
|
||||
@ -199,7 +202,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
WaitForPeers: {
|
||||
Description: `wait for enough peers. This is also a safe stage to go to when unsure of what stage to use`,
|
||||
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
return CatchUpBlocks
|
||||
@ -232,7 +235,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
DownloadHistoricalBlocks: {
|
||||
Description: "Download historical blocks",
|
||||
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
return CatchUpBlocks
|
||||
@ -256,7 +259,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
CatchUpEpochs: {
|
||||
Description: `if we are 1 or more epochs behind, we download in parallel by epoch`,
|
||||
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
return CatchUpBlocks
|
||||
@ -321,7 +324,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
CatchUpBlocks: {
|
||||
Description: `if we are within the epoch but not at head, we run catchupblocks`,
|
||||
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
return ForkChoice
|
||||
@ -378,7 +381,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
Description: `fork choice stage. We will send all fork choise things here
|
||||
also, we will wait up to delay seconds to deal with attestations + side forks`,
|
||||
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
return ListenForForks
|
||||
@ -466,7 +469,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
defer func() {
|
||||
shouldForkChoiceSinceReorg = false
|
||||
}()
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
if shouldForkChoiceSinceReorg {
|
||||
@ -512,7 +515,7 @@ func ConsensusClStages(ctx context.Context,
|
||||
CleanupAndPruning: {
|
||||
Description: `cleanup and pruning is done here`,
|
||||
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
|
||||
if x := MetaCatchingUp(args, downloaded); x != "" {
|
||||
if x := MetaCatchingUp(args); x != "" {
|
||||
return x
|
||||
}
|
||||
return SleepForSlot
|
||||
|
@ -56,33 +56,12 @@ func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db
|
||||
}
|
||||
}
|
||||
|
||||
func waitForExecutionEngineToBeReady(ctx context.Context, engine execution_client.ExecutionEngine) error {
|
||||
if engine == nil {
|
||||
return nil
|
||||
}
|
||||
checkInterval := time.NewTicker(200 * time.Millisecond)
|
||||
for {
|
||||
select {
|
||||
case <-checkInterval.C:
|
||||
ready, err := engine.Ready()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if ready {
|
||||
return nil
|
||||
}
|
||||
case <-ctx.Done():
|
||||
return ctx.Err()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SpawnStageBeaconsForward spawn the beacon forward stage
|
||||
func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Context, logger log.Logger) error {
|
||||
// Wait for execution engine to be ready.
|
||||
if err := waitForExecutionEngineToBeReady(ctx, cfg.engine); err != nil {
|
||||
return err
|
||||
}
|
||||
// if err := waitForExecutionEngineToBeReady(ctx, cfg.engine); err != nil {
|
||||
// return err
|
||||
// }
|
||||
blockRoot := cfg.startingRoot
|
||||
destinationSlot := uint64(0)
|
||||
currentSlot := cfg.startingSlot
|
||||
@ -90,16 +69,16 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
|
||||
destinationSlot = currentSlot - cfg.dbCfg.PruneDepth
|
||||
}
|
||||
|
||||
executionBlocksCollector := etl.NewCollector("SpawnStageHistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger)
|
||||
executionBlocksCollector := etl.NewCollector("HistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger)
|
||||
defer executionBlocksCollector.Close()
|
||||
// Start the procedure
|
||||
logger.Info("Downloading History", "from", currentSlot)
|
||||
logger.Info("Starting downloading History", "from", currentSlot)
|
||||
// Setup slot and block root
|
||||
cfg.downloader.SetSlotToDownload(currentSlot)
|
||||
cfg.downloader.SetExpectedRoot(blockRoot)
|
||||
foundLatestEth1ValidHash := false
|
||||
foundLatestEth1ValidBlock := false
|
||||
if cfg.engine == nil || !cfg.engine.SupportInsertion() {
|
||||
foundLatestEth1ValidHash = true // skip this if we are not using an engine supporting direct insertion
|
||||
foundLatestEth1ValidBlock = true // skip this if we are not using an engine supporting direct insertion
|
||||
}
|
||||
|
||||
var currEth1Progress atomic.Int64
|
||||
@ -114,7 +93,14 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
|
||||
if blk.Version() >= clparams.BellatrixVersion {
|
||||
currEth1Progress.Store(int64(blk.Block.Body.ExecutionPayload.BlockNumber))
|
||||
}
|
||||
if !foundLatestEth1ValidHash {
|
||||
|
||||
slot := blk.Block.Slot
|
||||
if destinationSlot <= blk.Block.Slot {
|
||||
if err := cfg.db.WriteBlock(tx, ctx, blk, true); err != nil {
|
||||
return false, err
|
||||
}
|
||||
}
|
||||
if !foundLatestEth1ValidBlock {
|
||||
payload := blk.Block.Body.ExecutionPayload
|
||||
encodedPayload, err := payload.EncodeSSZ(nil)
|
||||
if err != nil {
|
||||
@ -125,21 +111,18 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
|
||||
if err := executionBlocksCollector.Collect(dbutils.BlockBodyKey(payload.BlockNumber, payload.BlockHash), encodedPayload); err != nil {
|
||||
return false, fmt.Errorf("error collecting execution payload during download: %s", err)
|
||||
}
|
||||
if currEth1Progress.Load()%100 == 0 {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
bodyChainHeader, err := cfg.engine.GetBodiesByHashes([]libcommon.Hash{payload.BlockHash})
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error retrieving whether execution payload is present: %s", err)
|
||||
}
|
||||
foundLatestEth1ValidHash = len(bodyChainHeader) > 0
|
||||
foundLatestEth1ValidBlock = len(bodyChainHeader) > 0 || cfg.engine.FrozenBlocks() > payload.BlockNumber
|
||||
}
|
||||
|
||||
slot := blk.Block.Slot
|
||||
if destinationSlot <= blk.Block.Slot {
|
||||
if err := cfg.db.WriteBlock(tx, ctx, blk, true); err != nil {
|
||||
return false, err
|
||||
}
|
||||
}
|
||||
return slot <= destinationSlot && foundLatestEth1ValidHash, nil
|
||||
return slot <= destinationSlot && foundLatestEth1ValidBlock, nil
|
||||
})
|
||||
prevProgress := cfg.downloader.Progress()
|
||||
|
||||
@ -150,6 +133,15 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
|
||||
for {
|
||||
select {
|
||||
case <-logInterval.C:
|
||||
if cfg.engine.SupportInsertion() {
|
||||
if ready, err := cfg.engine.Ready(); !ready {
|
||||
if err != nil {
|
||||
log.Warn("could not log progress", "err", err)
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
}
|
||||
logArgs := []interface{}{}
|
||||
currProgress := cfg.downloader.Progress()
|
||||
speed := float64(prevProgress-currProgress) / float64(logIntervalTime/time.Second)
|
||||
@ -187,6 +179,8 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
|
||||
blockBatch := []*types.Block{}
|
||||
blockBatchMaxSize := 1000
|
||||
|
||||
cfg.logger.Info("Ready to insert history, waiting for sync cycle to finish")
|
||||
|
||||
if err := executionBlocksCollector.Load(tx2, kv.Headers, func(k, vComp []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error {
|
||||
if cfg.engine == nil || !cfg.engine.SupportInsertion() {
|
||||
return next(k, nil, nil)
|
||||
|
@ -111,7 +111,7 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi
|
||||
fmt.Println("A")
|
||||
{ // start ticking forkChoice
|
||||
go func() {
|
||||
tickInterval := time.NewTicker(2 * time.Millisecond)
|
||||
tickInterval := time.NewTicker(50 * time.Millisecond)
|
||||
for {
|
||||
select {
|
||||
case <-tickInterval.C:
|
@ -29,17 +29,17 @@ import (
|
||||
|
||||
"github.com/ledgerwatch/erigon/cl/cltypes"
|
||||
"github.com/ledgerwatch/erigon/cl/fork"
|
||||
"github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1"
|
||||
"github.com/ledgerwatch/erigon/cmd/caplin/caplin1"
|
||||
lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli"
|
||||
"github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags"
|
||||
"github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
|
||||
"github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service"
|
||||
lightclientapp "github.com/ledgerwatch/erigon/turbo/app"
|
||||
app "github.com/ledgerwatch/erigon/turbo/app"
|
||||
"github.com/ledgerwatch/erigon/turbo/debug"
|
||||
)
|
||||
|
||||
func main() {
|
||||
app := lightclientapp.MakeApp("caplin-phase1", runCaplinNode, flags.CLDefaultFlags)
|
||||
app := app.MakeApp("caplin", runCaplinNode, flags.CLDefaultFlags)
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
_, printErr := fmt.Fprintln(os.Stderr, err)
|
||||
if printErr != nil {
|
@ -283,7 +283,7 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error {
|
||||
} else if strings.Contains(*pkt.Topic, string(sentinel.AttesterSlashingTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_AttesterSlashingGossipType, data, string(textPid))
|
||||
} else if strings.Contains(*pkt.Topic, string(sentinel.BlsToExecutionChangeTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeType, data, string(textPid))
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeGossipType, data, string(textPid))
|
||||
} else if strings.Contains(*pkt.Topic, string(sentinel.BlobSidecarTopic)) {
|
||||
// extract the index
|
||||
s.gossipNotifier.notifyBlob(sentinelrpc.GossipType_BlobSidecarType, data, string(textPid), extractBlobSideCarIndex(*pkt.Topic))
|
||||
|
@ -96,3 +96,7 @@ func (s *ExecutionClientDirect) GetForkChoice(ctx context.Context, in *emptypb.E
|
||||
func (s *ExecutionClientDirect) Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.ReadyResponse, error) {
|
||||
return s.server.Ready(ctx, in)
|
||||
}
|
||||
|
||||
func (s *ExecutionClientDirect) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.FrozenBlocksResponse, error) {
|
||||
return s.server.FrozenBlocks(ctx, in)
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ go 1.19
|
||||
|
||||
require (
|
||||
github.com/erigontech/mdbx-go v0.27.17
|
||||
github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0
|
||||
github.com/ledgerwatch/interfaces v0.0.0-20231011121315-f58b806039f0
|
||||
github.com/ledgerwatch/log/v3 v3.9.0
|
||||
github.com/ledgerwatch/secp256k1 v1.0.0
|
||||
)
|
||||
|
@ -241,8 +241,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
|
||||
github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0 h1:pCLKf3lanroMo1SpA/idi5RyGOIBwvwVRLNwV0suHQU=
|
||||
github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc=
|
||||
github.com/ledgerwatch/interfaces v0.0.0-20231011121315-f58b806039f0 h1:7z6cyoCKP6qxtKSO74eAY6XiHWKaOi+melvPeMCXLl8=
|
||||
github.com/ledgerwatch/interfaces v0.0.0-20231011121315-f58b806039f0/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc=
|
||||
github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk=
|
||||
github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE=
|
||||
github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ=
|
||||
|
@ -1566,6 +1566,53 @@ func (x *ReadyResponse) GetReady() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
type FrozenBlocksResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
FrozenBlocks uint64 `protobuf:"varint,1,opt,name=frozen_blocks,json=frozenBlocks,proto3" json:"frozen_blocks,omitempty"`
|
||||
}
|
||||
|
||||
func (x *FrozenBlocksResponse) Reset() {
|
||||
*x = FrozenBlocksResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_execution_execution_proto_msgTypes[24]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *FrozenBlocksResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*FrozenBlocksResponse) ProtoMessage() {}
|
||||
|
||||
func (x *FrozenBlocksResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_execution_execution_proto_msgTypes[24]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use FrozenBlocksResponse.ProtoReflect.Descriptor instead.
|
||||
func (*FrozenBlocksResponse) Descriptor() ([]byte, []int) {
|
||||
return file_execution_execution_proto_rawDescGZIP(), []int{24}
|
||||
}
|
||||
|
||||
func (x *FrozenBlocksResponse) GetFrozenBlocks() uint64 {
|
||||
if x != nil {
|
||||
return x.FrozenBlocks
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_execution_execution_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_execution_execution_proto_rawDesc = []byte{
|
||||
@ -1808,87 +1855,96 @@ var file_execution_execution_proto_rawDesc = []byte{
|
||||
0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x0d, 0x52,
|
||||
0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61,
|
||||
0x64, 0x79, 0x2a, 0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
|
||||
0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01,
|
||||
0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02,
|
||||
0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46,
|
||||
0x6f, 0x72, 0x6b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42,
|
||||
0x75, 0x73, 0x79, 0x10, 0x05, 0x32, 0xf6, 0x08, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f,
|
||||
0x63, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
|
||||
0x4b, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c,
|
||||
0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
|
||||
0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10,
|
||||
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65,
|
||||
0x12, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72,
|
||||
0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65,
|
||||
0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c,
|
||||
0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63,
|
||||
0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74,
|
||||
0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23,
|
||||
0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73,
|
||||
0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63,
|
||||
0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72,
|
||||
0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x3f, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x47, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c,
|
||||
0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65,
|
||||
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65,
|
||||
0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64,
|
||||
0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65,
|
||||
0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61,
|
||||
0x6e, 0x67, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x64, 0x79, 0x22, 0x3b, 0x0a, 0x14, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63,
|
||||
0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72,
|
||||
0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x04, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2a,
|
||||
0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12,
|
||||
0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01, 0x12, 0x0e, 0x0a,
|
||||
0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02, 0x12, 0x12, 0x0a,
|
||||
0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10,
|
||||
0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x6b,
|
||||
0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x75, 0x73, 0x79,
|
||||
0x10, 0x05, 0x32, 0xbf, 0x09, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73,
|
||||
0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73,
|
||||
0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73,
|
||||
0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4b, 0x0a, 0x0d,
|
||||
0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e,
|
||||
0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78,
|
||||
0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x15, 0x2e,
|
||||
0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68,
|
||||
0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69,
|
||||
0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c,
|
||||
0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73,
|
||||
0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x2e, 0x65, 0x78,
|
||||
0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d,
|
||||
0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
|
||||
0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
|
||||
0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48,
|
||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a,
|
||||
0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47,
|
||||
0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x65, 0x78,
|
||||
0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x42, 0x6f,
|
||||
0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10,
|
||||
0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74,
|
||||
0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65,
|
||||
0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12,
|
||||
0x23, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42,
|
||||
0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71,
|
||||
0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e,
|
||||
0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70,
|
||||
0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65,
|
||||
0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b,
|
||||
0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78,
|
||||
0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
|
||||
0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68,
|
||||
0x6f, 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65,
|
||||
0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f,
|
||||
0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67,
|
||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17,
|
||||
0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78,
|
||||
0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6f,
|
||||
0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x65,
|
||||
0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69,
|
||||
0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69,
|
||||
0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
|
||||
0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
|
||||
0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b, 0x2e, 0x74, 0x79,
|
||||
0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61,
|
||||
0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63,
|
||||
0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65,
|
||||
0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
|
||||
0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x46,
|
||||
0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f,
|
||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1904,7 +1960,7 @@ func file_execution_execution_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_execution_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||
var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
|
||||
var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
|
||||
var file_execution_execution_proto_goTypes = []interface{}{
|
||||
(ExecutionStatus)(0), // 0: execution.ExecutionStatus
|
||||
(*ForkChoiceReceipt)(nil), // 1: execution.ForkChoiceReceipt
|
||||
@ -1931,90 +1987,93 @@ var file_execution_execution_proto_goTypes = []interface{}{
|
||||
(*GetBodiesByHashesRequest)(nil), // 22: execution.GetBodiesByHashesRequest
|
||||
(*GetBodiesByRangeRequest)(nil), // 23: execution.GetBodiesByRangeRequest
|
||||
(*ReadyResponse)(nil), // 24: execution.ReadyResponse
|
||||
(*types.H256)(nil), // 25: types.H256
|
||||
(*types.H160)(nil), // 26: types.H160
|
||||
(*types.H2048)(nil), // 27: types.H2048
|
||||
(*types.Withdrawal)(nil), // 28: types.Withdrawal
|
||||
(*types.ExecutionPayload)(nil), // 29: types.ExecutionPayload
|
||||
(*types.BlobsBundleV1)(nil), // 30: types.BlobsBundleV1
|
||||
(*emptypb.Empty)(nil), // 31: google.protobuf.Empty
|
||||
(*FrozenBlocksResponse)(nil), // 25: execution.FrozenBlocksResponse
|
||||
(*types.H256)(nil), // 26: types.H256
|
||||
(*types.H160)(nil), // 27: types.H160
|
||||
(*types.H2048)(nil), // 28: types.H2048
|
||||
(*types.Withdrawal)(nil), // 29: types.Withdrawal
|
||||
(*types.ExecutionPayload)(nil), // 30: types.ExecutionPayload
|
||||
(*types.BlobsBundleV1)(nil), // 31: types.BlobsBundleV1
|
||||
(*emptypb.Empty)(nil), // 32: google.protobuf.Empty
|
||||
}
|
||||
var file_execution_execution_proto_depIdxs = []int32{
|
||||
0, // 0: execution.ForkChoiceReceipt.status:type_name -> execution.ExecutionStatus
|
||||
25, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256
|
||||
26, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256
|
||||
0, // 2: execution.ValidationReceipt.validation_status:type_name -> execution.ExecutionStatus
|
||||
25, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256
|
||||
25, // 4: execution.Header.parent_hash:type_name -> types.H256
|
||||
26, // 5: execution.Header.coinbase:type_name -> types.H160
|
||||
25, // 6: execution.Header.state_root:type_name -> types.H256
|
||||
25, // 7: execution.Header.receipt_root:type_name -> types.H256
|
||||
27, // 8: execution.Header.logs_bloom:type_name -> types.H2048
|
||||
25, // 9: execution.Header.prev_randao:type_name -> types.H256
|
||||
25, // 10: execution.Header.difficulty:type_name -> types.H256
|
||||
25, // 11: execution.Header.block_hash:type_name -> types.H256
|
||||
25, // 12: execution.Header.ommer_hash:type_name -> types.H256
|
||||
25, // 13: execution.Header.transaction_hash:type_name -> types.H256
|
||||
25, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256
|
||||
25, // 15: execution.Header.withdrawal_hash:type_name -> types.H256
|
||||
25, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256
|
||||
25, // 17: execution.BlockBody.block_hash:type_name -> types.H256
|
||||
26, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256
|
||||
26, // 4: execution.Header.parent_hash:type_name -> types.H256
|
||||
27, // 5: execution.Header.coinbase:type_name -> types.H160
|
||||
26, // 6: execution.Header.state_root:type_name -> types.H256
|
||||
26, // 7: execution.Header.receipt_root:type_name -> types.H256
|
||||
28, // 8: execution.Header.logs_bloom:type_name -> types.H2048
|
||||
26, // 9: execution.Header.prev_randao:type_name -> types.H256
|
||||
26, // 10: execution.Header.difficulty:type_name -> types.H256
|
||||
26, // 11: execution.Header.block_hash:type_name -> types.H256
|
||||
26, // 12: execution.Header.ommer_hash:type_name -> types.H256
|
||||
26, // 13: execution.Header.transaction_hash:type_name -> types.H256
|
||||
26, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256
|
||||
26, // 15: execution.Header.withdrawal_hash:type_name -> types.H256
|
||||
26, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256
|
||||
26, // 17: execution.BlockBody.block_hash:type_name -> types.H256
|
||||
4, // 18: execution.BlockBody.uncles:type_name -> execution.Header
|
||||
28, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal
|
||||
29, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal
|
||||
4, // 20: execution.Block.header:type_name -> execution.Header
|
||||
5, // 21: execution.Block.body:type_name -> execution.BlockBody
|
||||
4, // 22: execution.GetHeaderResponse.header:type_name -> execution.Header
|
||||
25, // 23: execution.GetTDResponse.td:type_name -> types.H256
|
||||
26, // 23: execution.GetTDResponse.td:type_name -> types.H256
|
||||
5, // 24: execution.GetBodyResponse.body:type_name -> execution.BlockBody
|
||||
25, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256
|
||||
26, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256
|
||||
6, // 26: execution.InsertBlocksRequest.blocks:type_name -> execution.Block
|
||||
25, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256
|
||||
25, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256
|
||||
25, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256
|
||||
26, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256
|
||||
26, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256
|
||||
26, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256
|
||||
0, // 30: execution.InsertionResult.result:type_name -> execution.ExecutionStatus
|
||||
25, // 31: execution.ValidationRequest.hash:type_name -> types.H256
|
||||
25, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256
|
||||
25, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256
|
||||
26, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160
|
||||
28, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal
|
||||
25, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256
|
||||
29, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload
|
||||
25, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256
|
||||
30, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1
|
||||
26, // 31: execution.ValidationRequest.hash:type_name -> types.H256
|
||||
26, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256
|
||||
26, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256
|
||||
27, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160
|
||||
29, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal
|
||||
26, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256
|
||||
30, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload
|
||||
26, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256
|
||||
31, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1
|
||||
19, // 40: execution.GetAssembledBlockResponse.data:type_name -> execution.AssembledBlockData
|
||||
5, // 41: execution.GetBodiesBatchResponse.bodies:type_name -> execution.BlockBody
|
||||
25, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256
|
||||
26, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256
|
||||
12, // 43: execution.Execution.InsertBlocks:input_type -> execution.InsertBlocksRequest
|
||||
15, // 44: execution.Execution.ValidateChain:input_type -> execution.ValidationRequest
|
||||
13, // 45: execution.Execution.UpdateForkChoice:input_type -> execution.ForkChoice
|
||||
16, // 46: execution.Execution.AssembleBlock:input_type -> execution.AssembleBlockRequest
|
||||
18, // 47: execution.Execution.GetAssembledBlock:input_type -> execution.GetAssembledBlockRequest
|
||||
31, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty
|
||||
32, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty
|
||||
11, // 49: execution.Execution.GetTD:input_type -> execution.GetSegmentRequest
|
||||
11, // 50: execution.Execution.GetHeader:input_type -> execution.GetSegmentRequest
|
||||
11, // 51: execution.Execution.GetBody:input_type -> execution.GetSegmentRequest
|
||||
23, // 52: execution.Execution.GetBodiesByRange:input_type -> execution.GetBodiesByRangeRequest
|
||||
22, // 53: execution.Execution.GetBodiesByHashes:input_type -> execution.GetBodiesByHashesRequest
|
||||
25, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256
|
||||
25, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256
|
||||
31, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty
|
||||
31, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty
|
||||
14, // 58: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult
|
||||
2, // 59: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt
|
||||
1, // 60: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt
|
||||
17, // 61: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse
|
||||
20, // 62: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse
|
||||
7, // 63: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse
|
||||
8, // 64: execution.Execution.GetTD:output_type -> execution.GetTDResponse
|
||||
7, // 65: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse
|
||||
9, // 66: execution.Execution.GetBody:output_type -> execution.GetBodyResponse
|
||||
21, // 67: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse
|
||||
21, // 68: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse
|
||||
3, // 69: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse
|
||||
10, // 70: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse
|
||||
13, // 71: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice
|
||||
24, // 72: execution.Execution.Ready:output_type -> execution.ReadyResponse
|
||||
58, // [58:73] is the sub-list for method output_type
|
||||
43, // [43:58] is the sub-list for method input_type
|
||||
26, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256
|
||||
26, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256
|
||||
32, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty
|
||||
32, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty
|
||||
32, // 58: execution.Execution.FrozenBlocks:input_type -> google.protobuf.Empty
|
||||
14, // 59: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult
|
||||
2, // 60: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt
|
||||
1, // 61: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt
|
||||
17, // 62: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse
|
||||
20, // 63: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse
|
||||
7, // 64: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse
|
||||
8, // 65: execution.Execution.GetTD:output_type -> execution.GetTDResponse
|
||||
7, // 66: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse
|
||||
9, // 67: execution.Execution.GetBody:output_type -> execution.GetBodyResponse
|
||||
21, // 68: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse
|
||||
21, // 69: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse
|
||||
3, // 70: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse
|
||||
10, // 71: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse
|
||||
13, // 72: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice
|
||||
24, // 73: execution.Execution.Ready:output_type -> execution.ReadyResponse
|
||||
25, // 74: execution.Execution.FrozenBlocks:output_type -> execution.FrozenBlocksResponse
|
||||
59, // [59:75] is the sub-list for method output_type
|
||||
43, // [43:59] is the sub-list for method input_type
|
||||
43, // [43:43] is the sub-list for extension type_name
|
||||
43, // [43:43] is the sub-list for extension extendee
|
||||
0, // [0:43] is the sub-list for field type_name
|
||||
@ -2314,6 +2373,18 @@ func file_execution_execution_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_execution_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*FrozenBlocksResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
file_execution_execution_proto_msgTypes[3].OneofWrappers = []interface{}{}
|
||||
file_execution_execution_proto_msgTypes[6].OneofWrappers = []interface{}{}
|
||||
@ -2330,7 +2401,7 @@ func file_execution_execution_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_execution_execution_proto_rawDesc,
|
||||
NumEnums: 1,
|
||||
NumMessages: 24,
|
||||
NumMessages: 25,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
|
@ -36,6 +36,7 @@ const (
|
||||
Execution_GetHeaderHashNumber_FullMethodName = "/execution.Execution/GetHeaderHashNumber"
|
||||
Execution_GetForkChoice_FullMethodName = "/execution.Execution/GetForkChoice"
|
||||
Execution_Ready_FullMethodName = "/execution.Execution/Ready"
|
||||
Execution_FrozenBlocks_FullMethodName = "/execution.Execution/FrozenBlocks"
|
||||
)
|
||||
|
||||
// ExecutionClient is the client API for Execution service.
|
||||
@ -66,6 +67,8 @@ type ExecutionClient interface {
|
||||
// Misc
|
||||
// We want to figure out whether we processed snapshots and cleanup sync cycles.
|
||||
Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ReadyResponse, error)
|
||||
// Frozen blocks are how many blocks are in snapshots .seg files.
|
||||
FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error)
|
||||
}
|
||||
|
||||
type executionClient struct {
|
||||
@ -211,6 +214,15 @@ func (c *executionClient) Ready(ctx context.Context, in *emptypb.Empty, opts ...
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *executionClient) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error) {
|
||||
out := new(FrozenBlocksResponse)
|
||||
err := c.cc.Invoke(ctx, Execution_FrozenBlocks_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// ExecutionServer is the server API for Execution service.
|
||||
// All implementations must embed UnimplementedExecutionServer
|
||||
// for forward compatibility
|
||||
@ -239,6 +251,8 @@ type ExecutionServer interface {
|
||||
// Misc
|
||||
// We want to figure out whether we processed snapshots and cleanup sync cycles.
|
||||
Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error)
|
||||
// Frozen blocks are how many blocks are in snapshots .seg files.
|
||||
FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error)
|
||||
mustEmbedUnimplementedExecutionServer()
|
||||
}
|
||||
|
||||
@ -291,6 +305,9 @@ func (UnimplementedExecutionServer) GetForkChoice(context.Context, *emptypb.Empt
|
||||
func (UnimplementedExecutionServer) Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented")
|
||||
}
|
||||
func (UnimplementedExecutionServer) FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method FrozenBlocks not implemented")
|
||||
}
|
||||
func (UnimplementedExecutionServer) mustEmbedUnimplementedExecutionServer() {}
|
||||
|
||||
// UnsafeExecutionServer may be embedded to opt out of forward compatibility for this service.
|
||||
@ -574,6 +591,24 @@ func _Execution_Ready_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Execution_FrozenBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(emptypb.Empty)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(ExecutionServer).FrozenBlocks(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Execution_FrozenBlocks_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(ExecutionServer).FrozenBlocks(ctx, req.(*emptypb.Empty))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Execution_ServiceDesc is the grpc.ServiceDesc for Execution service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
@ -641,6 +676,10 @@ var Execution_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "Ready",
|
||||
Handler: _Execution_Ready_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "FrozenBlocks",
|
||||
Handler: _Execution_FrozenBlocks_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "execution/execution.proto",
|
||||
|
@ -25,13 +25,13 @@ type GossipType int32
|
||||
|
||||
const (
|
||||
// Global gossip topics.
|
||||
GossipType_BeaconBlockGossipType GossipType = 0
|
||||
GossipType_AggregateAndProofGossipType GossipType = 1
|
||||
GossipType_VoluntaryExitGossipType GossipType = 2
|
||||
GossipType_ProposerSlashingGossipType GossipType = 3
|
||||
GossipType_AttesterSlashingGossipType GossipType = 4
|
||||
GossipType_BlobSidecarType GossipType = 5
|
||||
GossipType_BlsToExecutionChangeType GossipType = 6
|
||||
GossipType_BeaconBlockGossipType GossipType = 0
|
||||
GossipType_AggregateAndProofGossipType GossipType = 1
|
||||
GossipType_VoluntaryExitGossipType GossipType = 2
|
||||
GossipType_ProposerSlashingGossipType GossipType = 3
|
||||
GossipType_AttesterSlashingGossipType GossipType = 4
|
||||
GossipType_BlobSidecarType GossipType = 5
|
||||
GossipType_BlsToExecutionChangeGossipType GossipType = 6
|
||||
)
|
||||
|
||||
// Enum value maps for GossipType.
|
||||
@ -43,16 +43,16 @@ var (
|
||||
3: "ProposerSlashingGossipType",
|
||||
4: "AttesterSlashingGossipType",
|
||||
5: "BlobSidecarType",
|
||||
6: "BlsToExecutionChangeType",
|
||||
6: "BlsToExecutionChangeGossipType",
|
||||
}
|
||||
GossipType_value = map[string]int32{
|
||||
"BeaconBlockGossipType": 0,
|
||||
"AggregateAndProofGossipType": 1,
|
||||
"VoluntaryExitGossipType": 2,
|
||||
"ProposerSlashingGossipType": 3,
|
||||
"AttesterSlashingGossipType": 4,
|
||||
"BlobSidecarType": 5,
|
||||
"BlsToExecutionChangeType": 6,
|
||||
"BeaconBlockGossipType": 0,
|
||||
"AggregateAndProofGossipType": 1,
|
||||
"VoluntaryExitGossipType": 2,
|
||||
"ProposerSlashingGossipType": 3,
|
||||
"AttesterSlashingGossipType": 4,
|
||||
"BlobSidecarType": 5,
|
||||
"BlsToExecutionChangeGossipType": 6,
|
||||
}
|
||||
)
|
||||
|
||||
@ -528,7 +528,7 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x22, 0x0a,
|
||||
0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65,
|
||||
0x72, 0x2a, 0xd8, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x72, 0x2a, 0xde, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x19, 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47,
|
||||
0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41,
|
||||
0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66,
|
||||
@ -539,44 +539,45 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{
|
||||
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x74, 0x74,
|
||||
0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73,
|
||||
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x6f,
|
||||
0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x1c,
|
||||
0x0a, 0x18, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0x06, 0x32, 0x90, 0x04, 0x0a,
|
||||
0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62,
|
||||
0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73,
|
||||
0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73,
|
||||
0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e,
|
||||
0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b,
|
||||
0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61,
|
||||
0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65,
|
||||
0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
|
||||
0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74,
|
||||
0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
||||
0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
|
||||
0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61,
|
||||
0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
|
||||
0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a,
|
||||
0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e,
|
||||
0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e,
|
||||
0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61,
|
||||
0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65,
|
||||
0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65,
|
||||
0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65,
|
||||
0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x22,
|
||||
0x0a, 0x1e, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x10, 0x06, 0x32, 0x90, 0x04, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12,
|
||||
0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73,
|
||||
0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e,
|
||||
0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61,
|
||||
0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61,
|
||||
0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a,
|
||||
0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65,
|
||||
0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72,
|
||||
0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72,
|
||||
0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61,
|
||||
0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69,
|
||||
0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73,
|
||||
0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
|
||||
0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42,
|
||||
0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e,
|
||||
0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16,
|
||||
0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d,
|
||||
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73,
|
||||
0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
|
||||
0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
@ -82,7 +82,7 @@ import (
|
||||
types2 "github.com/ledgerwatch/erigon-lib/types"
|
||||
|
||||
clcore "github.com/ledgerwatch/erigon/cl/phase1/core"
|
||||
"github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1"
|
||||
"github.com/ledgerwatch/erigon/cmd/caplin/caplin1"
|
||||
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli"
|
||||
"github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
|
||||
"github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service"
|
||||
@ -483,6 +483,7 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println(blockReader.FrozenBlocks())
|
||||
inMemoryExecution := func(batch kv.RwTx, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody,
|
||||
notifications *shards.Notifications) error {
|
||||
terseLogger := log.New()
|
||||
|
@ -247,8 +247,12 @@ func (c ChainReaderWriterEth1) IsCanonicalHash(hash libcommon.Hash) (bool, error
|
||||
return resp.Canonical, nil
|
||||
}
|
||||
|
||||
func (ChainReaderWriterEth1) FrozenBlocks() uint64 {
|
||||
panic("ChainReaderEth1.FrozenBlocks not implemented")
|
||||
func (c ChainReaderWriterEth1) FrozenBlocks() uint64 {
|
||||
ret, err := c.executionModule.FrozenBlocks(c.ctx, &emptypb.Empty{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return ret.FrozenBlocks
|
||||
}
|
||||
|
||||
const retryTimeout = 10 * time.Millisecond
|
||||
|
@ -294,3 +294,9 @@ func (e *EthereumExecutionModule) GetForkChoice(ctx context.Context, _ *emptypb.
|
||||
SafeBlockHash: gointerfaces.ConvertHashToH256(rawdb.ReadForkchoiceSafe(tx)),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (e *EthereumExecutionModule) FrozenBlocks(ctx context.Context, _ *emptypb.Empty) (*execution.FrozenBlocksResponse, error) {
|
||||
return &execution.FrozenBlocksResponse{
|
||||
FrozenBlocks: e.blockReader.FrozenBlocks(),
|
||||
}, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user