Documentation
¶
Overview ¶
Package logspec specifies the data format of event log statements.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AgreementEvent ¶
type AgreementEvent struct {
Event
Type AgreementType
// Round represents the current round of the source.
Round uint64
// Period represents the current period of the source.
Period uint64
// Step represents the current period of the source.
Step uint64
// Hash represents a context-dependent value.
// - RoundConcluded: the block hash on which consensus was reached
// - PeriodConcluded: the starting value of the next round
// - ThresholdReached: the hash for which a vote threshold was reached
// - ProposalFrozen: the hash on which a proposal was frozen
// - BlockAssembled: the hash of the block (proposal) that was assembled
// - ProposalBroadcast/Accepted/Rejected/Resent: the hash of the proposal
// - VoteBroadcast/Accepted/Rejected: the hash a vote endorses
// - BundleBroadcast/Accepted/Rejected: the hash a bundle endorses
// - RoundInterrupted: the bottom value
// - AccountRegistered: the address of the account that was registered
Hash string
// Sender is set if this event relates directly to a proposal or vote.
// It contains the address of the sender.
Sender string
// ObjectRound contains the (alleged) round of the sender
// or the round at which a value obtained a threshold.
// It is set when Sender is set or when a threshold is met.
ObjectRound uint64
// ObjectPeriod contains the (alleged) period of the sender.
// or the period at which a value obtained a threshold.
// It is set when Sender is set or when a threshold is met.
ObjectPeriod uint64
// ObjectStep contains the (alleged) step of the sender.
// or the step at which a value obtained a threshold.
// It is set when Sender is set or when a threshold is met.
ObjectStep uint64
// Weight is only set on receiving a vote.
// It contains the weight of the vote (given its credentials).
Weight uint64
// WeightTotal is only set on receiving a vote.
// It contains the cumulative weight of the all votes received
// for the (round, period, step) of the given vote.
WeightTotal uint64
}
AgreementEvent represents data corresponding to an event occurring during our agreement processing
type AgreementType ¶
type AgreementType int
AgreementType is an enum identifying a specific type of AgreementEvent TODO Maybe this should be called AgreementEventType, since these are not actually types of agreements
const ( // RoundConcluded is emitted whenever // (1) the player receives a block B, and // (2) the player obtains proof of consensus on H(B). RoundConcluded AgreementType = iota // PeriodConcluded is emitted whenever a player receives a // threshold of soft- or next-votes for a hash H(B). PeriodConcluded // StepTimeout is emitted when a filtering, certifying, or recovery step times out. StepTimeout // RoundStart is emitted when a round starts RoundStart // RoundInterrupted is emitted when the source is on round r, // and its ledger observes a block B and a proof of consensus on H(B) at r // independently of the agreement service. RoundInterrupted // RoundWaiting is emitted when the source receives a proof of // consensus on H(B) at round r but has not yet received B. RoundWaiting // ThresholdReached is emitted when the source observes that a threshold of votes // has been reached for a given value during some (round, period, step). ThresholdReached // BlockAssembled is emitted when the source receives all parts of a block. BlockAssembled // BlockCommittable is emitted when the source observes a // block B and a threshold of soft-votes for H(B). It is // emitted at most once per period. BlockCommittable // ProposalAssembled is emitted when the source node finishes making proposals ProposalAssembled // ProposalBroadcast is emitted when the source creates a // proposal to be broadcasted during initial block proposal // (and not partition recovery). ProposalBroadcast // ProposalFrozen is emitted when the source fixes a leader credential. ProposalFrozen // ProposalAccepted is emitted when the source accepts a leader proposal. ProposalAccepted // ProposalRejected is emitted when the source rejects a leader proposal. ProposalRejected // BlockRejected is emitted when a block is rejected. // (Since fragmentation is not implemented currently, // BlockAssembled carries the same meaning as BlockAccepted.) BlockRejected // BlockResent is emitted when a whole proposal is relayed for partition recovery. BlockResent // BlockPipelined is emitted when a block is pipelined for // further processing. BlockPipelined // VoteAttest is emitted when the source commits to a vote. VoteAttest // VoteBroadcast is emitted when the source creates a set of // votes to be broadcasted. VoteBroadcast // VoteAccepted is emitted when the source accepts a vote. VoteAccepted // VoteRejected is emitted when the source rejects a vote. VoteRejected // BundleBroadcast is emitted when the source broadcasts a bundle. BundleBroadcast // BundleAccepted is emitted when the source accepts a bundle. BundleAccepted // BundleRejected is emitted when the source rejects a bundle. BundleRejected // Restored is emitted after the source successfully restores state from disk. // This happens once during initialization. Restored // Persisted is emitted after the source persists state to disk. // This happens before any vote is (possibly) emitted. Persisted )
func (AgreementType) String ¶
func (i AgreementType) String() string
func (*AgreementType) UnmarshalJSON ¶
func (t *AgreementType) UnmarshalJSON(b []byte) error
UnmarshalJSON initializes the AgreementType from a JSON string contained in a byte buffer. An error is returned if a valid AgreementType can't be parsed from the buffer.
type Component ¶
type Component int
Component is an enum identifying a specific type of Event TODO Maybe this should be called ComponentEventType (and change Event to ComponentEvent), since these are not actually types of components
func (*Component) UnmarshalJSON ¶
UnmarshalJSON initializes the Component from a JSON string contained in a byte buffer. An error is returned if a valid Component can't be parsed from the buffer.
type Event ¶
type Event struct {
// Context contains the component most related to whence log messages originate.
// It identifies the subtype corresponding to this event.
Context Component
// Source uniquely identifies the entity emitting the message within the log file.
// When one node is executing, this identifier is essentially a constant.
// During tests simulating multiple nodes, this identifier disambiguates them.
Source string
}
Event represents data corresponding to an event occurring related to a component
type LedgerEvent ¶
type LedgerEvent struct {
Event
Type LedgerType
// Round of the block just written
Round uint64
// Hash is the block hash of the block just written
Hash string
// Number of transactions in the block just written
TxnCount int
}
LedgerEvent represents data corresponding to an event occurring related to the ledger
type LedgerType ¶
type LedgerType int
LedgerType is an enum identifying a specific type of LedgerEvent TODO Maybe this should be called LedgerEventType, since these are not actually types of ledgers
const ( // WroteBlock is emitted whenever a block is written to the ledger WroteBlock LedgerType = iota )
func (LedgerType) String ¶
func (i LedgerType) String() string
func (*LedgerType) UnmarshalJSON ¶
func (t *LedgerType) UnmarshalJSON(b []byte) error
UnmarshalJSON initializes the LedgerType from a JSON string contained in a byte buffer. An error is returned if a valid LedgerType can't be parsed from the buffer.