Versions in this module Expand all Collapse all v1 v1.0.0 Mar 15, 2017 Changes in this version + const CmdAddr + const CmdGetData + const CmdInv + const CmdObject + const CmdPong + const CmdVerAck + const CmdVersion + const CommandSize + const DefaultUserAgent + const MaxAddrPerMsg + const MaxInvPerMsg + const MaxMessagePayload + const MaxPayloadOfMsgObject + const MaxPubKeyStringSize + const MaxStreams + const MaxUserAgentLen + const MessageHeaderSize + const ProtocolVersion + const PubKeySize + var ErrInvalidNetAddr = errors.New("provided net.Addr is not a net.TCPAddr") + var ErrPubKeyStrSize = fmt.Errorf("string length must be %v chars", MaxPubKeyStringSize) + func Encode(msg Encodable) []byte + func RandomUint64() (uint64, error) + func ReadElement(r io.Reader, element interface{}) error + func ReadElements(r io.Reader, elements ...interface{}) error + func WriteElement(w io.Writer, element interface{}) error + func WriteElements(w io.Writer, elements ...interface{}) error + func WriteMessage(w io.Writer, msg Message, bmnet BitmessageNet) error + func WriteMessageN(w io.Writer, msg Message, bmnet BitmessageNet) (int, error) + type BitmessageNet uint32 + const MainNet + func (n BitmessageNet) String() string + type Encodable interface + Decode func(io.Reader) error + Encode func(io.Writer) error + type InvVect hash.Sha + type Message interface + Command func() string + MaxPayloadLength func() int + func ReadMessage(r io.Reader, bmnet BitmessageNet) (Message, []byte, error) + func ReadMessageN(r io.Reader, bmnet BitmessageNet) (int, Message, []byte, error) + type MessageError struct + Description string + Func string + func NewMessageError(f string, desc string) *MessageError + func (e *MessageError) Error() string + type MsgAddr struct + AddrList []*NetAddress + func NewMsgAddr() *MsgAddr + func (msg *MsgAddr) AddAddress(na *NetAddress) error + func (msg *MsgAddr) AddAddresses(netAddrs ...*NetAddress) error + func (msg *MsgAddr) ClearAddresses() + func (msg *MsgAddr) Command() string + func (msg *MsgAddr) Decode(r io.Reader) error + func (msg *MsgAddr) Encode(w io.Writer) error + func (msg *MsgAddr) MaxPayloadLength() int + type MsgGetData struct + InvList []*InvVect + func NewMsgGetData() *MsgGetData + func NewMsgGetDataSizeHint(sizeHint uint) *MsgGetData + func (msg *MsgGetData) AddInvVect(iv *InvVect) error + func (msg *MsgGetData) Command() string + func (msg *MsgGetData) Decode(r io.Reader) error + func (msg *MsgGetData) Encode(w io.Writer) error + func (msg *MsgGetData) MaxPayloadLength() int + type MsgInv struct + InvList []*InvVect + func NewMsgInv() *MsgInv + func NewMsgInvSizeHint(sizeHint uint) *MsgInv + func (msg *MsgInv) AddInvVect(iv *InvVect) error + func (msg *MsgInv) Command() string + func (msg *MsgInv) Decode(r io.Reader) error + func (msg *MsgInv) Encode(w io.Writer) error + func (msg *MsgInv) MaxPayloadLength() int + type MsgObject struct + func DecodeMsgObject(obj []byte) (*MsgObject, error) + func NewMsgObject(header *ObjectHeader, payload []byte) *MsgObject + func (msg *MsgObject) CheckPow(data pow.Data, refTime time.Time) bool + func (msg *MsgObject) Command() string + func (msg *MsgObject) Copy() *MsgObject + func (msg *MsgObject) Decode(r io.Reader) error + func (msg *MsgObject) Encode(w io.Writer) error + func (msg *MsgObject) Header() *ObjectHeader + func (msg *MsgObject) MaxPayloadLength() int + func (msg *MsgObject) Payload() []byte + func (msg *MsgObject) String() string + type MsgPong struct + func NewMsgPong() *MsgPong + func (msg *MsgPong) Command() string + func (msg *MsgPong) Decode(r io.Reader) error + func (msg *MsgPong) Encode(w io.Writer) error + func (msg *MsgPong) MaxPayloadLength() int + type MsgVerAck struct + func NewMsgVerAck() *MsgVerAck + func (msg *MsgVerAck) Command() string + func (msg *MsgVerAck) Decode(r io.Reader) error + func (msg *MsgVerAck) Encode(w io.Writer) error + func (msg *MsgVerAck) MaxPayloadLength() int + type MsgVersion struct + AddrMe *NetAddress + AddrYou *NetAddress + Nonce uint64 + ProtocolVersion int32 + Services ServiceFlag + StreamNumbers []uint32 + Timestamp time.Time + UserAgent string + func NewMsgVersion(me *NetAddress, you *NetAddress, nonce uint64, streams []uint32) *MsgVersion + func NewMsgVersionFromConn(conn net.Conn, nonce uint64, currentStream uint32, allStreams []uint32) (*MsgVersion, error) + func (msg *MsgVersion) AddService(service ServiceFlag) + func (msg *MsgVersion) AddUserAgent(name string, version string, comments ...string) error + func (msg *MsgVersion) Command() string + func (msg *MsgVersion) Decode(r io.Reader) error + func (msg *MsgVersion) Encode(w io.Writer) error + func (msg *MsgVersion) HasService(service ServiceFlag) bool + func (msg *MsgVersion) MaxPayloadLength() int + type NetAddress struct + IP net.IP + Port uint16 + Services ServiceFlag + Stream uint32 + Timestamp time.Time + func NewNetAddress(addr net.Addr, stream uint32, services ServiceFlag) (*NetAddress, error) + func NewNetAddressIPPort(ip net.IP, port uint16, stream uint32, services ServiceFlag) *NetAddress + func (na *NetAddress) AddService(service ServiceFlag) + func (na *NetAddress) HasService(service ServiceFlag) bool + func (na *NetAddress) SetAddress(ip net.IP, port uint16) + type ObjectHeader struct + Nonce pow.Nonce + ObjectType ObjectType + StreamNumber uint64 + Version uint64 + func DecodeObjectHeader(r io.Reader) (*ObjectHeader, error) + func NewObjectHeader(Nonce pow.Nonce, Expiration time.Time, ObjectType ObjectType, Version uint64, ...) *ObjectHeader + func (h *ObjectHeader) Encode(w io.Writer) error + func (h *ObjectHeader) EncodeForSigning(w io.Writer) error + func (h *ObjectHeader) Expiration() time.Time + func (h *ObjectHeader) String() string + type ObjectType uint32 + const HighestKnownObjectType + const ObjectTypeBroadcast + const ObjectTypeGetPubKey + const ObjectTypeMsg + const ObjectTypePubKey + func (t ObjectType) String() string + type PubKey [PubKeySize]byte + func NewPubKey(newHash []byte) (*PubKey, error) + func NewPubKeyFromStr(pubkey string) (*PubKey, error) + func (pubkey *PubKey) Bytes() []byte + func (pubkey *PubKey) IsEqual(target *PubKey) bool + func (pubkey *PubKey) ToBtcec() (key *btcec.PublicKey, err error) + func (pubkey PubKey) String() string + type ServiceFlag uint64 + const SFNodeNetwork + func (f ServiceFlag) String() string