Documentation ¶
Index ¶
- func NewProvider(opts ...options.Option[Orchestrator]) module.Provider[*engine.Engine, upgrade.Orchestrator]
- func WithProtocolParameters(protocolParameters ...iotago.ProtocolParameters) options.Option[Orchestrator]
- type Orchestrator
- func (o *Orchestrator) Commit(slot iotago.SlotIndex) (iotago.Identifier, error)
- func (o *Orchestrator) Export(writer io.WriteSeeker, targetSlot iotago.SlotIndex) error
- func (o *Orchestrator) Import(reader io.ReadSeeker) error
- func (o *Orchestrator) Reset()
- func (o *Orchestrator) RestoreFromDisk(slot iotago.SlotIndex) error
- func (o *Orchestrator) TrackValidationBlock(block *blocks.Block)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewProvider ¶
func NewProvider(opts ...options.Option[Orchestrator]) module.Provider[*engine.Engine, upgrade.Orchestrator]
func WithProtocolParameters ¶
func WithProtocolParameters(protocolParameters ...iotago.ProtocolParameters) options.Option[Orchestrator]
Types ¶
type Orchestrator ¶
Orchestrator is a component that is in charge of protocol upgrades by signaling the upgrade, gathering consensus about the upgrade and finally activating the upgrade if the activation thresholds are reached.
Why is it called Orchestrator? Read on...
User how would you name a software component that is in charge of protocol upgrades by signaling the upgrade, gathering consensus about the upgrade and then activating the upgrade.
ChatGPT One possible name for such a software component could be the "Upgrade Manager." This name conveys its responsibility of managing protocol upgrades within a system or network. The Upgrade Manager would handle tasks like signaling, consensus gathering, and activation of upgrades, ensuring smooth transitions and maintaining the integrity of the protocol.
User do you have a less boring name? everything else is also called manager
ChatGPT Certainly! If you're looking for a more creative and less generic name, you could consider calling it the "Protocol Phoenix." This name captures the essence of the component's role in orchestrating protocol upgrades, as the mythical phoenix symbolizes rebirth and renewal. It signifies the component's ability to facilitate the evolution and transformation of the protocol, rising from the ashes of the previous version.
User maybe a more technical and less mythical term
ChatGPT Certainly! In that case, you could consider naming the software component the "Upgrade Orchestrator." This name emphasizes its role in orchestrating protocol upgrades, managing the various stages of the process, and ensuring a smooth transition. The term "orchestrator" suggests a conductor-like function, coordinating the upgrade activities and ensuring consensus before activating the changes.
func NewOrchestrator ¶
func NewOrchestrator(subModule module.Module, errorHandler func(error), decidedUpgradeSignals epochstore.Store[model.VersionAndHash], upgradeSignalsFunc func(slot iotago.SlotIndex) (*slotstore.Store[account.SeatIndex, *model.SignaledBlock], error), apiProvider iotago.APIProvider, setProtocolParametersEpochMappingFunc func(iotago.Version, iotago.Identifier, iotago.EpochIndex) error, protocolParametersAndVersionsHashFunc func() (iotago.Identifier, error), epochForVersionFunc func(iotago.Version) (iotago.EpochIndex, bool), seatManager seatmanager.SeatManager, opts ...options.Option[Orchestrator]) *Orchestrator
func (*Orchestrator) Commit ¶
func (o *Orchestrator) Commit(slot iotago.SlotIndex) (iotago.Identifier, error)
func (*Orchestrator) Export ¶
func (o *Orchestrator) Export(writer io.WriteSeeker, targetSlot iotago.SlotIndex) error
func (*Orchestrator) Import ¶
func (o *Orchestrator) Import(reader io.ReadSeeker) error
func (*Orchestrator) Reset ¶
func (o *Orchestrator) Reset()
Reset resets the component to a clean state as if it was created at the last commitment.
func (*Orchestrator) RestoreFromDisk ¶
func (o *Orchestrator) RestoreFromDisk(slot iotago.SlotIndex) error
func (*Orchestrator) TrackValidationBlock ¶
func (o *Orchestrator) TrackValidationBlock(block *blocks.Block)