wire

package
v0.2.7 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MsgIdentifierRequestHandshake = "REQUEST_HANDSHAKE"
	MsgIdentifierReplyHandshake   = "REPLY_HANDSHAKE"

	MsgIdentifierRequestMainchainLength = "REQUEST_MAINCHAINLENGTH"
	MsgIdentifierReplyMainchainLength   = "REPLY_MAINCHAINLENGTH"

	MsgIdentifierRequestMainheaders = "REQUEST_MAINHEADERS"
	MsgIdentifierReplyMainheaders   = "REPLY_MAINHEADERS"

	MsgIdentifierRequestMainblockTransactions = "REQUEST_MAINBLOCKTRANSACTIONS"
	MsgIdentifierReplyMainblockTransactions   = "REPLY_MAINBLOCKTRANSACTIONS"

	MsgIdentifierBroadcastMainblock   = "BROADCAST_MAINBLOCK"
	MsgIdentifierBroadcastTransaction = "BROADCAST_TRANSACTION"

	MsgIdentifierRequestData = "REQUEST_DATA"
	MsgIdentifierReplyData   = "REPLY_DATA"

	MsgIdentifierRequestDataFile = "REQUEST_DATAFILE"
	MsgIdentifierReplyDataFile   = "REPLY_DATAFILE"

	MainNetworkIdentifier = "9184"
)
View Source
const MsgIdentifierLength = 20
View Source
const (
	RequestMainheadersMax = uint32(100)
)

Variables

This section is empty.

Functions

func DecodeBroadcastMainblock

func DecodeBroadcastMainblock(msg *Message) (bool, uint32, uint32, *mainchain.Mainblock)

func DecodeBroadcastTransaction

func DecodeBroadcastTransaction(msg *Message) (bool, uint32, uint32, *utility.Transaction)

func DecodeIdentifier

func DecodeIdentifier(msgidentifier []byte) string

func DecodeReplyData

func DecodeReplyData(msg *Message) (bool, []byte)

func DecodeReplyDataFile

func DecodeReplyDataFile(msg *Message) (bool, []byte)

func DecodeRequestData

func DecodeRequestData(msg *Message) (bool, *utility.Hash)

func DecodeRequestDataFile

func DecodeRequestDataFile(msg *Message) (bool, *utility.Hash)

func DecodeRequestMainblockTransactions

func DecodeRequestMainblockTransactions(msg *Message) (bool, uint32)

func DecodeRequestMainheaders

func DecodeRequestMainheaders(msg *Message) (bool, uint32, uint32)

func GetContentMaxSize

func GetContentMaxSize(msgidentifier []byte) int

func RawCheckIdentifier

func RawCheckIdentifier(buffer []byte, identifier string) bool

func ReadIdentifier

func ReadIdentifier(connection net.Conn) ([]byte, error)

Types

type Message

type Message struct {
	Identifier []byte
	Content    []byte
	//Connection * net.Conn
	OriginPeer *Peer
}

func EncodeBroadcastMainblock

func EncodeBroadcastMainblock(NbHops uint32, mb *mainchain.Mainblock) *Message

func EncodeBroadcastTransaction

func EncodeBroadcastTransaction(NbHops uint32, tx *utility.Transaction) *Message

func EncodeReplyData

func EncodeReplyData(databytes []byte) *Message

func EncodeReplyDataFile

func EncodeReplyDataFile(databytes []byte) *Message

func EncodeRequestData

func EncodeRequestData(hash utility.Hash) *Message

func EncodeRequestDataFile

func EncodeRequestDataFile(hash utility.Hash) *Message

func EncodeRequestMainblockTransactions

func EncodeRequestMainblockTransactions(blockheight uint32) *Message

func EncodeRequestMainheaders

func EncodeRequestMainheaders(first uint32, last uint32) *Message

func NewMessage

func NewMessage(identifier string) *Message

//////////////////////////////

func ReadConnectionMessage

func ReadConnectionMessage(connection net.Conn) (*Message, error)

func (*Message) CheckIdentifier

func (msg *Message) CheckIdentifier(identifier string) bool

func (*Message) GetContent

func (msg *Message) GetContent() []byte

func (*Message) GetIdentifier

func (msg *Message) GetIdentifier() []byte

func (*Message) PutContent

