coordinator

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2023 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CfgCoordinatorBootstrap defines whether to bootstrap the network.
	CfgCoordinatorBootstrap = "cooBootstrap"
	// CfgCoordinatorStartIndex defines the index of the first milestone at bootstrap.
	CfgCoordinatorStartIndex = "cooStartIndex"
	// MilestoneMaxAdditionalTipsLimit defines the maximum limit of additional tips that fit into a milestone (besides the last milestone and checkpoint hash).
	MilestoneMaxAdditionalTipsLimit = 6
)

Variables

View Source
var (
	Component *app.Component
)
View Source
var (
	ErrDatabaseTainted = errors.New("database is tainted. delete the coordinator database and start again with a snapshot")
)
View Source
var ParamsCoordinator = &ParametersCoordinator{
	Quorum: Quorum{
		Groups: make(map[string][]*coordinator.QuorumClientConfig),
	},
}

Functions

func ComputeMerkleTreeHash

func ComputeMerkleTreeHash(ctx context.Context, msIndex iotago.MilestoneIndex, msTimestamp uint32, parents iotago.BlockIDs, previousMilestoneID iotago.MilestoneID) (*coordinator.MilestoneMerkleRoots, error)

Types

type ParametersCoordinator

type ParametersCoordinator struct {
	StateFilePath    string        `default:"coordinator.state" usage:"the path to the state file of the coordinator"`
	Interval         time.Duration `default:"5s" usage:"the interval milestones are issued"`
	MilestoneTimeout time.Duration `default:"30s" usage:"the duration after which an event is triggered if no new milestones are received"`

	Signing struct {
		Provider      string        `default:"local" usage:"the signing provider the coordinator uses to sign a milestone (local/remote)"`
		RemoteAddress string        `default:"localhost:12345" usage:"the address of the remote signing provider (insecure connection!)"`
		RetryTimeout  time.Duration `default:"2s" usage:"defines the timeout between signing retries"`
		RetryAmount   int           `default:"10" usage:"defines the number of signing retries to perform before shutting down the node"`
	}

	Quorum Quorum

	Checkpoints struct {
		MaxTrackedBlocks int `` /* 137-byte string literal not displayed */
	}

	TipSel struct {
		MinHeaviestBranchUnreferencedBlocksThreshold int           `default:"20" usage:"minimum threshold of unreferenced blocks in the heaviest branch"`
		MaxHeaviestBranchTipsPerCheckpoint           int           `` /* 188-byte string literal not displayed */
		RandomTipsPerCheckpoint                      int           `` /* 194-byte string literal not displayed */
		HeaviestBranchSelectionTimeout               time.Duration `default:"100ms" usage:"the maximum duration to select the heaviest branch tips"`
	} `name:"tipsel"`

	BlockBackups struct {
		Enabled    bool   `` /* 139-byte string literal not displayed */
		FolderPath string `default:"block_backups" usage:"the path to the folder where block backups are stored"`
	}

	DebugFakeMilestoneTimestamps bool `` /* 132-byte string literal not displayed */
}

type Quorum

type Quorum struct {
	Enabled bool                                         `default:"false" usage:"whether the coordinator quorum is enabled"`
	Groups  map[string][]*coordinator.QuorumClientConfig `noflag:"true" usage:"defines the quorum groups used to ask other nodes for correct ledger state of the coordinator."`
	Timeout time.Duration                                `default:"2s" usage:"the timeout until a node in the quorum must have answered"`
}

type TreasuryListener

type TreasuryListener struct {
	*logger.WrappedLogger
	// contains filtered or unexported fields
}

func NewTreasuryListener

func NewTreasuryListener(log *logger.Logger, nodeBridge *nodebridge.NodeBridge) *TreasuryListener

func (*TreasuryListener) LatestTreasuryOutput

func (n *TreasuryListener) LatestTreasuryOutput() (*coordinator.LatestTreasuryOutput, error)

func (*TreasuryListener) Run

func (n *TreasuryListener) Run(ctx context.Context)

Jump to

Keyboard shortcuts

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