wire

package
v0.0.0-...-7ece11e Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2023 License: MIT Imports: 14 Imported by: 4

README

Wire - list transfered message objects of P2P in incognito chain

This package contains list of messages, which are used to transfer from peer to peer.

Each of message when send from peer to peer, 1st 24 bytes is header of message(with 1st 12 bytes is command type of message). That mean when creaste a message to send, we need add 24 bytes as header of message before send to other peers.

Every message have a max length to transfer. If peer receive a message which has length > max lenght of current version message, it should be rejected by peer inMessageHandler

Documentation

Index

Constants

View Source
const (
	// Message version
	Version = 1

	// Total in bytes of header message
	MessageHeaderSize = 24

	// size of cmd type in header message
	MessageCmdTypeSize = 12

	MaxBlockPayload = 2048000 + 100000 // 2 Mb + 100 Kb

	MaxGetAddrPayload = 1000 // 1 1Kb
)
View Source
const (
	CmdGetBlockBeacon     = "getblkbeacon"
	CmdGetBlockShard      = "getblkshard"
	CmdGetCrossShard      = "getcrossshd"
	CmdBlockShard         = "blockshard"
	CmdBlockBeacon        = "blockbeacon"
	CmdCrossShard         = "crossshard"
	CmdTx                 = "tx"
	CmdPrivacyCustomToken = "txprivacytok"
	CmdVersion            = "version"
	CmdVerack             = "verack"
	CmdGetAddr            = "getaddr"
	CmdAddr               = "addr"
	CmdPing               = "ping"

	// POS Cmd
	CmdBFT       = "bft"
	CmdPeerState = "peerstate"

	// heavy message check cmd
	CmdMsgCheck     = "msgcheck"
	CmdMsgCheckResp = "msgcheckresp"

	// validator state messages
	CmdMsgFinishSync  = "finishsync"
	CmdMsgFeatureStat = "featurestat"
)

list cmd type in message header

View Source
const (
	MaxBFTPayload = 1 << 23 // 8 MB
)
View Source
const (
	MaxGetAddressPayload = 100000 // 100 Kb
)
View Source
const (
	MaxGetBlockPayload = 1000 // 1kb
)
View Source
const (
	MaxPeerStatePayload = 4000000 // 4 Mb
)
View Source
const (
	MaxPingPayload = 1000 // 1 1Kb
)
View Source
const (
	MaxTxPayload = 4000000 // 4 Mb
)
View Source
const (
	MaxTxPrivacyTokenPayload = 4000000 // 4 Mb
)
View Source
const (
	MaxVersionPayload = 2000 // 1 1Kb
)

Variables

This section is empty.

Functions

func GetCmdType

func GetCmdType(msgType reflect.Type) (string, error)

Types

type ChainState

type ChainState struct {
	Timestamp     int64
	Height        uint64
	BlockHash     common.Hash
	BestStateHash common.Hash
}

type Message

type Message interface {
	Hash() string
	MessageType() string
	MaxPayloadLength(version int) int // update version can change length of message
	JsonSerialize() ([]byte, error)
	JsonDeserialize(string) error
	SetSenderID(peer.ID) error

	//VerifyMsgSanity verify msg before push it to final handler
	VerifyMsgSanity() error
}

Interface for message wire on P2P network

func MakeEmptyMessage

func MakeEmptyMessage(messageType string) (Message, error)

type MessageAddr

type MessageAddr struct {
	Timestamp time.Time
	RawPeers  []RawPeer
}

func (*MessageAddr) Hash

func (msg *MessageAddr) Hash() string

func (*MessageAddr) JsonDeserialize

func (msg *MessageAddr) JsonDeserialize(jsonStr string) error

func (*MessageAddr) JsonSerialize

func (msg *MessageAddr) JsonSerialize() ([]byte, error)

func (*MessageAddr) MaxPayloadLength

func (msg *MessageAddr) MaxPayloadLength(pver int) int

func (*MessageAddr) MessageType

func (msg *MessageAddr) MessageType() string

func (*MessageAddr) SetSenderID

func (msg *MessageAddr) SetSenderID(senderID peer.ID) error

func (*MessageAddr) SignMsg

func (msg *MessageAddr) SignMsg(_ *incognitokey.KeySet) error

