Documentation
¶
Index ¶
- func ConnectionID(conn Connection) string
- func DecidedAPIData(msgs ...*specqbft.SignedMessage) (interface{}, error)
- func HandleDecidedQuery(logger *zap.Logger, qbftStorage *storage.QBFTStores, nm *NetworkMessage)
- func HandleErrorQuery(logger *zap.Logger, nm *NetworkMessage)
- func HandleUnknownQuery(logger *zap.Logger, nm *NetworkMessage)
- type Broadcaster
- type Conn
- type Connection
- type Message
- type MessageFilter
- type MessageType
- type NetworkMessage
- type QueryMessageHandler
- type SignedMessageAPI
- type WSClient
- type WebSocketServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConnectionID ¶
func ConnectionID(conn Connection) string
ConnectionID calculates the id of the given Connection
func DecidedAPIData ¶ added in v0.3.0
func DecidedAPIData(msgs ...*specqbft.SignedMessage) (interface{}, error)
DecidedAPIData creates a new message from the given message
func HandleDecidedQuery ¶ added in v0.3.0
func HandleDecidedQuery(logger *zap.Logger, qbftStorage *storage.QBFTStores, nm *NetworkMessage)
HandleDecidedQuery handles TypeDecided queries.
func HandleErrorQuery ¶ added in v0.3.0
func HandleErrorQuery(logger *zap.Logger, nm *NetworkMessage)
HandleErrorQuery handles TypeError queries.
func HandleUnknownQuery ¶ added in v0.3.0
func HandleUnknownQuery(logger *zap.Logger, nm *NetworkMessage)
HandleUnknownQuery handles unknown queries.
Types ¶
type Broadcaster ¶ added in v0.1.5
type Broadcaster interface {
FromFeed(logger *zap.Logger, feed *event.Feed) error
Broadcast(msg Message) error
Register(conn broadcasted) bool
Deregister(conn broadcasted) bool
}
Broadcaster is an interface broadcasting stream message across all available connections
type Conn ¶ added in v0.1.5
type Conn interface {
ID() string
ReadNext() []byte
Send(msg []byte)
WriteLoop(logger *zap.Logger)
ReadLoop(logger *zap.Logger)
Close() error
RemoteAddr() net.Addr
}
Conn is a wrapper interface for websocket connections
type Connection ¶
Connection is an interface to abstract the actual websocket connection implementation
type Message ¶
type Message struct {
// Type is the type of message
Type MessageType `json:"type"`
// Filter
Filter MessageFilter `json:"filter"`
// Values holds the results, optional as it's relevant for response
Data interface{} `json:"data,omitempty"`
}
Message represents an exporter message
func NewDecidedAPIMsg ¶ added in v0.3.0
func NewDecidedAPIMsg(msgs ...*specqbft.SignedMessage) Message
NewDecidedAPIMsg creates a new message from the given message TODO: avoid converting to v0 once explorer is upgraded
type MessageFilter ¶
type MessageFilter struct {
// From is the starting index of the desired data
From uint64 `json:"from"`
// To is the ending index of the desired data
To uint64 `json:"to"`
// Role is the duty type, optional as it's relevant for IBFT data
Role string `json:"role,omitempty"`
// PublicKey is optional, used for fetching decided messages or information about specific validator/operator
PublicKey string `json:"publicKey,omitempty"`
}
MessageFilter is a criteria for query in request messages and projection in responses
type MessageType ¶
type MessageType string
MessageType is the type of message being sent
const ( // TypeValidator is an enum for validator type messages TypeValidator MessageType = "validator" // TypeOperator is an enum for operator type messages TypeOperator MessageType = "operator" // TypeDecided is an enum for ibft type messages TypeDecided MessageType = "decided" // TypeError is an enum for error type messages TypeError MessageType = "error" )
type NetworkMessage ¶
type NetworkMessage struct {
Msg Message
Err error
Conn Connection
}
NetworkMessage wraps an actual message with more information
type QueryMessageHandler ¶ added in v0.1.2
type QueryMessageHandler func(logger *zap.Logger, nm *NetworkMessage)
QueryMessageHandler handles the given message
type SignedMessageAPI ¶ added in v0.4.7
type SignedMessageAPI struct {
Signature types.Signature
Signers []types.OperatorID
Message specqbft.Message
FullData *types.ConsensusData
}
type WSClient ¶ added in v0.1.5
type WSClient struct {
// contains filtered or unexported fields
}
WSClient represents a client connection to be used in tests
func NewWSClient ¶ added in v0.1.5
NewWSClient creates a new instance of ws client
func (*WSClient) MessageCount ¶ added in v0.1.5
MessageCount returns the count of incoming messages
func (*WSClient) StartQuery ¶ added in v0.1.5
StartQuery initiates query requests
type WebSocketServer ¶
type WebSocketServer interface {
Start(logger *zap.Logger, addr string) error
BroadcastFeed() *event.Feed
UseQueryHandler(handler QueryMessageHandler)
}
WebSocketServer is responsible for managing all
func NewWsServer ¶
func NewWsServer(ctx context.Context, handler QueryMessageHandler, mux *http.ServeMux, withPing bool) WebSocketServer
NewWsServer creates a new instance