diff --git a/p2p/simulations/adapters/inproc.go b/p2p/simulations/adapters/inproc.go index 2acf3d0e90..6f7c6a2538 100644 --- a/p2p/simulations/adapters/inproc.go +++ b/p2p/simulations/adapters/inproc.go @@ -225,8 +225,7 @@ func (self *SimNode) Start(snapshot []byte) error { services := []node.ServiceConstructor{} - // we need to control the order of the services - // for example, bzz needs to start before pss + // so we can control the order of the services if we need for _, name := range self.config.Services { service := self.serviceFuncs[name](self.Id, snapshot) services = append(services, func(ctx *node.ServiceContext) (node.Service, error) { diff --git a/p2p/simulations/adapters/types.go b/p2p/simulations/adapters/types.go index dacf3a2111..3165811a0f 100644 --- a/p2p/simulations/adapters/types.go +++ b/p2p/simulations/adapters/types.go @@ -205,10 +205,11 @@ func RandomNodeConfig() *NodeConfig { } // Services is a collection of services which can be run in a simulation +// it is mapped to strings representing TYPES of nodes type Services map[string]ServiceFunc // ServiceFunc returns a node.Service which can be used to boot devp2p nodes -type ServiceFunc func(id *NodeId, snapshot []byte) node.Service +type ServiceFunc func(id *NodeId, snapshot []byte) []node.Service // serviceFuncs is a map of registered services which are used to boot devp2p // nodes diff --git a/swarm/pss/pss_test.go b/swarm/pss/pss_test.go index 59107cc85c..e8467b715e 100644 --- a/swarm/pss/pss_test.go +++ b/swarm/pss/pss_test.go @@ -177,6 +177,7 @@ func TestPssSimpleLinear(t *testing.T) { nodeconfig := adapters.RandomNodeConfig() addr := network.NewAddrFromNodeId(nodeconfig.Id) ps := newTestPss(addr.OAddr) + ps.Register(pssPingTopic, pssPingHandler) pt := p2ptest.NewProtocolTester(t, nodeconfig.Id, 2, newServices(), ps.Protocols()[0].Run) msg := newPssPingMsg(ps, pssPingProtocol, pssPingTopic, []byte{1,2,3}) @@ -347,11 +348,7 @@ func triggerChecks(trigger chan *adapters.NodeId, net *simulations.Network, id * func newServices() adapters.Services { - bzzs := make(map[*adapters.NodeId]*network.Bzz) - - adaptersservices := make(map[string]adapters.ServiceFunc) - - adaptersservices["bzz"] = func(id *adapters.NodeId, snapshot []byte) node.Service { + return func(id *adapters.NodeId, snapshot []byte) []node.Service { // setup hive addr := network.NewAddrFromNodeId(id) @@ -371,12 +368,8 @@ func newServices() adapters.Services { config.HiveParams.KeepAliveInterval = time.Second - bzzs[id] = network.NewBzz(config) - - return bzzs[id] - } + network.NewBzz(config) - adaptersservices["pss"] = func(id *adapters.NodeId, snapshot []byte) node.Service { // pss setup cachedir, err := ioutil.TempDir("", "pss-cache") if err != nil { @@ -395,7 +388,6 @@ func newServices() adapters.Services { return NewPss(bzzs[id].Kademlia, dpa, pssp) } - return adaptersservices } /*