func (*MessageAddr) VerifyMsgSanity

func (msg *MessageAddr) VerifyMsgSanity() error

type MessageBFT

type MessageBFT struct {
	PeerID    string
	Type      string
	Content   []byte
	ChainKey  string
	Timestamp int64
	TimeSlot  int64
}

func (*MessageBFT) Hash

func (msg *MessageBFT) Hash() string

func (*MessageBFT) JsonDeserialize

func (msg *MessageBFT) JsonDeserialize(jsonStr string) error

func (*MessageBFT) JsonSerialize

func (msg *MessageBFT) JsonSerialize() ([]byte, error)

func (*MessageBFT) MaxPayloadLength

func (msg *MessageBFT) MaxPayloadLength(pver int) int

func (*MessageBFT) MessageType

func (msg *MessageBFT) MessageType() string

func (*MessageBFT) SetSenderID

func (msg *MessageBFT) SetSenderID(senderID peer.ID) error

func (*MessageBFT) SignMsg

func (msg *MessageBFT) SignMsg(keySet *incognitokey.KeySet) error

func (*MessageBFT) VerifyMsgSanity

func (msg *MessageBFT) VerifyMsgSanity() error

type MessageBlockBeacon

type MessageBlockBeacon struct {
	Block *types.BeaconBlock
}

func (*MessageBlockBeacon) Hash

func (msg *MessageBlockBeacon) Hash() string

func (*MessageBlockBeacon) JsonDeserialize

func (msg *MessageBlockBeacon) JsonDeserialize(jsonStr string) error

func (*MessageBlockBeacon) JsonSerialize

func (msg *MessageBlockBeacon) JsonSerialize() ([]byte, error)

func (*MessageBlockBeacon) MaxPayloadLength

func (msg *MessageBlockBeacon) MaxPayloadLength(pver int) int

func (*MessageBlockBeacon) MessageType

func (msg *MessageBlockBeacon) MessageType() string

func (*MessageBlockBeacon) SetSenderID

func (msg *MessageBlockBeacon) SetSenderID(senderID peer.ID) error

func (*MessageBlockBeacon) SignMsg

func (msg *MessageBlockBeacon) SignMsg(_ *incognitokey.KeySet) error

func (*MessageBlockBeacon) VerifyMsgSanity

func (msg *MessageBlockBeacon) VerifyMsgSanity() error

type MessageBlockShard

type MessageBlockShard struct {
	Block                  *types.ShardBlock
	PreviousValidationData string
}

func (*MessageBlockShard) Hash

func (msg *MessageBlockShard) Hash() string

func (*MessageBlockShard) JsonDeserialize

func (msg *MessageBlockShard) JsonDeserialize(jsonStr string) error

func (*MessageBlockShard) JsonSerialize

func (msg *MessageBlockShard) JsonSerialize() ([]byte, error)

func (*MessageBlockShard) MaxPayloadLength

func (msg *MessageBlockShard) MaxPayloadLength(pver int) int

func (*MessageBlockShard) MessageType

func (msg *MessageBlockShard) MessageType() string

func (*MessageBlockShard) SetSenderID

func (msg *MessageBlockShard) SetSenderID(senderID peer.ID) error

func (*MessageBlockShard) SignMsg

func (msg *MessageBlockShard) SignMsg(_ *incognitokey.KeySet) error

func (*MessageBlockShard) VerifyMsgSanity

func (msg *MessageBlockShard) VerifyMsgSanity() error

type MessageCrossShard

type MessageCrossShard struct {
	Block *types.CrossShardBlock
}

func (*MessageCrossShard) Hash

func (msg *MessageCrossShard) Hash() string

func (*MessageCrossShard) JsonDeserialize

func (msg *MessageCrossShard) JsonDeserialize(jsonStr string) error

func (*MessageCrossShard) JsonSerialize

func (msg *MessageCrossShard) JsonSerialize() ([]byte, error)

func (*MessageCrossShard) MaxPayloadLength

func (msg *MessageCrossShard) MaxPayloadLength(pver int) int

func (*MessageCrossShard) MessageType

func (msg *MessageCrossShard) MessageType() string

func (*MessageCrossShard) SetSenderID

func (msg *MessageCrossShard) SetSenderID(senderID peer.ID) error

func (*MessageCrossShard) SignMsg

func (msg *MessageCrossShard) SignMsg(_ *incognitokey.KeySet) error

func (*MessageCrossShard) VerifyMsgSanity

func (msg *MessageCrossShard) VerifyMsgSanity() error

type MessageFeature

type MessageFeature struct {
	Timestamp          int
	Feature            []string
	CommitteePublicKey []string
	Signature          [][]byte
}

func NewMessageFeature

func NewMessageFeature(timestamp int, committeePublicKey []string, signature [][]byte, feature []string) *MessageFeature

func (*MessageFeature) Hash

func (msg *MessageFeature) Hash() string

func (*MessageFeature) JsonDeserialize

func (msg *MessageFeature) JsonDeserialize(jsonStr string) error

func (*MessageFeature) JsonSerialize

func (msg *MessageFeature) JsonSerialize() ([]byte, error)

func (*MessageFeature) MaxPayloadLength

func (msg *MessageFeature) MaxPayloadLength(pver int) int

func (*MessageFeature) MessageType

func (msg *MessageFeature) MessageType() string

func (*MessageFeature) SetSenderID

func (msg *MessageFeature) SetSenderID(senderID peer.ID) error

func (*MessageFeature) SignMsg

func (msg *MessageFeature) SignMsg(_ *incognitokey.KeySet) error

func (*MessageFeature) VerifyMsgSanity

func (msg *MessageFeature) VerifyMsgSanity() error

type MessageFinishSync

type MessageFinishSync struct {
	CommitteePublicKey []string
	Signature          [][]byte
	ShardID            byte
}

func NewMessageFinishSync

func NewMessageFinishSync(committeePublicKey []string, signature [][]byte, shardID byte) *MessageFinishSync

func (*MessageFinishSync) Hash

func (msg *MessageFinishSync) Hash() string

func (*MessageFinishSync) JsonDeserialize

func (msg *MessageFinishSync) JsonDeserialize(jsonStr string) error

func (*MessageFinishSync) JsonSerialize

func (msg *MessageFinishSync) JsonSerialize() ([]byte, error)

func (*MessageFinishSync) MaxPayloadLength

func (msg *MessageFinishSync) MaxPayloadLength(pver int) int

func (*MessageFinishSync) MessageType

func (msg *MessageFinishSync) MessageType() string

func (*MessageFinishSync) SetSenderID

func (msg *MessageFinishSync) SetSenderID(senderID peer.ID) error

func (*MessageFinishSync) SignMsg

func (msg *MessageFinishSync) SignMsg(_ *incognitokey.KeySet) error

func (*MessageFinishSync) VerifyMsgSanity

func (msg *MessageFinishSync) VerifyMsgSanity() error

type MessageGetAddr

type MessageGetAddr struct {
	Timestamp time.Time
}

func (*MessageGetAddr) Hash

func (msg *MessageGetAddr) Hash() string

func (*MessageGetAddr) JsonDeserialize

func (msg *MessageGetAddr) JsonDeserialize(jsonStr string) error

func (*MessageGetAddr) JsonSerialize

func (msg *MessageGetAddr) JsonSerialize() ([]byte, error)

func (*MessageGetAddr) MaxPayloadLength

func (msg *MessageGetAddr) MaxPayloadLength(pver int) int

func (*MessageGetAddr) MessageType

func (msg *MessageGetAddr) MessageType() string

func (*MessageGetAddr) SetSenderID

func (msg *MessageGetAddr) SetSenderID(senderID peer.ID) error

func (*MessageGetAddr) SignMsg

func (msg *MessageGetAddr) SignMsg(_ *incognitokey.KeySet) error

func (*MessageGetAddr) VerifyMsgSanity

func (msg *MessageGetAddr) VerifyMsgSanity() error

type MessageGetBlockBeacon

type MessageGetBlockBeacon struct {
	FromPool         bool
	ByHash           bool
	BySpecificHeight bool
	BlkHashes        []common.Hash
	BlkHeights       []uint64
	SenderID         string
	Timestamp        int64
}

func (*MessageGetBlockBeacon) Hash

func (msg *MessageGetBlockBeacon) Hash() string

func (*MessageGetBlockBeacon) JsonDeserialize

func (msg *MessageGetBlockBeacon) JsonDeserialize(jsonStr string) error

func (*MessageGetBlockBeacon) JsonSerialize

func (msg *MessageGetBlockBeacon) JsonSerialize() ([]byte, error)

func (*MessageGetBlockBeacon) MaxPayloadLength

func (msg *MessageGetBlockBeacon) MaxPayloadLength(pver int) int

func (*MessageGetBlockBeacon) MessageType

func (msg *MessageGetBlockBeacon) MessageType() string

func (*MessageGetBlockBeacon) SetSenderID

func (msg *MessageGetBlockBeacon) SetSenderID(senderID peer.ID) error

func (*MessageGetBlockBeacon) SignMsg

func (*MessageGetBlockBeacon) VerifyMsgSanity

func (msg *MessageGetBlockBeacon) VerifyMsgSanity() error

type MessageGetBlockShard

type MessageGetBlockShard struct {
	FromPool         bool
	ByHash           bool
	BySpecificHeight bool
	BlkHashes        []common.Hash
	BlkHeights       []uint64
	ShardID          byte
	SenderID         string
	Timestamp        int64
}

func (*MessageGetBlockShard) Hash

func (msg *MessageGetBlockShard) Hash() string

func (*MessageGetBlockShard) JsonDeserialize

func (msg *MessageGetBlockShard) JsonDeserialize(jsonStr string) error

func (*MessageGetBlockShard) JsonSerialize

func (msg *MessageGetBlockShard) JsonSerialize() ([]byte, error)

func (*MessageGetBlockShard) MaxPayloadLength

func (msg *MessageGetBlockShard) MaxPayloadLength(pver int) int

func (*MessageGetBlockShard) MessageType

func (msg *MessageGetBlockShard) MessageType() string

func (*MessageGetBlockShard) SetSenderID

func (msg *MessageGetBlockShard) SetSenderID(senderID peer.ID) error

func (*MessageGetBlockShard) SignMsg

func (msg *MessageGetBlockShard) SignMsg(_ *incognitokey.KeySet) error

func (*MessageGetBlockShard) VerifyMsgSanity

func (msg *MessageGetBlockShard) VerifyMsgSanity() error

type MessageGetCrossShard

type MessageGetCrossShard struct {
	FromPool         bool
	ByHash           bool
	BySpecificHeight bool
	BlkHashes        []common.Hash
	BlkHeights       []uint64
	FromShardID      byte
	ToShardID        byte
	SenderID         string
	Timestamp        int64
}

func (*MessageGetCrossShard) Hash

func (msg *MessageGetCrossShard) Hash() string

func (*MessageGetCrossShard) JsonDeserialize

func (msg *MessageGetCrossShard) JsonDeserialize(jsonStr string) error

func (*MessageGetCrossShard) JsonSerialize

func (msg *MessageGetCrossShard) JsonSerialize() ([]byte, error)

func (*MessageGetCrossShard) MaxPayloadLength

func (msg *MessageGetCrossShard) MaxPayloadLength(pver int) int

func (*MessageGetCrossShard) MessageType

func (msg *MessageGetCrossShard) MessageType() string

func (*MessageGetCrossShard) SetSenderID

func (msg *MessageGetCrossShard) SetSenderID(senderID peer.ID) error

func (*MessageGetCrossShard) SignMsg

func (msg *MessageGetCrossShard) SignMsg(_ *incognitokey.KeySet) error

func (*MessageGetCrossShard) VerifyMsgSanity

func (msg *MessageGetCrossShard) VerifyMsgSanity() error

type MessageMsgCheck

type MessageMsgCheck struct {
	HashStr   string
	Timestamp int64
}

func (*MessageMsgCheck) Hash

func (msg *MessageMsgCheck) Hash() string

func (*MessageMsgCheck) JsonDeserialize

func (msg *MessageMsgCheck) JsonDeserialize(jsonStr string) error

func (*MessageMsgCheck) JsonSerialize

func (msg *MessageMsgCheck) JsonSerialize() ([]byte, error)

func (*MessageMsgCheck) MaxPayloadLength

func (msg *MessageMsgCheck) MaxPayloadLength(pver int) int

func (*MessageMsgCheck) MessageType

func (msg *MessageMsgCheck) MessageType() string

func (*MessageMsgCheck) SetSenderID

func (msg *MessageMsgCheck) SetSenderID(senderID peer.ID) error

func (*MessageMsgCheck) SignMsg

func (msg *MessageMsgCheck) SignMsg(_ *incognitokey.KeySet) error

func (*MessageMsgCheck) VerifyMsgSanity

func (msg *MessageMsgCheck) VerifyMsgSanity() error

type MessageMsgCheckResp

type MessageMsgCheckResp struct {
	HashStr   string
	Accept    bool
	Timestamp int64
}

func (*MessageMsgCheckResp) Hash

func (msg *MessageMsgCheckResp) Hash() string

func (*MessageMsgCheckResp) JsonDeserialize

func (msg *MessageMsgCheckResp) JsonDeserialize(jsonStr string) error

func (*MessageMsgCheckResp) JsonSerialize

func (msg *MessageMsgCheckResp) JsonSerialize() ([]byte, error)

func (*MessageMsgCheckResp) MaxPayloadLength

func (msg *MessageMsgCheckResp) MaxPayloadLength(pver int) int

func (*MessageMsgCheckResp) MessageType

func (msg *MessageMsgCheckResp) MessageType() string

func (*MessageMsgCheckResp) SetSenderID

func (msg *MessageMsgCheckResp) SetSenderID(senderID peer.ID) error

func (*MessageMsgCheckResp) SignMsg

func (msg *MessageMsgCheckResp) SignMsg(_ *incognitokey.KeySet) error

func (*MessageMsgCheckResp) VerifyMsgSanity

func (msg *MessageMsgCheckResp) VerifyMsgSanity() error

type MessagePeerState

type MessagePeerState struct {
	Beacon                ChainState
	Shards                map[byte]ChainState
	CrossShardPool        map[byte]map[byte][]uint64
	Timestamp             int64
	SenderID              string
	SenderMiningPublicKey string
}

func (*MessagePeerState) Hash

func (msg *MessagePeerState) Hash() string

func (*MessagePeerState) JsonDeserialize

func (msg *MessagePeerState) JsonDeserialize(jsonStr string) error

func (*MessagePeerState) JsonSerialize

func (msg *MessagePeerState) JsonSerialize() ([]byte, error)

func (*MessagePeerState) MaxPayloadLength

func (msg *MessagePeerState) MaxPayloadLength(pver int) int

func (*MessagePeerState) MessageType

func (msg *MessagePeerState) MessageType() string

func (*MessagePeerState) SetSenderID

func (msg *MessagePeerState) SetSenderID(senderID peer.ID) error

func (*MessagePeerState) SignMsg

func (msg *MessagePeerState) SignMsg(_ *incognitokey.KeySet) error

func (*MessagePeerState) VerifyMsgSanity

func (msg *MessagePeerState) VerifyMsgSanity() error

type MessagePing

type MessagePing struct {
	Timestamp time.Time
}

func (*MessagePing) Hash

func (msg *MessagePing) Hash() string

func (*MessagePing) JsonDeserialize

func (msg *MessagePing) JsonDeserialize(jsonStr string) error

func (*MessagePing) JsonSerialize

func (msg *MessagePing) JsonSerialize() ([]byte, error)

func (*MessagePing) MaxPayloadLength

func (msg *MessagePing) MaxPayloadLength(pver int) int

func (MessagePing) MessageType

func (msg MessagePing) MessageType() string

func (*MessagePing) SetSenderID

func (msg *MessagePing) SetSenderID(senderID peer.ID) error

func (*MessagePing) SignMsg

func (msg *MessagePing) SignMsg(_ *incognitokey.KeySet) error

func (*MessagePing) VerifyMsgSanity

func (msg *MessagePing) VerifyMsgSanity() error

type MessageTx

type MessageTx struct {
	Transaction metadata.Transaction
}

func (*MessageTx) Hash

func (msg *MessageTx) Hash() string

func (*MessageTx) JsonDeserialize

func (msg *MessageTx) JsonDeserialize(jsonStr string) error

func (*MessageTx) JsonSerialize

func (msg *MessageTx) JsonSerialize() ([]byte, error)

func (*MessageTx) MaxPayloadLength

func (msg *MessageTx) MaxPayloadLength(pver int) int

func (*MessageTx) MessageType

func (msg *MessageTx) MessageType() string

func (*MessageTx) SetSenderID

func (msg *MessageTx) SetSenderID(senderID peer.ID) error

func (*MessageTx) SignMsg

func (msg *MessageTx) SignMsg(_ *incognitokey.KeySet) error

func (*MessageTx) UnmarshalJSON

func (msg *MessageTx) UnmarshalJSON(data []byte) error

func (*MessageTx) VerifyMsgSanity

func (msg *MessageTx) VerifyMsgSanity() error

type MessageTxPrivacyToken

type MessageTxPrivacyToken struct {
	Transaction metadata.Transaction
}

func (*MessageTxPrivacyToken) Hash

func (msg *MessageTxPrivacyToken) Hash() string

func (*MessageTxPrivacyToken) JsonDeserialize

func (msg *MessageTxPrivacyToken) JsonDeserialize(jsonStr string) error

func (*MessageTxPrivacyToken) JsonSerialize

func (msg *MessageTxPrivacyToken) JsonSerialize() ([]byte, error)

func (*MessageTxPrivacyToken) MaxPayloadLength

func (msg *MessageTxPrivacyToken) MaxPayloadLength(pver int) int

func (*MessageTxPrivacyToken) MessageType

func (msg *MessageTxPrivacyToken) MessageType() string

func (*MessageTxPrivacyToken) SetSenderID

func (msg *MessageTxPrivacyToken) SetSenderID(senderID peer.ID) error

func (*MessageTxPrivacyToken) SignMsg

func (*MessageTxPrivacyToken) UnmarshalJSON

func (msg *MessageTxPrivacyToken) UnmarshalJSON(data []byte) error

func (*MessageTxPrivacyToken) VerifyMsgSanity

func (msg *MessageTxPrivacyToken) VerifyMsgSanity() error

type MessageVerAck

type MessageVerAck struct {
	Valid     bool
	Timestamp time.Time
}

func (*MessageVerAck) Hash

func (msg *MessageVerAck) Hash() string

func (*MessageVerAck) JsonDeserialize

func (msg *MessageVerAck) JsonDeserialize(jsonStr string) error

func (*MessageVerAck) JsonSerialize

func (msg *MessageVerAck) JsonSerialize() ([]byte, error)

func (*MessageVerAck) MaxPayloadLength

func (msg *MessageVerAck) MaxPayloadLength(pver int) int

func (*MessageVerAck) MessageType

func (msg *MessageVerAck) MessageType() string

func (*MessageVerAck) SetSenderID

func (msg *MessageVerAck) SetSenderID(senderID peer.ID) error

func (*MessageVerAck) SignMsg

func (msg *MessageVerAck) SignMsg(_ *incognitokey.KeySet) error

func (*MessageVerAck) VerifyMsgSanity

func (msg *MessageVerAck) VerifyMsgSanity() error

type MessageVersion

type MessageVersion struct {
	ProtocolVersion  string
	Timestamp        int64
	RemoteAddress    common.SimpleAddr
	RawRemoteAddress string
	RemotePeerId     peer.ID
	LocalAddress     common.SimpleAddr
	RawLocalAddress  string
	LocalPeerId      peer.ID
	PublicKey        string
	PublicKeyType    string
	SignDataB58      string
}

func (*MessageVersion) Hash

func (msg *MessageVersion) Hash() string

func (*MessageVersion) JsonDeserialize

func (msg *MessageVersion) JsonDeserialize(jsonStr string) error

func (*MessageVersion) JsonSerialize

func (msg *MessageVersion) JsonSerialize() ([]byte, error)

func (*MessageVersion) MaxPayloadLength

func (msg *MessageVersion) MaxPayloadLength(pver int) int

func (*MessageVersion) MessageType

func (msg *MessageVersion) MessageType() string

func (*MessageVersion) SetSenderID

func (msg *MessageVersion) SetSenderID(senderID peer.ID) error

func (*MessageVersion) SignMsg

func (msg *MessageVersion) SignMsg(_ *incognitokey.KeySet) error

func (*MessageVersion) VerifyMsgSanity

func (msg *MessageVersion) VerifyMsgSanity() error

type RawPeer

type RawPeer struct {
	RawAddress    string
	PublicKeyType string
	PublicKey     string
}

Jump to

Keyboard shortcuts

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