func (msg *Message) PutContent(buf []byte)

func (*Message) PutIdentifier

func (msg *Message) PutIdentifier(identifier string)

func (*Message) ReadContent

func (msg *Message) ReadContent(connection net.Conn, maxsize int) error

func (*Message) WriteBytes

func (msg *Message) WriteBytes(connection net.Conn)

type Peer

type Peer struct {
	//
	Address                string
	Connection             net.Conn
	SyncingMainchainlength uint32
	GoodIPArray            []string
	BadIPArray             []string
}

func NewPeer

func NewPeer(peeraddress string, conn net.Conn) *Peer

func (*Peer) ReadMessage

func (p *Peer) ReadMessage() (*Message, error)

func (*Peer) ReadTCPMessage

func (peer *Peer) ReadTCPMessage() (*Message, error)

func (*Peer) WriteMessage

func (p *Peer) WriteMessage(msg *Message)

func (*Peer) WriteTCPMessage

func (p *Peer) WriteTCPMessage(msg *Message)

type Swarm

type Swarm struct {
	Syncingdone  bool
	Syncingstate string
	MDNSEnabled  bool
	NewpeersChan chan *Peer
	IpaddrChan   chan string
	PeersmsgChan chan *Message
	Listener     net.Listener
	Peers        map[string]Peer
	AddrState    map[string]string
	// contains filtered or unexported fields
}

func NewSwarm

func NewSwarm() *Swarm

func (*Swarm) AddPeer

func (sw *Swarm) AddPeer(newpeer *Peer)

func (*Swarm) Bootstrap

func (sw *Swarm) Bootstrap()

func (*Swarm) BroadcastMainblock

func (sw *Swarm) BroadcastMainblock(mb *mainchain.Mainblock)

func (*Swarm) BroadcastTransaction

func (sw *Swarm) BroadcastTransaction(tx *utility.Transaction)

func (*Swarm) CheckPeerAlreadyExist

func (sw *Swarm) CheckPeerAlreadyExist(peeraddr string) bool

func (*Swarm) GetListeningPort

func (sw *Swarm) GetListeningPort() int

func (*Swarm) GetLocalIP

func (sw *Swarm) GetLocalIP() string

func (*Swarm) GetLongestMainchainPeerAddress

func (sw *Swarm) GetLongestMainchainPeerAddress(currentmainchainlength uint32) string

func (*Swarm) GetPeersMainchainLength

func (sw *Swarm) GetPeersMainchainLength()

func (*Swarm) HandlePeerMessage

func (sw *Swarm) HandlePeerMessage(mn *mainchain.Maincore, rmsg *Message) bool

func (*Swarm) HintNewPeer

func (sw *Swarm) HintNewPeer(addrstring string)

func (*Swarm) InitiateSyncing

func (sw *Swarm) InitiateSyncing(mn *mainchain.Maincore, lmpeeraddress string) error

func (*Swarm) ListenConnections

func (sw *Swarm) ListenConnections()

func (*Swarm) ListenPeerMessages

func (sw *Swarm) ListenPeerMessages(peer *Peer)

func (*Swarm) NbPeers

func (sw *Swarm) NbPeers() int
func (sw *Swarm) Range() {
    for k, v := range sw.Peers {
        //fmt.Println("k:", k, "v  Add:", v.Address)
    }

}

func (*Swarm) RelayMessage

func (sw *Swarm) RelayMessage(msg *Message, originpeer *Peer)

func (*Swarm) RemovePeer

func (sw *Swarm) RemovePeer(peer *Peer)

func (*Swarm) RemovePeerByAddress

func (sw *Swarm) RemovePeerByAddress(addr string)

func (*Swarm) ReplyMessage

func (sw *Swarm) ReplyMessage(msg *Message, originpeer *Peer)

func (*Swarm) RequestData

func (sw *Swarm) RequestData(hash utility.Hash)

func (*Swarm) RequestDataFile

func (sw *Swarm) RequestDataFile(hash utility.Hash)

func (*Swarm) SetupListener

func (sw *Swarm) SetupListener() (err error)

func (*Swarm) StartMDNSClient

func (sw *Swarm) StartMDNSClient()

func (*Swarm) StartMDNSServer

func (sw *Swarm) StartMDNSServer()

Jump to

Keyboard shortcuts

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