Documentation
¶
Index ¶
- Constants
- func DecodeBroadcastMainblock(msg *Message) (bool, uint32, uint32, *mainchain.Mainblock)
- func DecodeBroadcastTransaction(msg *Message) (bool, uint32, uint32, *utility.Transaction)
- func DecodeIdentifier(msgidentifier []byte) string
- func DecodeReplyData(msg *Message) (bool, []byte)
- func DecodeReplyDataFile(msg *Message) (bool, []byte)
- func DecodeRequestData(msg *Message) (bool, *utility.Hash)
- func DecodeRequestDataFile(msg *Message) (bool, *utility.Hash)
- func DecodeRequestMainblockTransactions(msg *Message) (bool, uint32)
- func DecodeRequestMainheaders(msg *Message) (bool, uint32, uint32)
- func GetContentMaxSize(msgidentifier []byte) int
- func RawCheckIdentifier(buffer []byte, identifier string) bool
- func ReadIdentifier(connection net.Conn) ([]byte, error)
- type Message
- func EncodeBroadcastMainblock(NbHops uint32, mb *mainchain.Mainblock) *Message
- func EncodeBroadcastTransaction(NbHops uint32, tx *utility.Transaction) *Message
- func EncodeReplyData(databytes []byte) *Message
- func EncodeReplyDataFile(databytes []byte) *Message
- func EncodeRequestData(hash utility.Hash) *Message
- func EncodeRequestDataFile(hash utility.Hash) *Message
- func EncodeRequestMainblockTransactions(blockheight uint32) *Message
- func EncodeRequestMainheaders(first uint32, last uint32) *Message
- func NewMessage(identifier string) *Message
- func ReadConnectionMessage(connection net.Conn) (*Message, error)
- func (msg *Message) CheckIdentifier(identifier string) bool
- func (msg *Message) GetContent() []byte
- func (msg *Message) GetIdentifier() []byte
- func (msg *Message) PutContent(buf []byte)
- func (msg *Message) PutIdentifier(identifier string)
- func (msg *Message) ReadContent(connection net.Conn, maxsize int) error
- func (msg *Message) WriteBytes(connection net.Conn)
- type Peer
- type Swarm
- func (sw *Swarm) AddPeer(newpeer *Peer)
- func (sw *Swarm) Bootstrap()
- func (sw *Swarm) BroadcastMainblock(mb *mainchain.Mainblock)
- func (sw *Swarm) BroadcastTransaction(tx *utility.Transaction)
- func (sw *Swarm) CheckPeerAlreadyExist(peeraddr string) bool
- func (sw *Swarm) GetListeningPort() int
- func (sw *Swarm) GetLocalIP() string
- func (sw *Swarm) GetLongestMainchainPeerAddress(currentmainchainlength uint32) string
- func (sw *Swarm) GetPeersMainchainLength()
- func (sw *Swarm) HandlePeerMessage(mn *mainchain.Maincore, rmsg *Message) bool
- func (sw *Swarm) HintNewPeer(addrstring string)
- func (sw *Swarm) InitiateSyncing(mn *mainchain.Maincore, lmpeeraddress string) error
- func (sw *Swarm) ListenConnections()
- func (sw *Swarm) ListenPeerMessages(peer *Peer)
- func (sw *Swarm) NbPeers() int
- func (sw *Swarm) RelayMessage(msg *Message, originpeer *Peer)
- func (sw *Swarm) RemovePeer(peer *Peer)
- func (sw *Swarm) RemovePeerByAddress(addr string)
- func (sw *Swarm) ReplyMessage(msg *Message, originpeer *Peer)
- func (sw *Swarm) RequestData(hash utility.Hash)
- func (sw *Swarm) RequestDataFile(hash utility.Hash)
- func (sw *Swarm) SetupListener() (err error)
- func (sw *Swarm) StartMDNSClient()
- func (sw *Swarm) StartMDNSServer()
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 DecodeIdentifier ¶
func DecodeReplyData ¶
func DecodeReplyDataFile ¶
func GetContentMaxSize ¶
func RawCheckIdentifier ¶
Types ¶
type Message ¶
func EncodeBroadcastTransaction ¶
func EncodeBroadcastTransaction(NbHops uint32, tx *utility.Transaction) *Message
func EncodeReplyData ¶
func EncodeReplyDataFile ¶
func EncodeRequestData ¶
func EncodeRequestDataFile ¶
func (*Message) CheckIdentifier ¶
func (*Message) GetContent ¶
func (*Message) GetIdentifier ¶
func (*Message) PutContent ¶
func (*Message) PutIdentifier ¶
func (*Message) ReadContent ¶
func (*Message) WriteBytes ¶
type Peer ¶
type Peer struct { // Address string Connection net.Conn SyncingMainchainlength uint32 GoodIPArray []string BadIPArray []string }
func (*Peer) ReadMessage ¶
func (*Peer) ReadTCPMessage ¶
func (*Peer) WriteMessage ¶
func (*Peer) WriteTCPMessage ¶
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 (*Swarm) BroadcastMainblock ¶
func (*Swarm) BroadcastTransaction ¶
func (sw *Swarm) BroadcastTransaction(tx *utility.Transaction)
func (*Swarm) CheckPeerAlreadyExist ¶
func (*Swarm) GetListeningPort ¶
func (*Swarm) GetLocalIP ¶
func (*Swarm) GetLongestMainchainPeerAddress ¶
func (*Swarm) GetPeersMainchainLength ¶
func (sw *Swarm) GetPeersMainchainLength()
func (*Swarm) HandlePeerMessage ¶
func (*Swarm) HintNewPeer ¶
func (*Swarm) InitiateSyncing ¶
func (*Swarm) ListenConnections ¶
func (sw *Swarm) ListenConnections()
func (*Swarm) ListenPeerMessages ¶
func (*Swarm) NbPeers ¶
func (sw *Swarm) Range() { for k, v := range sw.Peers { //fmt.Println("k:", k, "v Add:", v.Address) }
}
func (*Swarm) RelayMessage ¶
func (*Swarm) RemovePeer ¶
func (*Swarm) RemovePeerByAddress ¶
func (*Swarm) ReplyMessage ¶
func (*Swarm) RequestData ¶
func (*Swarm) RequestDataFile ¶
func (*Swarm) SetupListener ¶
func (*Swarm) StartMDNSClient ¶
func (sw *Swarm) StartMDNSClient()
func (*Swarm) StartMDNSServer ¶
func (sw *Swarm) StartMDNSServer()
Click to show internal directories.
Click to hide internal directories.