forked from hacash/core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
p2p.go
30 lines (26 loc) · 1020 Bytes
/
p2p.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package interfaces
type P2PManager interface {
Start() error
SetMsgHandler(P2PMsgDataHandler)
AddKnowledge(KnowledgeKind string, KnowledgeKey string) bool // Return false as known
CheckKnowledge(KnowledgeKind string, KnowledgeKey string) bool // Return true to know
GetConfigOfBootNodeFastSync() bool
}
type P2PMsgPeer interface {
AddKnowledge(KnowledgeKind string, KnowledgeKey string) bool // Return false as known
CheckKnowledge(KnowledgeKind string, KnowledgeKey string) bool // Return true to know
SendDataMsg(msgty uint16, msgbody []byte) error
Describe() string
Disconnect()
}
type P2PMsgCommunicator interface {
PeerLen() int
GetAllPeers() []P2PMsgPeer
FindAnyOnePeerBetterBePublic() P2PMsgPeer
BroadcastDataMessageToUnawarePeers(ty uint16, msgbody []byte, KnowledgeKind string, KnowledgeKey string)
}
type P2PMsgDataHandler interface {
OnConnected(P2PMsgCommunicator, P2PMsgPeer)
OnMsgData(mc P2PMsgCommunicator, p P2PMsgPeer, msgty uint16, msgbody []byte)
OnDisconnected(P2PMsgPeer)
}