Documentation ¶
Index ¶
- func WithAllowedDBEngines(optsAllowedDBEngines []db.Engine) options.Option[Storage]
- func WithBucketManagerOptions(opts ...options.Option[prunable.BucketManager]) options.Option[Storage]
- func WithDBEngine(optsDBEngine db.Engine) options.Option[Storage]
- func WithPermanentOptions(opts ...options.Option[permanent.Permanent]) options.Option[Storage]
- func WithPruningDelay(optsPruningDelay iotago.EpochIndex) options.Option[Storage]
- func WithPruningSizeCooldownTime(cooldown time.Duration) options.Option[Storage]
- func WithPruningSizeEnable(pruningSizeEnabled bool) options.Option[Storage]
- func WithPruningSizeMaxTargetSizeBytes(pruningSizeTargetSizeBytes int64) options.Option[Storage]
- func WithPruningSizeReductionPercentage(pruningSizeReductionPercentage float64) options.Option[Storage]
- type SQLDatabaseExecFunc
- type Storage
- func (s *Storage) AccountDiffs(slot iotago.SlotIndex) (*slotstore.AccountDiffs, error)
- func (s *Storage) Accounts(optRealm ...byte) kvstore.KVStore
- func (s *Storage) Attestations(slot iotago.SlotIndex) (kvstore.KVStore, error)
- func (s *Storage) BlockMetadata(slot iotago.SlotIndex) (*slotstore.BlockMetadataStore, error)
- func (s *Storage) Blocks(slot iotago.SlotIndex) (*slotstore.Blocks, error)
- func (s *Storage) CheckCorrectnessCommitmentLedgerState() error
- func (s *Storage) Commitments() *permanent.Commitments
- func (s *Storage) Committee() epochstore.Store[*account.SeatedAccounts]
- func (s *Storage) CommitteeCandidates(epoch iotago.EpochIndex) (*kvstore.TypedStore[iotago.AccountID, iotago.SlotIndex], error)
- func (s *Storage) DecidedUpgradeSignals() epochstore.Store[model.VersionAndHash]
- func (s *Storage) Directory() string
- func (s *Storage) ExportRoots(writer io.WriteSeeker, targetCommitment *iotago.Commitment) error
- func (s *Storage) Flush()
- func (s *Storage) GenesisRootBlockID() iotago.BlockID
- func (s *Storage) ImportRoots(reader io.ReadSeeker, targetCommitment *model.Commitment) error
- func (s *Storage) IsPruning() bool
- func (s *Storage) LastPrunedEpoch() (epoch iotago.EpochIndex, hasPruned bool)
- func (s *Storage) Ledger() *utxoledger.Manager
- func (s *Storage) Mutations(slot iotago.SlotIndex) (kvstore.KVStore, error)
- func (s *Storage) PermanentDatabaseSize() int64
- func (s *Storage) PoolStats() epochstore.Store[*model.PoolsStats]
- func (s *Storage) PrunableDatabaseSize() int64
- func (s *Storage) PruneByDepth(epochDepth iotago.EpochIndex) (firstPruned iotago.EpochIndex, lastPruned iotago.EpochIndex, err error)
- func (s *Storage) PruneByEpochIndex(epoch iotago.EpochIndex) error
- func (s *Storage) PruneBySize(targetSizeMaxBytes ...int64) error
- func (s *Storage) Reset()
- func (s *Storage) RestoreFromDisk()
- func (s *Storage) Rewards() *epochstore.EpochKVStore
- func (s *Storage) RewardsForEpoch(epoch iotago.EpochIndex) (kvstore.KVStore, error)
- func (s *Storage) Rollback(targetSlot iotago.SlotIndex) error
- func (s *Storage) RootBlocks(slot iotago.SlotIndex) (*slotstore.Store[iotago.BlockID, iotago.CommitmentID], error)
- func (s *Storage) Roots(slot iotago.SlotIndex) (*slotstore.Store[iotago.CommitmentID, *iotago.Roots], error)
- func (s *Storage) Settings() *permanent.Settings
- func (s *Storage) Shutdown()
- func (s *Storage) Size() int64
- func (s *Storage) TransactionRetainerDatabaseExecFunc() SQLDatabaseExecFunc
- func (s *Storage) TransactionRetainerDatabaseSize() int64
- func (s *Storage) TryPrune() error
- func (s *Storage) UpgradeSignals(slot iotago.SlotIndex) (*slotstore.Store[account.SeatIndex, *model.SignaledBlock], error)
- func (s *Storage) ValidatorPerformances(slot iotago.SlotIndex) (*slotstore.Store[iotago.AccountID, *model.ValidatorPerformance], error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithAllowedDBEngines ¶
func WithPermanentOptions ¶
func WithPruningDelay ¶
func WithPruningDelay(optsPruningDelay iotago.EpochIndex) options.Option[Storage]
func WithPruningSizeEnable ¶
Types ¶
type Storage ¶
type Storage struct { Pruned *event.Event1[iotago.EpochIndex] // contains filtered or unexported fields }
Storage is an abstraction around the storage layer of the node.
func Clone ¶
func Clone(parentLogger log.Logger, source *Storage, directory string, dbVersion byte, errorHandler func(error), opts ...options.Option[Storage]) (*Storage, error)
Clone creates a new storage instance with the named database version in the given directory and cloning the permannent and prunable counterparts from the given source storage.
func Create ¶
func Create(parentLogger log.Logger, directory string, dbVersion byte, errorHandler func(error), opts ...options.Option[Storage]) *Storage
Create creates a new storage instance with the named database version in the given directory and initializes its permanent and prunable counterparts.
func (*Storage) AccountDiffs ¶
func (*Storage) Accounts ¶
Accounts returns the Accounts storage (or a specialized sub-storage if a realm is provided).
func (*Storage) Attestations ¶
func (*Storage) BlockMetadata ¶
func (*Storage) CheckCorrectnessCommitmentLedgerState ¶
Checks the correctness of the latest commitment. Additionally, for non-genesis slots it checks whether the ledger state corresponds to the state root.
func (*Storage) Commitments ¶
func (s *Storage) Commitments() *permanent.Commitments
func (*Storage) Committee ¶
func (s *Storage) Committee() epochstore.Store[*account.SeatedAccounts]
func (*Storage) CommitteeCandidates ¶
func (s *Storage) CommitteeCandidates(epoch iotago.EpochIndex) (*kvstore.TypedStore[iotago.AccountID, iotago.SlotIndex], error)
func (*Storage) DecidedUpgradeSignals ¶
func (s *Storage) DecidedUpgradeSignals() epochstore.Store[model.VersionAndHash]
func (*Storage) ExportRoots ¶
func (s *Storage) ExportRoots(writer io.WriteSeeker, targetCommitment *iotago.Commitment) error
func (*Storage) GenesisRootBlockID ¶
func (*Storage) ImportRoots ¶
func (s *Storage) ImportRoots(reader io.ReadSeeker, targetCommitment *model.Commitment) error
func (*Storage) LastPrunedEpoch ¶
func (s *Storage) LastPrunedEpoch() (epoch iotago.EpochIndex, hasPruned bool)
func (*Storage) Ledger ¶
func (s *Storage) Ledger() *utxoledger.Manager
Ledger returns the ledger storage (or a specialized sub-storage if a realm is provided).
func (*Storage) PermanentDatabaseSize ¶
PermanentDatabaseSize returns the size of the underlying permanent database and files.
func (*Storage) PoolStats ¶
func (s *Storage) PoolStats() epochstore.Store[*model.PoolsStats]
func (*Storage) PrunableDatabaseSize ¶
PrunableDatabaseSize returns the size of the underlying prunable databases.
func (*Storage) PruneByDepth ¶
func (s *Storage) PruneByDepth(epochDepth iotago.EpochIndex) (firstPruned iotago.EpochIndex, lastPruned iotago.EpochIndex, err error)
func (*Storage) PruneByEpochIndex ¶
func (s *Storage) PruneByEpochIndex(epoch iotago.EpochIndex) error
PruneByEpochIndex prunes the database until the given epoch. It returns an error if the epoch is too old or too new. It is to be called by the user e.g. via the WebAPI.
func (*Storage) PruneBySize ¶
func (*Storage) Reset ¶
func (s *Storage) Reset()
Reset resets the component to a clean state as if it was created at the last commitment.
func (*Storage) RestoreFromDisk ¶
func (s *Storage) RestoreFromDisk()
func (*Storage) Rewards ¶
func (s *Storage) Rewards() *epochstore.EpochKVStore
func (*Storage) RewardsForEpoch ¶
func (*Storage) RootBlocks ¶
func (*Storage) TransactionRetainerDatabaseExecFunc ¶
func (s *Storage) TransactionRetainerDatabaseExecFunc() SQLDatabaseExecFunc
func (*Storage) TransactionRetainerDatabaseSize ¶
TransactionRetainerDatabaseSize returns the size of the underlying SQL database of the transaction retainer.