common

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ModuleConfig

type ModuleConfig struct {
	Self   t.ModuleID // id of this module
	Hasher t.ModuleID
	Timer  t.ModuleID
}

ModuleConfig sets the module ids. All replicas are expected to use identical module configurations.

type ModuleParams

type ModuleParams struct {

	// Maximal number of individual transactions in a single batch.
	MaxTransactionsInBatch int

	// Maximal total combined payload size of all transactions in a batch (in Bytes)
	MaxPayloadInBatch int

	// Maximal time between receiving a batch request and emitting a batch.
	// On reception of a batch request, the mempool generally waits
	// until it contains enough transactions to fill a batch (by number or by payload size)
	// and only then emits the new batch.
	// If no batch has been filled by BatchTimeout, the mempool emits a non-full (even a completely empty) batch.
	BatchTimeout time.Duration

	// If this parameter is not nil, the mempool will not receive transactions directly (through NewTransactions) events.
	// On reception of such an event, it will report an error (making the system crash).
	// Instead, TxFetcher will be called to pull transactions from an external source
	// when they are needed to form a batch (upon the RequestBatch event).
	// Looking up transactions by ID will also always fail (return no transactions).
	TxFetcher func() []*trantorpbtypes.Transaction
}

ModuleParams sets the values for the parameters of an instance of the protocol. All replicas are expected to use identical module parameters.

type State

type State struct {
	// All the transactions in the mempool.
	// Incoming transactions that have not yet been delivered are added to this list.
	// They are removed upon delivery.
	Transactions *indexedlist.IndexedList[tt.TxID, *trantorpbtypes.Transaction]
}

State represents the common state accessible to all parts of the module implementation. TODO: Consider moving this definition inside the `internal` subdirectory, as it is only used by the mempool.

Jump to

Keyboard shortcuts

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