Documentation
¶
Overview ¶
Package protocol provides the common functionality for mini-protocols
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ProtocolShuttingDownError = fmt.Errorf("protocol is shutting down")
Functions ¶
This section is empty.
Types ¶
type MessageBase ¶
type MessageBase struct {
MessageType uint8
// contains filtered or unexported fields
}
MessageBase is the minimum implementation for a mini-protocol message
func (*MessageBase) Cbor ¶
func (m *MessageBase) Cbor() []byte
Cbor returns the original CBOR that was parsed
func (*MessageBase) SetCbor ¶
func (m *MessageBase) SetCbor(data []byte)
SetCbor stores the original CBOR that was parsed
type MessageFromCborFunc ¶
MessageFromCborFunc represents a function that parses a mini-protocol message
type MessageHandlerFunc ¶
MessageHandlerFunc represents a function that handles an incoming message
type Protocol ¶
type Protocol struct {
// contains filtered or unexported fields
}
Protocol implements the base functionality of an Ouroboros mini-protocol
func (*Protocol) SendMessage ¶
SendMessage appends a message to the send queue
type ProtocolConfig ¶
type ProtocolConfig struct {
Name string
ProtocolId uint16
ErrorChan chan error
Muxer *muxer.Muxer
Mode ProtocolMode
Role ProtocolRole
MessageHandlerFunc MessageHandlerFunc
MessageFromCborFunc MessageFromCborFunc
StateMap StateMap
InitialState State
}
ProtocolConfig provides the configuration for Protocol
type ProtocolMode ¶
type ProtocolMode uint
ProtocolMode is an enum of the protocol modes
const ( ProtocolModeNone ProtocolMode = 0 // Default (invalid) protocol mode ProtocolModeNodeToClient ProtocolMode = 1 // Node-to-client protocol mode ProtocolModeNodeToNode ProtocolMode = 2 // Node-to-node protocol mode )
type ProtocolOptions ¶
type ProtocolOptions struct {
Muxer *muxer.Muxer
ErrorChan chan error
Mode ProtocolMode
// TODO: remove me
Role ProtocolRole
Version uint16
}
ProtocolOptions provides common arguments for all mini-protocols
type ProtocolRole ¶
type ProtocolRole uint
ProtocolRole is an enum of the protocol roles
const ( ProtocolRoleNone ProtocolRole = 0 // Default (invalid) protocol role ProtocolRoleClient ProtocolRole = 1 // Client protocol role ProtocolRoleServer ProtocolRole = 2 // Server protocol role )
type ProtocolStateAgency ¶
type ProtocolStateAgency uint
ProtocolStateAgency is an enum representing the possible protocol state agency values
const ( AgencyNone ProtocolStateAgency = 0 // Default (invalid) value AgencyClient ProtocolStateAgency = 1 // Client agency AgencyServer ProtocolStateAgency = 2 // Server agency )
type State ¶
State represents protocol state with both a numeric ID and a string identifer
type StateMap ¶
type StateMap map[State]StateMapEntry
StateMap represents the state machine definition for a mini-protocol
type StateMapEntry ¶
type StateMapEntry struct {
Agency ProtocolStateAgency
Transitions []StateTransition
Timeout time.Duration
}
StateMapEntry represents a protocol state, it's possible state transitions, and an optional timeout
type StateTransition ¶
type StateTransition struct {
MsgType uint8
NewState State
MatchFunc StateTransitionMatchFunc
}
StateTransition represents a protocol state transition
type StateTransitionMatchFunc ¶
StateTransitionMatchFunc represents a function that will take a Message and return a bool that indicates whether the message is a match for the state transition rule
Directories
¶
| Path | Synopsis |
|---|---|
|
Package chainsync implements the Ouroboros chain-sync protocol
|
Package chainsync implements the Ouroboros chain-sync protocol |
|
The common package contains types used by multiple mini-protocols
|
The common package contains types used by multiple mini-protocols |
|
Package handshake implements the Ouroboros handshake protocol
|
Package handshake implements the Ouroboros handshake protocol |
|
Package localstatequery implements the Ouroboros local-state-query protocol
|
Package localstatequery implements the Ouroboros local-state-query protocol |
|
Package localtxmonitor implements the Ouroboros local-tx-monitor protocol
|
Package localtxmonitor implements the Ouroboros local-tx-monitor protocol |
|
Package localtxsubmission implements the Ouroboros local-tx-submission protocol
|
Package localtxsubmission implements the Ouroboros local-tx-submission protocol |