message

package
v0.29.7 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2023 License: AGPL-3.0 Imports: 10 Imported by: 3

Documentation

Index

Constants

View Source
const (
	BlockProposal        = "BlockProposal"
	BlockVote            = "BlockVote"
	TimeoutObject        = "Timeout"
	SyncRequest          = "SyncRequest"
	SyncResponse         = "SyncResponse"
	RangeRequest         = "RangeRequest"
	BatchRequest         = "BatchRequest"
	BlockResponse        = "BlockResponse"
	ClusterBlockProposal = "ClusterBlockProposal"
	ClusterBlockVote     = "ClusterBlockVote"
	ClusterTimeoutObject = "ClusterTimeout"
	ClusterBlockResponse = "ClusterBlockResponse"
	CollectionGuarantee  = "CollectionGuarantee"
	TransactionBody      = "TransactionBody"
	ExecutionReceipt     = "ExecutionReceipt"
	ResultApproval       = "ResultApproval"
	ChunkDataRequest     = "ChunkDataRequest"
	ChunkDataResponse    = "ChunkDataResponse"
	ApprovalRequest      = "ApprovalRequest"
	ApprovalResponse     = "ApprovalResponse"
	EntityRequest        = "EntityRequest"
	EntityResponse       = "EntityResponse"
	TestMessage          = "TestMessage"
	DKGMessage           = "DKGMessage"
)

string constants for all message types sent on the network

View Source
const (
	ProtocolPublish = Protocol("publish")
	ProtocolUnicast = Protocol("unicast")
)

Variables

View Source
var (
	ErrUnauthorizedUnicastOnChannel = errors.New("message is not authorized to be sent on channel via unicast")
	ErrUnauthorizedPublishOnChannel = errors.New("message is not authorized to be sent on channel via publish/multicast")
	ErrUnauthorizedMessageOnChannel = errors.New("message is not authorized to be sent on channel")
	ErrUnauthorizedRole             = errors.New("sender role not authorized to send message on channel")
)
View Source
var (
	ErrInvalidLengthMessage        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowMessage          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupMessage = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthPing        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowPing          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupPing = fmt.Errorf("proto: unexpected end of group")
)

Functions

func IsUnknownMsgTypeErr added in v0.27.0

func IsUnknownMsgTypeErr(err error) bool

IsUnknownMsgTypeErr returns whether an error is UnknownMsgTypeErr

func NewUnauthorizedProtocolError added in v0.29.0

func NewUnauthorizedProtocolError(p Protocol) error

NewUnauthorizedProtocolError returns ErrUnauthorizedUnicastOnChannel or ErrUnauthorizedPublishOnChannel depending on the protocol provided.

Types

type ChannelAuthConfig added in v0.29.0

type ChannelAuthConfig struct {
	// AuthorizedRoles list of roles authorized to send this message on the channel.
	AuthorizedRoles flow.RoleList

	// AllowedProtocols list of protocols the message is allowed to be sent on. Currently AllowedProtocols is expected to have
	// exactly one element in the list. This is due to the fact that currently there are no messages that are used with both protocols aside from TestMessage.
	AllowedProtocols Protocols
}

type Message

