Documentation ¶
Overview ¶
Package events defines events published by go-spacemsh node using nodes pubsub
Index ¶
- Constants
- func CloseEventPubSub()
- func CloseEventReporter()
- func EventHook() func(entry zapcore.Entry) error
- func InitializeEventPubsub(ur string) error
- func InitializeEventReporter(url string) error
- func InitializeEventReporterWithOptions(url string) error
- func Publish(event Event)
- func ReportAccountUpdate(a types.Address)
- func ReportAtxCreated(created bool, epoch uint32, id string)
- func ReportCalculatedTortoiseBeacon(epoch types.EpochID, beacon string)
- func ReportDoneCreatingBlock(eligible bool, layer uint32, error string)
- func ReportError(err NodeError)
- func ReportLayerUpdate(layer LayerUpdate)
- func ReportNewActivation(activation *types.ActivationTx)
- func ReportNewBlock(blk *types.Block)
- func ReportNewTx(layerID types.LayerID, tx *types.Transaction)
- func ReportNodeStatusUpdate()
- func ReportReceipt(r TxReceipt)
- func ReportRewardReceived(r Reward)
- func ReportTxWithValidity(layerID types.LayerID, tx *types.Transaction, valid bool)
- func ReportValidActivation(activation *types.ActivationTx, valid bool)
- func ReportValidBlock(blockID types.BlockID, valid bool)
- func ReportValidTx(tx *types.Transaction, valid bool)
- func SubscribeAccount() event.Subscription
- func SubscribeActivations() event.Subscription
- func SubscribeErrors() event.Subscription
- func SubscribeLayers() event.Subscription
- func SubscribeReceipts() event.Subscription
- func SubscribeRewards() event.Subscription
- func SubscribeStatus() event.Subscription
- func SubscribeToLayers(newLayerCh timesync.LayerTimer)
- func SubscribeTxs() event.Subscription
- type Account
- type ActivationTx
- type AtxCreated
- type ChannelID
- type DoneCreatingBlock
- type Event
- type EventPublisher
- type EventReporter
- type LayerUpdate
- type NewAtx
- type NewBlock
- type NewTx
- type NodeError
- type Publisher
- type Reward
- type RewardReceived
- type Status
- type Subscriber
- type TortoiseBeaconCalculated
- type Transaction
- type TxReceipt
- type ValidAtx
- type ValidBlock
- type ValidTx
Constants ¶
const ( LayerStatusTypeUnknown = iota LayerStatusTypeApproved // approved by Hare LayerStatusTypeConfirmed // confirmed by Tortoise )
The status of a layer TODO: this list is woefully inadequate and does not map to reality. See https://github.com/spacemeshos/api/issues/144.
Variables ¶
This section is empty.
Functions ¶
func CloseEventPubSub ¶ added in v0.1.16
func CloseEventPubSub()
CloseEventPubSub closes events pubsub and destroys it.
func CloseEventReporter ¶ added in v0.1.15
func CloseEventReporter()
CloseEventReporter shuts down the event reporting service and closes open channels.
func InitializeEventPubsub ¶
InitializeEventPubsub initializes the global pubsub broadcaster server.
func InitializeEventReporter ¶ added in v0.1.15
InitializeEventReporter initializes the event reporting interface.
func InitializeEventReporterWithOptions ¶ added in v0.1.15
InitializeEventReporterWithOptions initializes the event reporting interface with a nonzero channel buffer. This is useful for testing, where we want reporting to block.
func ReportAccountUpdate ¶ added in v0.1.15
ReportAccountUpdate reports an account whose data has been updated.
func ReportAtxCreated ¶ added in v0.1.15
ReportAtxCreated reports a created activation.
func ReportCalculatedTortoiseBeacon ¶
ReportCalculatedTortoiseBeacon reports calculated tortoise beacon.
func ReportDoneCreatingBlock ¶ added in v0.1.15
ReportDoneCreatingBlock reports a created block.
func ReportLayerUpdate ¶ added in v1.0.0
func ReportLayerUpdate(layer LayerUpdate)
ReportLayerUpdate reports a new layer, or an update to an existing layer.
func ReportNewActivation ¶ added in v0.1.15
func ReportNewActivation(activation *types.ActivationTx)
ReportNewActivation reports a new activation.
func ReportNewBlock ¶ added in v0.1.15
ReportNewBlock reports a new block.
func ReportNewTx ¶ added in v0.1.15
func ReportNewTx(layerID types.LayerID, tx *types.Transaction)
ReportNewTx dispatches incoming events to the reporter singleton.
func ReportNodeStatusUpdate ¶ added in v0.1.15
func ReportNodeStatusUpdate()
ReportNodeStatusUpdate reports an update to the node status. It just pings the listener to notify them that there is an update; the listener is responsible for fetching the new status details. This is because status contains disparate information coming from different services, and the listener already knows how to gather that information so there is no point in duplicating that logic here. Note: There is some overlap with channelLayer here, as a new latest or verified layer should be sent over that channel as well. However, that happens inside the Mesh, at the source. It doesn't currently happen here because the status update includes only a layer ID, not full layer data, and the Reporter currently has no way to retrieve full layer data.
func ReportReceipt ¶ added in v0.1.15
func ReportReceipt(r TxReceipt)
ReportReceipt reports creation or receipt of a new tx receipt.
func ReportRewardReceived ¶ added in v0.1.15
func ReportRewardReceived(r Reward)
ReportRewardReceived reports a new reward.
func ReportTxWithValidity ¶ added in v0.1.15
func ReportTxWithValidity(layerID types.LayerID, tx *types.Transaction, valid bool)
ReportTxWithValidity reports a tx along with whether it was just invalidated.
func ReportValidActivation ¶ added in v0.1.15
func ReportValidActivation(activation *types.ActivationTx, valid bool)
ReportValidActivation reports a valid activation.
func ReportValidBlock ¶ added in v0.1.15
ReportValidBlock reports a block's validity.
func ReportValidTx ¶ added in v0.1.15
func ReportValidTx(tx *types.Transaction, valid bool)
ReportValidTx reports a valid transaction.
func SubscribeAccount ¶ added in v1.0.0
func SubscribeAccount() event.Subscription
SubscribeAccount subscribes to account data updates.
func SubscribeActivations ¶ added in v1.0.0
func SubscribeActivations() event.Subscription
SubscribeActivations subscribes to activations.
func SubscribeErrors ¶ added in v1.0.0
func SubscribeErrors() event.Subscription
SubscribeErrors subscribes to node errors.
func SubscribeLayers ¶ added in v1.0.0
func SubscribeLayers() event.Subscription
SubscribeLayers subscribes to all layer data.
func SubscribeReceipts ¶
func SubscribeReceipts() event.Subscription
SubscribeReceipts subscribes to receipts.
func SubscribeRewards ¶ added in v1.0.0
func SubscribeRewards() event.Subscription
SubscribeRewards subscribes to rewards.
func SubscribeStatus ¶ added in v1.0.0
func SubscribeStatus() event.Subscription
SubscribeStatus subscribes to node status messages.
func SubscribeToLayers ¶ added in v0.1.15
func SubscribeToLayers(newLayerCh timesync.LayerTimer)
SubscribeToLayers is used to track and report automatically every time a new layer is reached.
func SubscribeTxs ¶ added in v1.0.0
func SubscribeTxs() event.Subscription
SubscribeTxs subscribes to new transactions.
Types ¶
type ActivationTx ¶ added in v1.0.0
type ActivationTx struct {
*types.ActivationTx
}
ActivationTx wraps *types.ActivationTx.
type AtxCreated ¶
AtxCreated signals this miner has created an activation transaction.
func (AtxCreated) GetChannel ¶
func (AtxCreated) GetChannel() ChannelID
GetChannel gets the message type which means on which this message should be sent.
type ChannelID ¶ added in v0.1.11
type ChannelID byte
ChannelID is the ID on which subscribers must register in order to listen to messages on the channel.
type DoneCreatingBlock ¶
DoneCreatingBlock signals that this miner has created a block.
func (DoneCreatingBlock) GetChannel ¶
func (DoneCreatingBlock) GetChannel() ChannelID
GetChannel gets the message type which means on which this message should be sent.
type Event ¶
type Event interface { // GetChannel returns the channel on which this message will be published. GetChannel() ChannelID }
Event defines the interface that each message sent by the EventPublisher needs to implement for it to correctly be routed by topic.
type EventPublisher ¶
type EventPublisher struct {
*Publisher
}
EventPublisher is the struct that publishes events to subscribers by topics.
func NewEventPublisher ¶
func NewEventPublisher(eventURL string) (*EventPublisher, error)
NewEventPublisher is a constructor for the event publisher, it received a url string in format of tcp://localhost:56565 to start listening for connections.
func (*EventPublisher) Close ¶
func (p *EventPublisher) Close() error
Close closes the published internal socket.
func (*EventPublisher) PublishEvent ¶
func (p *EventPublisher) PublishEvent(event Event) error
PublishEvent publishes the provided event on pubsub infra.
type EventReporter ¶ added in v0.1.15
type EventReporter struct {
// contains filtered or unexported fields
}
EventReporter is the struct that receives incoming events and dispatches them.
type LayerUpdate ¶ added in v1.0.0
LayerUpdate packages up a layer with its status (which a layer does not ordinarily contain).
func (LayerUpdate) Field ¶ added in v1.0.0
func (nl LayerUpdate) Field() log.Field
Field returns a log field. Implements the LoggableField interface.
type NewAtx ¶
NewAtx signals that a new ATX has been received.
func (NewAtx) GetChannel ¶
GetChannel gets the message type which means on which this message should be sent.
type NewBlock ¶
NewBlock is sent when a new block is created by this miner.
func (NewBlock) GetChannel ¶
GetChannel gets the message type which means on which this message should be sent.
type NewTx ¶
NewTx signals that a new transaction has been received and not yet validated.
func (NewTx) GetChannel ¶
GetChannel gets the message type which means on which this message should be sent.
type Publisher ¶
type Publisher struct {
// contains filtered or unexported fields
}
Publisher is a wrapper for mangos pubsub publisher socket.
type Reward ¶ added in v0.1.15
type Reward struct { Layer types.LayerID Total uint64 LayerReward uint64 Coinbase types.Address // TODO: We don't currently have a way to get the Layer Computed. // See https://github.com/spacemeshos/go-spacemesh/issues/2275 // LayerComputed Smesher types.NodeID }
Reward represents a reward object with extra data needed by the API.
type RewardReceived ¶
RewardReceived signals reward has been received.
func (RewardReceived) GetChannel ¶
func (RewardReceived) GetChannel() ChannelID
GetChannel gets the message type which means on which this message should be sent.
type Subscriber ¶
type Subscriber struct {
// contains filtered or unexported fields
}
Subscriber defines the struct of the receiving end of the pubsub messages.
func NewSubscriber ¶
func NewSubscriber(url string) (*Subscriber, error)
NewSubscriber received url string as input on which it will register to receive messages passed by server.
func (*Subscriber) Close ¶
func (sub *Subscriber) Close() error
Close closes the socket which in turn will Close the listener func.
func (*Subscriber) StartListening ¶
func (sub *Subscriber) StartListening()
StartListening runs in a go routine and listens to all channels this subscriber is registered to. it then passes the messages received to the appropriate reader channel.
func (*Subscriber) Subscribe ¶
func (sub *Subscriber) Subscribe(topic ChannelID) (chan []byte, error)
Subscribe subscribes to the given topic, returns a channel on which data from the topic is received.
func (*Subscriber) SubscribeToAll ¶
func (sub *Subscriber) SubscribeToAll() (chan []byte, error)
SubscribeToAll subscribes to all available topics.
type TortoiseBeaconCalculated ¶
TortoiseBeaconCalculated signals this miner has calculated a tortoise beacon.
func (TortoiseBeaconCalculated) GetChannel ¶
func (TortoiseBeaconCalculated) GetChannel() ChannelID
GetChannel gets the message type which means on which this message should be sent.
type Transaction ¶ added in v1.0.0
type Transaction struct { Transaction *types.Transaction LayerID types.LayerID Valid bool }
Transaction wraps a tx with its layer ID and validity info.
type TxReceipt ¶ added in v0.1.15
type TxReceipt struct { ID types.TransactionID Result int GasUsed uint64 Fee uint64 Layer types.LayerID Index uint32 Address types.Address }
TxReceipt represents a transaction receipt.
type ValidAtx ¶
ValidAtx signals that an activation transaction with id ID has been validated.
func (ValidAtx) GetChannel ¶
GetChannel gets the message type which means on which this message should be sent.
type ValidBlock ¶
ValidBlock signals that block with id ID has been validated.
func (ValidBlock) GetChannel ¶
func (ValidBlock) GetChannel() ChannelID
GetChannel gets the message type which means on which this message should be sent.