Documentation
¶
Index ¶
- Variables
- func WithBlockRequesterOptions(...) options.Option[Engine]
- func WithEntryPointsDepth(entryPointsDepth int) options.Option[Engine]
- func WithSnapshotDepth(depth int) options.Option[Engine]
- func WithSnapshotPath(snapshotPath string) options.Option[Engine]
- type CommitmentAPI
- func (c *CommitmentAPI) Attestations() (commitment *model.Commitment, attestations []*iotago.Attestation, ...)
- func (c *CommitmentAPI) BlocksIDsBySlotCommitmentID() (map[iotago.CommitmentID]iotago.BlockIDs, error)
- func (c *CommitmentAPI) Commitment() (commitment *model.Commitment, err error)
- func (c *CommitmentAPI) Mutations() (acceptedBlocksBySlotCommitment map[iotago.CommitmentID]iotago.BlockIDs, ...)
- func (c *CommitmentAPI) Roots() (committedRoots *iotago.Roots, err error)
- func (c *CommitmentAPI) TransactionIDs() (iotago.TransactionIDs, error)
- type Engine
- func (e *Engine) APIForEpoch(epoch iotago.EpochIndex) iotago.API
- func (e *Engine) APIForSlot(slot iotago.SlotIndex) iotago.API
- func (e *Engine) APIForTime(t time.Time) iotago.API
- func (e *Engine) APIForVersion(version iotago.Version) (iotago.API, error)
- func (e *Engine) Block(id iotago.BlockID) (*model.Block, bool)
- func (e *Engine) BlockFromCache(id iotago.BlockID) (*blocks.Block, bool)
- func (e *Engine) ChainID() iotago.CommitmentID
- func (e *Engine) CommitmentAPI(commitmentID iotago.CommitmentID) (*CommitmentAPI, error)
- func (e *Engine) CommittedAPI() iotago.API
- func (e *Engine) ErrorHandler(componentName string) func(error)
- func (e *Engine) Export(writer io.WriteSeeker, targetSlot iotago.SlotIndex) (err error)
- func (e *Engine) ImportContents(reader io.ReadSeeker) (err error)
- func (e *Engine) ImportSettings(reader io.ReadSeeker) (err error)
- func (e *Engine) LatestAPI() iotago.API
- func (e *Engine) Name() string
- func (e *Engine) ProcessBlockFromPeer(block *model.Block, source peer.ID)
- func (e *Engine) RemoveFromFilesystem() error
- func (e *Engine) Reset()
- func (e *Engine) SetChainID(chainID iotago.CommitmentID)
- func (e *Engine) WriteSnapshot(filePath string, targetSlot ...iotago.SlotIndex) (err error)
- type Events
Constants ¶
This section is empty.
Variables ¶
var NewEvents = event.CreateGroupConstructor(func() (newEvents *Events) { return &Events{ BlockProcessed: event.New1[iotago.BlockID](), AcceptedBlockProcessed: event.New1[*blocks.Block](), Evict: event.New1[iotago.SlotIndex](), StoragePruned: event.New1[iotago.EpochIndex](), PreSolidFilter: presolidfilter.NewEvents(), PostSolidFilter: postsolidfilter.NewEvents(), BlockRequester: eventticker.NewEvents[iotago.SlotIndex, iotago.BlockID](), TipManager: tipmanager.NewEvents(), BlockDAG: blockdag.NewEvents(), Booker: booker.NewEvents(), Clock: clock.NewEvents(), BlockGadget: blockgadget.NewEvents(), SlotGadget: slotgadget.NewEvents(), SybilProtection: sybilprotection.NewEvents(), Ledger: ledger.NewEvents(), Notarization: notarization.NewEvents(), SpendDAG: spenddag.NewEvents[iotago.TransactionID, mempool.StateID](), Scheduler: scheduler.NewEvents(), SeatManager: seatmanager.NewEvents(), SyncManager: syncmanager.NewEvents(), } })
NewEvents contains the constructor of the Events object (it is generated by a generic factory).
Functions ¶
Types ¶
type CommitmentAPI ¶
type CommitmentAPI struct { // CommitmentID is the index of the slot that is accessed. CommitmentID iotago.CommitmentID // contains filtered or unexported fields }
CommitmentAPI is a wrapper for the Engine that provides access to the data of a committed slot.
func NewCommitmentAPI ¶
func NewCommitmentAPI(engine *Engine, commitmentID iotago.CommitmentID) *CommitmentAPI
NewCommitmentAPI creates a new CommitmentAPI.
func (*CommitmentAPI) Attestations ¶
func (c *CommitmentAPI) Attestations() (commitment *model.Commitment, attestations []*iotago.Attestation, merkleProof *merklehasher.Proof[iotago.Identifier], err error)
Attestations returns the commitment, attestations and the merkle proof of the slot.
func (*CommitmentAPI) BlocksIDsBySlotCommitmentID ¶
func (c *CommitmentAPI) BlocksIDsBySlotCommitmentID() (map[iotago.CommitmentID]iotago.BlockIDs, error)
BlocksIDsBySlotCommitmentID returns the accepted block IDs of the slot grouped by their SlotCommitmentID.
func (*CommitmentAPI) Commitment ¶
func (c *CommitmentAPI) Commitment() (commitment *model.Commitment, err error)
Commitment returns the commitment of the slot.
func (*CommitmentAPI) Mutations ¶
func (c *CommitmentAPI) Mutations() (acceptedBlocksBySlotCommitment map[iotago.CommitmentID]iotago.BlockIDs, acceptedBlocksProof *merklehasher.Proof[iotago.Identifier], acceptedTransactionIDs iotago.TransactionIDs, acceptedTransactionsProof *merklehasher.Proof[iotago.Identifier], err error)
Mutations returns all accepted block IDs, the tangle proof, all accepted transaction IDs and the ledger state mutation proof of the slot.
func (*CommitmentAPI) Roots ¶
func (c *CommitmentAPI) Roots() (committedRoots *iotago.Roots, err error)
Roots returns the roots of the slot.
func (*CommitmentAPI) TransactionIDs ¶
func (c *CommitmentAPI) TransactionIDs() (iotago.TransactionIDs, error)
type Engine ¶
type Engine struct { Events *Events Storage *storage.Storage PreSolidFilter presolidfilter.PreSolidFilter PostSolidFilter postsolidfilter.PostSolidFilter EvictionState *eviction.State BlockRequester *eventticker.EventTicker[iotago.SlotIndex, iotago.BlockID] BlockDAG blockdag.BlockDAG Booker booker.Booker Clock clock.Clock BlockGadget blockgadget.Gadget SlotGadget slotgadget.Gadget SybilProtection sybilprotection.SybilProtection Notarization notarization.Notarization Attestations attestation.Attestations Ledger ledger.Ledger Scheduler scheduler.Scheduler TipManager tipmanager.TipManager TipSelection tipselection.TipSelection Retainer retainer.Retainer SyncManager syncmanager.SyncManager UpgradeOrchestrator upgrade.Orchestrator // RootCommitment contains the earliest commitment that that blocks we are solidifying will refer to, and is mainly // used to determine the cut-off point for the actively managed commitments in the protocol. RootCommitment reactive.Variable[*model.Commitment] // LatestCommitment contains the latest commitment that we have produced. LatestCommitment reactive.Variable[*model.Commitment] Workers *workerpool.Group BlockCache *blocks.Blocks *module.ReactiveModule // contains filtered or unexported fields }
func New ¶
func New( logger log.Logger, workers *workerpool.Group, storageInstance *storage.Storage, preSolidFilterProvider module.Provider[*Engine, presolidfilter.PreSolidFilter], postSolidFilterProvider module.Provider[*Engine, postsolidfilter.PostSolidFilter], blockDAGProvider module.Provider[*Engine, blockdag.BlockDAG], bookerProvider module.Provider[*Engine, booker.Booker], clockProvider module.Provider[*Engine, clock.Clock], blockGadgetProvider module.Provider[*Engine, blockgadget.Gadget], slotGadgetProvider module.Provider[*Engine, slotgadget.Gadget], sybilProtectionProvider module.Provider[*Engine, sybilprotection.SybilProtection], notarizationProvider module.Provider[*Engine, notarization.Notarization], attestationProvider module.Provider[*Engine, attestation.Attestations], ledgerProvider module.Provider[*Engine, ledger.Ledger], schedulerProvider module.Provider[*Engine, scheduler.Scheduler], tipManagerProvider module.Provider[*Engine, tipmanager.TipManager], tipSelectionProvider module.Provider[*Engine, tipselection.TipSelection], retainerProvider module.Provider[*Engine, retainer.Retainer], upgradeOrchestratorProvider module.Provider[*Engine, upgrade.Orchestrator], syncManagerProvider module.Provider[*Engine, syncmanager.SyncManager], opts ...options.Option[Engine], ) (engine *Engine)
func (*Engine) APIForEpoch ¶
func (e *Engine) APIForEpoch(epoch iotago.EpochIndex) iotago.API
func (*Engine) APIForVersion ¶
func (*Engine) BlockFromCache ¶
func (*Engine) ChainID ¶
func (e *Engine) ChainID() iotago.CommitmentID
func (*Engine) CommitmentAPI ¶
func (e *Engine) CommitmentAPI(commitmentID iotago.CommitmentID) (*CommitmentAPI, error)
CommitmentAPI returns the committed slot for the given slot index.
func (*Engine) CommittedAPI ¶
func (*Engine) ErrorHandler ¶
func (*Engine) ImportContents ¶
func (e *Engine) ImportContents(reader io.ReadSeeker) (err error)
func (*Engine) ImportSettings ¶
func (e *Engine) ImportSettings(reader io.ReadSeeker) (err error)
func (*Engine) ProcessBlockFromPeer ¶
func (*Engine) RemoveFromFilesystem ¶
RemoveFromFilesystem removes the directory of the engine from the filesystem.
func (*Engine) Reset ¶
func (e *Engine) Reset()
Reset resets the component to a clean state as if it was created at the last commitment.
func (*Engine) SetChainID ¶
func (e *Engine) SetChainID(chainID iotago.CommitmentID)
type Events ¶
type Events struct { BlockProcessed *event.Event1[iotago.BlockID] AcceptedBlockProcessed *event.Event1[*blocks.Block] Evict *event.Event1[iotago.SlotIndex] StoragePruned *event.Event1[iotago.EpochIndex] PreSolidFilter *presolidfilter.Events PostSolidFilter *postsolidfilter.Events BlockRequester *eventticker.Events[iotago.SlotIndex, iotago.BlockID] TipManager *tipmanager.Events BlockDAG *blockdag.Events Booker *booker.Events Clock *clock.Events BlockGadget *blockgadget.Events SlotGadget *slotgadget.Events SybilProtection *sybilprotection.Events Ledger *ledger.Events Notarization *notarization.Events SpendDAG *spenddag.Events[iotago.TransactionID, mempool.StateID] Scheduler *scheduler.Events SeatManager *seatmanager.Events SyncManager *syncmanager.Events event.Group[Events, *Events] }