Documentation ¶
Index ¶
- Constants
- Variables
- func B64DecodePrivKey(data string) (crypto.PrivKey, error)
- func B64EncodePrivKey(priv crypto.PrivKey) (string, error)
- func GetCompleteAddrs(h host.Host) ([]ma.Multiaddr, error)
- func ParseFromIPFSAddr(ipfsAddr ma.Multiaddr) (peer.ID, ma.Multiaddr, error)
- func RandomGeneratePid() (peer.ID, error)
- type BroadcastEvent
- type Config
- type DiscvActiveEvent
- type MulticastEvent
- type MulticastNeighborEvent
- type Peer
- func (p *Peer) AddProtocol(proto common.Protocol) error
- func (peer *Peer) Broadcast(pbName string, data []byte)
- func (peer *Peer) Connect(pid peer.ID) error
- func (peer *Peer) ConnectWithIPFS(addr ma.Multiaddr) error
- func (p *Peer) DelProtocol(proto common.Protocol)
- func (peer *Peer) ID() peer.ID
- func (peer *Peer) Multicast(pids []peer.ID, pbName string, data []byte)
- func (peer *Peer) MulticastNeighbor(pbName string, data []byte, count int)
- func (peer *Peer) Send(pid peer.ID, typ string, data []byte) error
- func (peer *Peer) Start()
- func (peer *Peer) Stop()
- type RandomSendEvnet
- type RouteTable
- func (table *RouteTable) AddIPFSPeer(addr ma.Multiaddr) error
- func (table *RouteTable) AddPeer(pid peer.ID, addr ma.Multiaddr)
- func (table *RouteTable) AddPeerInfo(prettyID string, addrStr []string) error
- func (table *RouteTable) AddPeerWithAddrs(pid peer.ID, addrs []ma.Multiaddr)
- func (table *RouteTable) AddPeers(peers []*pb.PeerInfo) error
- func (table *RouteTable) GetNearestPeers(pid peer.ID) []peerstore.PeerInfo
- func (table *RouteTable) HasPeer(pid peer.ID) bool
- func (table *RouteTable) LoadRTableFromFile()
- func (table *RouteTable) Peers() map[peer.ID][]ma.Multiaddr
- func (table *RouteTable) RemovePeer(pid peer.ID)
- func (table *RouteTable) SaveRTableToFile() error
- func (table *RouteTable) Start()
- func (table *RouteTable) Stop()
- func (table *RouteTable) SyncFromPeer(pid peer.ID) error
- func (table *RouteTable) SyncRouteFromNeighbor()
- func (table *RouteTable) SyncRouteWithSeeds()
- type SendMsgEvent
- type Stream
Constants ¶
const ( MaxRespBufSize = 100 MaxNearestPeers = 20 MaxStreamNum = 1000 DefaultTimeout = time.Second * 60 )
Variables ¶
var ( ErrInvalidType = errors.New("invalid data type of message") ErrMsgTypeNotMatchData = errors.New("message type is not match with data") )
var (
TransProtocol = protocol.ID("/chain/1.0.0.")
)
Functions ¶
func B64DecodePrivKey ¶
Base64 decode and return private_key
func B64EncodePrivKey ¶
Base64 encode private_key and return a b64 string
func GetCompleteAddrs ¶
Reverse func of ParseFromIPFSAddr
func ParseFromIPFSAddr ¶
Parse ipfs addr like '/ip4/127.0.0.1/tcp/65532/ipfs/QmWxRLJvALbQRqE8ay91e5kzeNuPkNZQ4UkvXRrPxfXFuX' Split it to '/ip4/127.0.0.1/tcp/65532' and 'QmWxRLJvALbQRqE8ay91e5kzeNuPkNZQ4UkvXRrPxfXFuX'(peer id)
Types ¶
type BroadcastEvent ¶
type DiscvActiveEvent ¶
type DiscvActiveEvent struct{}
DiscvActive will be throw when peers discover run 6 rounds
type MulticastEvent ¶
Multicast msg with p2p network layer
type MulticastNeighborEvent ¶
Multicast msg to `count` nearest neighbor
type Peer ¶
type Peer struct {
// contains filtered or unexported fields
}
Peer stands for a logical peer of tinychain's p2p layer
func (*Peer) ConnectWithIPFS ¶
Link to a unknown peer with its ipfs multiaddr and send handshake
func (*Peer) DelProtocol ¶
func (*Peer) MulticastNeighbor ¶
MulticastNeighbor retrieves `n` nearest neighbor from route_table and sends message to them.
type RandomSendEvnet ¶
Random Multicast message with p2p network layer
type RouteTable ¶
type RouteTable struct {
// contains filtered or unexported fields
}
func NewRouteTable ¶
func NewRouteTable(config *Config, peer *Peer) *RouteTable
func (*RouteTable) AddIPFSPeer ¶
func (table *RouteTable) AddIPFSPeer(addr ma.Multiaddr) error
func (*RouteTable) AddPeer ¶
func (table *RouteTable) AddPeer(pid peer.ID, addr ma.Multiaddr)
Add peer to route table
func (*RouteTable) AddPeerInfo ¶
func (table *RouteTable) AddPeerInfo(prettyID string, addrStr []string) error
Add peer to route table
func (*RouteTable) AddPeerWithAddrs ¶
func (table *RouteTable) AddPeerWithAddrs(pid peer.ID, addrs []ma.Multiaddr)
Add peer with []ma.Multiaddrs
func (*RouteTable) AddPeers ¶
func (table *RouteTable) AddPeers(peers []*pb.PeerInfo) error
Add peers when get 'RouteSyncResp'
func (*RouteTable) GetNearestPeers ¶
func (table *RouteTable) GetNearestPeers(pid peer.ID) []peerstore.PeerInfo
func (*RouteTable) HasPeer ¶
func (table *RouteTable) HasPeer(pid peer.ID) bool
func (*RouteTable) LoadRTableFromFile ¶
func (table *RouteTable) LoadRTableFromFile()
Load route table from file
func (*RouteTable) Peers ¶
func (table *RouteTable) Peers() map[peer.ID][]ma.Multiaddr
func (*RouteTable) RemovePeer ¶
func (table *RouteTable) RemovePeer(pid peer.ID)
func (*RouteTable) SaveRTableToFile ¶
func (table *RouteTable) SaveRTableToFile() error
Save route table to file
func (*RouteTable) Start ¶
func (table *RouteTable) Start()
Start route table looping for route sync
func (*RouteTable) SyncFromPeer ¶
func (table *RouteTable) SyncFromPeer(pid peer.ID) error
Sync route table with a peer It send `RouteSyncReq` message and transfer nil data
func (*RouteTable) SyncRouteFromNeighbor ¶
func (table *RouteTable) SyncRouteFromNeighbor()
Looping sync route table with neighbor
func (*RouteTable) SyncRouteWithSeeds ¶
func (table *RouteTable) SyncRouteWithSeeds()
Sync route table
type SendMsgEvent ¶
type SendMsgEvent struct { Target peer.ID // Target peer id Typ string // Message type Data []byte // Message data }
Message sent with p2p network layer
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}