From 2131b622ad0a889329168c05499697b5d2d0d570 Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Fri, 18 Jan 2019 14:22:54 +0100 Subject: [PATCH] swarm: enable both bzz and hive --- swarm/network/protocol.go | 10 +++++++++- swarm/swarm.go | 20 ++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/swarm/network/protocol.go b/swarm/network/protocol.go index 74e7de1266..6f8eadad2a 100644 --- a/swarm/network/protocol.go +++ b/swarm/network/protocol.go @@ -67,6 +67,7 @@ type BzzConfig struct { HiveParams *HiveParams NetworkID uint64 LightNode bool + BootnodeMode bool } // Bzz is the swarm protocol bundle @@ -87,7 +88,7 @@ type Bzz struct { // * overlay driver // * peer store func NewBzz(config *BzzConfig, kad *Kademlia, store state.Store, streamerSpec *protocols.Spec, streamerRun func(*BzzPeer) error) *Bzz { - return &Bzz{ + bzz := &Bzz{ Hive: NewHive(config.HiveParams, kad, store), NetworkID: config.NetworkID, LightNode: config.LightNode, @@ -96,6 +97,13 @@ func NewBzz(config *BzzConfig, kad *Kademlia, store state.Store, streamerSpec *p streamerRun: streamerRun, streamerSpec: streamerSpec, } + + if config.BootnodeMode { + bzz.streamerRun = nil + bzz.streamerSpec = nil + } + + return bzz } // UpdateLocalAddr updates underlayaddress of the running node diff --git a/swarm/swarm.go b/swarm/swarm.go index e1d00952d1..d17d813203 100644 --- a/swarm/swarm.go +++ b/swarm/swarm.go @@ -115,10 +115,11 @@ func NewSwarm(config *api.Config, mockStore *mock.NodeStore) (self *Swarm, err e config.HiveParams.Discovery = true bzzconfig := &network.BzzConfig{ - NetworkID: config.NetworkID, - OverlayAddr: common.FromHex(config.BzzKey), - HiveParams: config.HiveParams, - LightNode: config.LightNodeEnabled, + NetworkID: config.NetworkID, + OverlayAddr: common.FromHex(config.BzzKey), + HiveParams: config.HiveParams, + LightNode: config.LightNodeEnabled, + BootnodeMode: config.BootnodeMode, } self.stateStore, err = state.NewDBStore(filepath.Join(config.Path, "state-store.db")) @@ -457,16 +458,7 @@ func (self *Swarm) Stop() error { // Protocols implements the node.Service interface func (s *Swarm) Protocols() (protos []p2p.Protocol) { if s.config.BootnodeMode { - protos = []p2p.Protocol{ - { - Name: network.DiscoverySpec.Name, - Version: network.DiscoverySpec.Version, - Length: network.DiscoverySpec.Length(), - Run: s.bzz.RunProtocol(network.DiscoverySpec, s.bzz.Hive.Run), - NodeInfo: s.bzz.Hive.NodeInfo, - PeerInfo: s.bzz.Hive.PeerInfo, - }, - } + protos = append(protos, s.bzz.Protocols()...) } else { protos = append(protos, s.bzz.Protocols()...)