type Message struct {
	ChannelID            string   `protobuf:"bytes,1,opt,name=ChannelID,proto3" json:"ChannelID,omitempty"`
	TargetIDs            [][]byte `protobuf:"bytes,2,rep,name=TargetIDs,proto3" json:"TargetIDs,omitempty"`
	Payload              []byte   `protobuf:"bytes,3,opt,name=Payload,proto3" json:"Payload,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Message models a single message that is supposed to get exchanged by the gossip network

func (*Message) Descriptor

func (*Message) Descriptor() ([]byte, []int)

func (*Message) GetChannelID

func (m *Message) GetChannelID() string

func (*Message) GetPayload

func (m *Message) GetPayload() []byte

func (*Message) GetTargetIDs

func (m *Message) GetTargetIDs() [][]byte

func (*Message) Marshal

func (m *Message) Marshal() (dAtA []byte, err error)

func (*Message) MarshalTo

func (m *Message) MarshalTo(dAtA []byte) (int, error)

func (*Message) MarshalToSizedBuffer

func (m *Message) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Message) ProtoMessage

func (*Message) ProtoMessage()

func (*Message) Reset

func (m *Message) Reset()

func (*Message) Size

func (m *Message) Size() (n int)

func (*Message) String

func (m *Message) String() string

func (*Message) Unmarshal

func (m *Message) Unmarshal(dAtA []byte) error

func (*Message) XXX_DiscardUnknown

func (m *Message) XXX_DiscardUnknown()

func (*Message) XXX_Marshal

func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Message) XXX_Merge

func (m *Message) XXX_Merge(src proto.Message)

func (*Message) XXX_Size

func (m *Message) XXX_Size() int

func (*Message) XXX_Unmarshal

func (m *Message) XXX_Unmarshal(b []byte) error

type MsgAuthConfig added in v0.27.0

type MsgAuthConfig struct {
	// Name is the string representation of the message type.
	Name string
	// Type is a func that returns a new instance of message type.
	Type func() interface{}
	// Config is the mapping of network channel to list of authorized flow roles.
	Config map[channels.Channel]ChannelAuthConfig
}

MsgAuthConfig contains authorization information for a specific flow message. The authorization is represented as a map from network channel -> list of all roles allowed to send the message on the channel.

func GetAllMessageAuthConfigs added in v0.27.0

func GetAllMessageAuthConfigs() []MsgAuthConfig

GetAllMessageAuthConfigs returns all the configured message auth configurations.

func GetMessageAuthConfig added in v0.27.0

func GetMessageAuthConfig(v interface{}) (MsgAuthConfig, error)

GetMessageAuthConfig checks the underlying type and returns the correct message auth Config. Expected error returns during normal operations:

  • ErrUnknownMsgType : if underlying type of v does not match any of the known message types

func (MsgAuthConfig) EnsureAuthorized added in v0.27.0

func (m MsgAuthConfig) EnsureAuthorized(role flow.Role, channel channels.Channel, protocol Protocol) error

EnsureAuthorized checks if the specified role is authorized to send the message on the provided channel and asserts that the message is authorized to be sent on the channel. Expected error returns during normal operations:

  • ErrUnauthorizedMessageOnChannel: the channel is not included in the message's list of authorized channels
  • ErrUnauthorizedRole: the role is not included in the message's list of authorized roles for the provided channel
  • ErrUnauthorizedUnicastOnChannel: the message is not authorized to be sent via unicast protocol.
  • ErrUnauthorizedPublishOnChannel: the message is not authorized to be sent via publish protocol.

type PingRequest added in v0.17.0

type PingRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*PingRequest) Descriptor added in v0.17.0

func (*PingRequest) Descriptor() ([]byte, []int)

func (*PingRequest) Marshal added in v0.17.0

func (m *PingRequest) Marshal() (dAtA []byte, err error)

func (*PingRequest) MarshalTo added in v0.17.0

func (m *PingRequest) MarshalTo(dAtA []byte) (int, error)

func (*PingRequest) MarshalToSizedBuffer added in v0.17.0

func (m *PingRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PingRequest) ProtoMessage added in v0.17.0

func (*PingRequest) ProtoMessage()

func (*PingRequest) Reset added in v0.17.0

func (m *PingRequest) Reset()

func (*PingRequest) Size added in v0.17.0

func (m *PingRequest) Size() (n int)

func (*PingRequest) String added in v0.17.0

func (m *PingRequest) String() string

func (*PingRequest) Unmarshal added in v0.17.0

func (m *PingRequest) Unmarshal(dAtA []byte) error

func (*PingRequest) XXX_DiscardUnknown added in v0.17.0

func (m *PingRequest) XXX_DiscardUnknown()

func (*PingRequest) XXX_Marshal added in v0.17.0

func (m *PingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PingRequest) XXX_Merge added in v0.17.0

func (m *PingRequest) XXX_Merge(src proto.Message)

func (*PingRequest) XXX_Size added in v0.17.0

func (m *PingRequest) XXX_Size() int

func (*PingRequest) XXX_Unmarshal added in v0.17.0

func (m *PingRequest) XXX_Unmarshal(b []byte) error

type PingResponse added in v0.17.0

type PingResponse struct {
	Version              string   `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	BlockHeight          uint64   `protobuf:"varint,2,opt,name=blockHeight,proto3" json:"blockHeight,omitempty"`
	HotstuffView         uint64   `protobuf:"varint,3,opt,name=hotstuffView,proto3" json:"hotstuffView,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*PingResponse) Descriptor added in v0.17.0

func (*PingResponse) Descriptor() ([]byte, []int)

func (*PingResponse) GetBlockHeight added in v0.17.0

func (m *PingResponse) GetBlockHeight() uint64

func (*PingResponse) GetHotstuffView added in v0.22.10

func (m *PingResponse) GetHotstuffView() uint64

func (*PingResponse) GetVersion added in v0.17.0

func (m *PingResponse) GetVersion() string

func (*PingResponse) Marshal added in v0.17.0

func (m *PingResponse) Marshal() (dAtA []byte, err error)

func (*PingResponse) MarshalTo added in v0.17.0

func (m *PingResponse) MarshalTo(dAtA []byte) (int, error)

func (*PingResponse) MarshalToSizedBuffer added in v0.17.0

func (m *PingResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PingResponse) ProtoMessage added in v0.17.0

func (*PingResponse) ProtoMessage()

func (*PingResponse) Reset added in v0.17.0

func (m *PingResponse) Reset()

func (*PingResponse) Size added in v0.17.0

func (m *PingResponse) Size() (n int)

func (*PingResponse) String added in v0.17.0

func (m *PingResponse) String() string

func (*PingResponse) Unmarshal added in v0.17.0

func (m *PingResponse) Unmarshal(dAtA []byte) error

func (*PingResponse) XXX_DiscardUnknown added in v0.17.0

func (m *PingResponse) XXX_DiscardUnknown()

func (*PingResponse) XXX_Marshal added in v0.17.0

func (m *PingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PingResponse) XXX_Merge added in v0.17.0

func (m *PingResponse) XXX_Merge(src proto.Message)

func (*PingResponse) XXX_Size added in v0.17.0

func (m *PingResponse) XXX_Size() int

func (*PingResponse) XXX_Unmarshal added in v0.17.0

func (m *PingResponse) XXX_Unmarshal(b []byte) error

type Protocol added in v0.29.0

type Protocol string

func (Protocol) String added in v0.29.0

func (p Protocol) String() string

type Protocols added in v0.29.0

type Protocols []Protocol

func (Protocols) Contains added in v0.29.0

func (pr Protocols) Contains(protocol Protocol) bool

Contains returns true if the protocol is in the list of Protocols.

type UnknownMsgTypeErr added in v0.27.0

type UnknownMsgTypeErr struct {
	MsgType interface{}
}

UnknownMsgTypeErr indicates that no message auth configured for the message type v

func NewUnknownMsgTypeErr added in v0.27.0

func NewUnknownMsgTypeErr(msgType interface{}) UnknownMsgTypeErr

NewUnknownMsgTypeErr returns a new ErrUnknownMsgType

func (UnknownMsgTypeErr) Error added in v0.27.0

func (e UnknownMsgTypeErr) Error() string

Jump to

Keyboard shortcuts

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