aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/network/protocol.go
diff options
context:
space:
mode:
authorViktor TrĂ³n <viktor.tron@gmail.com>2018-09-12 17:24:56 +0800
committerBalint Gabor <balint.g@gmail.com>2018-09-12 17:24:56 +0800
commitbfce00385f1c8dab222b7ddab6c336177a5ae731 (patch)
tree8b3d2b2ce30e8b5eaf6db5b89a6c5570c3997cff /swarm/network/protocol.go
parentb06ff563a1f1095407612e04a1707e13d2dc20da (diff)
downloaddexon-bfce00385f1c8dab222b7ddab6c336177a5ae731.tar.gz
dexon-bfce00385f1c8dab222b7ddab6c336177a5ae731.tar.zst
dexon-bfce00385f1c8dab222b7ddab6c336177a5ae731.zip
Kademlia refactor (#17641)
* swarm/network: simplify kademlia/hive; rid interfaces * swarm, swarm/network/stream, swarm/netork/simulations,, swarm/pss: adapt to new Kad API * swarm/network: minor changes re review; add missing lock to NeighbourhoodDepthC
Diffstat (limited to 'swarm/network/protocol.go')
-rw-r--r--swarm/network/protocol.go47
1 files changed, 8 insertions, 39 deletions
diff --git a/swarm/network/protocol.go b/swarm/network/protocol.go
index 7f7ca5eed..ef0956d5f 100644
--- a/swarm/network/protocol.go
+++ b/swarm/network/protocol.go
@@ -62,32 +62,6 @@ var DiscoverySpec = &protocols.Spec{
},
}
-// Addr interface that peerPool needs
-type Addr interface {
- OverlayPeer
- Over() []byte
- Under() []byte
- String() string
- Update(OverlayAddr) OverlayAddr
-}
-
-// Peer interface represents an live peer connection
-type Peer interface {
- Addr // the address of a peer
- Conn // the live connection (protocols.Peer)
- LastActive() time.Time // last time active
-}
-
-// Conn interface represents an live peer connection
-type Conn interface {
- ID() discover.NodeID // the key that uniquely identifies the Node for the peerPool
- Handshake(context.Context, interface{}, func(interface{}) error) (interface{}, error) // can send messages
- Send(context.Context, interface{}) error // can send messages
- Drop(error) // disconnect this peer
- Run(func(context.Context, interface{}) error) error // the run function to run a protocol
- Off() OverlayAddr
-}
-
// BzzConfig captures the config params used by the hive
type BzzConfig struct {
OverlayAddr []byte // base address of the overlay network
@@ -114,7 +88,7 @@ type Bzz struct {
// * bzz config
// * overlay driver
// * peer store
-func NewBzz(config *BzzConfig, kad Overlay, store state.Store, streamerSpec *protocols.Spec, streamerRun func(*BzzPeer) error) *Bzz {
+func NewBzz(config *BzzConfig, kad *Kademlia, store state.Store, streamerSpec *protocols.Spec, streamerRun func(*BzzPeer) error) *Bzz {
return &Bzz{
Hive: NewHive(config.HiveParams, kad, store),
NetworkID: config.NetworkID,
@@ -131,7 +105,7 @@ func (b *Bzz) UpdateLocalAddr(byteaddr []byte) *BzzAddr {
b.localAddr = b.localAddr.Update(&BzzAddr{
UAddr: byteaddr,
OAddr: b.localAddr.OAddr,
- }).(*BzzAddr)
+ })
return b.localAddr
}
@@ -274,7 +248,7 @@ type BzzPeer struct {
LightNode bool
}
-func NewBzzTestPeer(p *protocols.Peer, addr *BzzAddr) *BzzPeer {
+func NewBzzPeer(p *protocols.Peer, addr *BzzAddr) *BzzPeer {
return &BzzPeer{
Peer: p,
localAddr: addr,
@@ -282,11 +256,6 @@ func NewBzzTestPeer(p *protocols.Peer, addr *BzzAddr) *BzzPeer {
}
}
-// Off returns the overlay peer record for offline persistence
-func (p *BzzPeer) Off() OverlayAddr {
- return p.BzzAddr
-}
-
// LastActive returns the time the peer was last active
func (p *BzzPeer) LastActive() time.Time {
return p.lastActive
@@ -388,8 +357,8 @@ func (a *BzzAddr) ID() discover.NodeID {
}
// Update updates the underlay address of a peer record
-func (a *BzzAddr) Update(na OverlayAddr) OverlayAddr {
- return &BzzAddr{a.OAddr, na.(Addr).Under()}
+func (a *BzzAddr) Update(na *BzzAddr) *BzzAddr {
+ return &BzzAddr{a.OAddr, na.UAddr}
}
// String pretty prints the address
@@ -410,9 +379,9 @@ func RandomAddr() *BzzAddr {
}
// NewNodeIDFromAddr transforms the underlay address to an adapters.NodeID
-func NewNodeIDFromAddr(addr Addr) discover.NodeID {
- log.Info(fmt.Sprintf("uaddr=%s", string(addr.Under())))
- node := discover.MustParseNode(string(addr.Under()))
+func NewNodeIDFromAddr(addr *BzzAddr) discover.NodeID {
+ log.Info(fmt.Sprintf("uaddr=%s", string(addr.UAddr)))
+ node := discover.MustParseNode(string(addr.UAddr))
return node.ID
}