block

package
v0.11.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2024 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockCache added in v0.10.2

type BlockCache struct {
	// contains filtered or unexported fields
}

BlockCache maintains blocks that are seen and hard confirmed

func NewBlockCache added in v0.10.2

func NewBlockCache() *BlockCache

NewBlockCache returns a new BlockCache struct

type BlockSyncService added in v0.10.5

type BlockSyncService struct {
	// contains filtered or unexported fields
}

BlockSyncService is the P2P Sync Service for block that implements the go-header interface. Contains a block store where synced blocks are stored. Uses the go-header library for handling all P2P logic.

func NewBlockSyncService added in v0.10.5

func NewBlockSyncService(ctx context.Context, store ds.TxnDatastore, conf config.NodeConfig, genesis *cmtypes.GenesisDoc, p2p *p2p.Client, logger log.Logger) (*BlockSyncService, error)

NewBlockSyncService returns a new BlockSyncService.

func (*BlockSyncService) BlockStore added in v0.10.5

func (bSyncService *BlockSyncService) BlockStore() *goheaderstore.Store[*types.Block]

BlockStore returns the blockstore of the BlockSyncService

func (*BlockSyncService) Start added in v0.10.5

func (bSyncService *BlockSyncService) Start() error

Start is a part of Service interface.

func (*BlockSyncService) StartSyncer added in v0.10.5

func (bSyncService *BlockSyncService) StartSyncer() error

StartSyncer starts the BlockSyncService's syncer

func (*BlockSyncService) Stop added in v0.10.5

func (bSyncService *BlockSyncService) Stop() error

Stop is a part of Service interface.

func (*BlockSyncService) WriteToBlockStoreAndBroadcast added in v0.10.5

func (bSyncService *BlockSyncService) WriteToBlockStoreAndBroadcast(ctx context.Context, block *types.Block) error

WriteToBlockStoreAndBroadcast initializes block store if needed and broadcasts provided block. Note: Only returns an error in case block store can't be initialized. Logs error if there's one while broadcasting.

type HeaderSyncService added in v0.10.7

type HeaderSyncService struct {
	// contains filtered or unexported fields
}

HeaderSyncService is the P2P Sync Service for header that implements the go-header interface. Contains a header store where synced headers are stored. Uses the go-header library for handling all P2P logic.

func NewHeaderSyncService added in v0.10.7

func NewHeaderSyncService(ctx context.Context, store ds.TxnDatastore, conf config.NodeConfig, genesis *cmtypes.GenesisDoc, p2p *p2p.Client, logger log.Logger) (*HeaderSyncService, error)

NewHeaderSyncService returns a new HeaderSyncService.

func (*HeaderSyncService) HeaderStore added in v0.10.7

func (hSyncService *HeaderSyncService) HeaderStore() *goheaderstore.Store[*types.SignedHeader]

HeaderStore returns the headerstore of the HeaderSynceService

func (*HeaderSyncService) Start added in v0.10.7

func (hSyncService *HeaderSyncService) Start() error

Start is a part of Service interface.

func (*HeaderSyncService) StartSyncer added in v0.10.7

func (hSyncService *HeaderSyncService) StartSyncer() error

StartSyncer starts the HeaderSyncService's syncer

func (*HeaderSyncService) Stop added in v0.10.7

func (hSyncService *HeaderSyncService) Stop() error

Stop is a part of Service interface.

func (*HeaderSyncService) WriteToHeaderStoreAndBroadcast added in v0.10.7

func (hSyncService *HeaderSyncService) WriteToHeaderStoreAndBroadcast(ctx context.Context, signedHeader *types.SignedHeader) error

WriteToHeaderStoreAndBroadcast initializes header store if needed and broadcasts provided header. Note: Only returns an error in case header store can't be initialized. Logs error if there's one while broadcasting.

type Manager

type Manager struct {
	HeaderCh chan *types.SignedHeader
	BlockCh  chan *types.Block
	// contains filtered or unexported fields
}

Manager is responsible for aggregating transactions into blocks.

func NewManager

func NewManager(
	proposerKey crypto.PrivKey,
	conf config.BlockManagerConfig,
	genesis *cmtypes.GenesisDoc,
	store store.Store,
	mempool mempool.Mempool,
	proxyApp proxy.AppConnConsensus,
	dalc *da.DAClient,
	eventBus *cmtypes.EventBus,
	logger log.Logger,
	blockStore *goheaderstore.Store[*types.Block],
) (*Manager, error)

NewManager creates new block Manager.

func (*Manager) AggregationLoop

func (m *Manager) AggregationLoop(ctx context.Context, lazy bool)

AggregationLoop is responsible for aggregating transactions into rollup-blocks.

func (*Manager) BlockStoreRetrieveLoop added in v0.10.2

func (m *Manager) BlockStoreRetrieveLoop(ctx context.Context)

BlockStoreRetrieveLoop is responsible for retrieving blocks from the Block Store.

func (*Manager) BlockSubmissionLoop added in v0.10.2

func (m *Manager) BlockSubmissionLoop(ctx context.Context)

BlockSubmissionLoop is responsible for submitting blocks to the DA layer.

func (*Manager) GetBlockInCh added in v0.11.8

func (m *Manager) GetBlockInCh() chan NewBlockEvent

GetBlockInCh returns the manager's blockInCh

func (*Manager) GetStoreHeight added in v0.10.2

func (m *Manager) GetStoreHeight() uint64

GetStoreHeight returns the manager's store height

func (*Manager) IsBlockHashSeen added in v0.11.8

func (m *Manager) IsBlockHashSeen(blockHash string) bool

IsBlockHashSeen returns true if the block with the given hash has been seen.

func (*Manager) IsDAIncluded added in v0.10.7

func (m *Manager) IsDAIncluded(hash types.Hash) bool

IsDAIncluded returns true if the block with the given hash has been seen on DA.

func (*Manager) IsProposer added in v0.7.3

func (m *Manager) IsProposer() (bool, error)

IsProposer returns whether or not the manager is a proposer

func (*Manager) RetrieveLoop

func (m *Manager) RetrieveLoop(ctx context.Context)

RetrieveLoop is responsible for interacting with DA layer.

func (*Manager) SetDALC

func (m *Manager) SetDALC(dalc *da.DAClient)

SetDALC is used to set DataAvailabilityLayerClient used by Manager.

func (*Manager) SetLastState added in v0.11.8

func (m *Manager) SetLastState(state types.State)

SetLastState is used to set lastState used by Manager.

func (*Manager) SyncLoop

func (m *Manager) SyncLoop(ctx context.Context, cancel context.CancelFunc)

SyncLoop is responsible for syncing blocks.

SyncLoop processes headers gossiped in P2P network to know what's the latest block height, block data is retrieved from DA layer.

type NewBlockEvent added in v0.11.8

type NewBlockEvent struct {
	Block    *types.Block
	DAHeight uint64
}

NewBlockEvent is used to pass block and DA height to blockInCh

type PendingBlocks added in v0.10.3

type PendingBlocks struct {
	// contains filtered or unexported fields
}

PendingBlocks maintains blocks that need to be published to DA layer

func NewPendingBlocks added in v0.10.3

func NewPendingBlocks() *PendingBlocks

NewPendingBlocks returns a new PendingBlocks struct

type SyncerStatus added in v0.10.5

type SyncerStatus struct {
	// contains filtered or unexported fields
}

SyncerStatus is used by header and block exchange service for keeping track of the status of the syncer in them.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL