message

package
v0.0.0-...-bcf92e7 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2018 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HTTPINFOFLAG = 0
)
View Source
const (
	NODEADDRSIZE = 30
)

Variables

This section is empty.

Functions

func GetHeadersFromHash

func GetHeadersFromHash(startHash common.Uint256, stopHash common.Uint256) ([]ledger.Header, uint32, error)

func HandleNodeMsg

func HandleNodeMsg(node Noder, buf []byte, len int) error

FIXME the length exceed int32 case?

func LocateMsgHdr

func LocateMsgHdr(buf []byte) []byte

func MsgType

func MsgType(buf []byte) (string, error)

func NewAddrs

func NewAddrs(nodeaddrs []NodeAddr, count uint64) ([]byte, error)

func NewBlock

func NewBlock(bk *ledger.Block) ([]byte, error)

func NewBlockFromHash

func NewBlockFromHash(hash common.Uint256) (*ledger.Block, error)

func NewBlocksReq

func NewBlocksReq(blocator []Uint256, hash Uint256) ([]byte, error)

func NewConsensus

func NewConsensus(cp *ConsensusPayload) ([]byte, error)

func NewHeaders

func NewHeaders(headers []ledger.Header, count uint32) ([]byte, error)

func NewHeadersReq

func NewHeadersReq(startHash common.Uint256, stopHash common.Uint256) ([]byte, error)

func NewInv

func NewInv(inv *InvPayload) ([]byte, error)

func NewMsg

func NewMsg(t string, n Noder) ([]byte, error)

TODO combine all of message alloc in one function via interface

func NewNotFound

func NewNotFound(hash common.Uint256) ([]byte, error)

func NewPingMsg

func NewPingMsg() ([]byte, error)

func NewPongMsg

func NewPongMsg() ([]byte, error)

func NewTxn

func NewTxn(txn *transaction.Transaction) ([]byte, error)

func NewTxnFromHash

func NewTxnFromHash(hash common.Uint256) (*transaction.Transaction, error)

func NewVerack

func NewVerack() ([]byte, error)

func NewVersion

func NewVersion(n Noder) ([]byte, error)

func PayloadLen

func PayloadLen(buf []byte) int

func ReqBlkData

func ReqBlkData(node Noder, hash common.Uint256) error

func ReqBlkHdrFromOthers

func ReqBlkHdrFromOthers(node Noder)

func ReqBlksHdrFromOthers

func ReqBlksHdrFromOthers(node Noder)

func ReqTxnPool

func ReqTxnPool(node Noder) error

func SendMsgSyncBlockHeaders

func SendMsgSyncBlockHeaders(node Noder, blocator []Uint256, hash Uint256)

func SendMsgSyncHeaders

func SendMsgSyncHeaders(node Noder, startHash common.Uint256)

func ValidMsgHdr

func ValidMsgHdr(buf []byte) bool

Types

type ConsensusPayload

type ConsensusPayload struct {
	Version         uint32
	PrevHash        common.Uint256
	Height          uint32
	BookKeeperIndex uint16
	Timestamp       uint32
	Data            []byte
	Owner           *crypto.PubKey
	Program         *program.Program
	// contains filtered or unexported fields
}

func (*ConsensusPayload) Deserialize

func (cp *ConsensusPayload) Deserialize(r io.Reader) error

func (*ConsensusPayload) DeserializeUnsigned

func (cp *ConsensusPayload) DeserializeUnsigned(r io.Reader) error

func (*ConsensusPayload) GetMessage

func (cp *ConsensusPayload) GetMessage() []byte

func (*ConsensusPayload) GetProgramHashes

func (cp *ConsensusPayload) GetProgramHashes() ([]common.Uint160, error)

func (*ConsensusPayload) GetPrograms

func (cp *ConsensusPayload) GetPrograms() []*program.Program

func (*ConsensusPayload) Hash

func (cp *ConsensusPayload) Hash() common.Uint256

func (*ConsensusPayload) InvertoryType

func (cp *ConsensusPayload) InvertoryType() common.InventoryType

func (*ConsensusPayload) Serialize

func (cp *ConsensusPayload) Serialize(w io.Writer) error

func (*ConsensusPayload) SerializeUnsigned

func (cp *ConsensusPayload) SerializeUnsigned(w io.Writer) error

func (*ConsensusPayload) SetPrograms

func (cp *ConsensusPayload) SetPrograms(programs []*program.Program)

func (*ConsensusPayload) Type

func (*ConsensusPayload) Verify

func (cp *ConsensusPayload) Verify() error

type Inv

type Inv struct {
	Hdr msgHdr
	P   InvPayload
}

func (*Inv) Deserialization

func (msg *Inv) Deserialization(p []byte) error

func (Inv) Handle

func (msg Inv) Handle(node Noder) error

func (Inv) Serialization

func (msg Inv) Serialization() ([]byte, error)

func (Inv) Verify

func (msg Inv) Verify(buf []byte) error

type InvPayload

type InvPayload struct {
	InvType InventoryType
	Cnt     uint32
	Blk     []byte
}

func GetInvFromBlockHash

func GetInvFromBlockHash(startHash Uint256, stopHash Uint256) (*InvPayload, error)

func NewInvPayload

func NewInvPayload(invType InventoryType, count uint32, msg []byte) *InvPayload

func (*InvPayload) Serialization

func (msg *InvPayload) Serialization(w io.Writer)

type Messager

type Messager interface {
	Verify([]byte) error
	Serialization() ([]byte, error)
	Deserialization([]byte) error
	Handle(Noder) error
}

func AllocMsg

func AllocMsg(t string, length int) Messager

Alloc different message stucture @t the message name or type @len the message length only valid for varible length structure

Return: @messager the messager interface @error error code FixMe fix the ugly multiple return.

Jump to

Keyboard shortcuts

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