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](), StoragePruned: event.New1[iotago.EpochIndex](), EvictionState: eviction.NewEvents(), 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]
StoragePruned *event.Event1[iotago.EpochIndex]
EvictionState *eviction.Events
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]
}