From 18de39d46296dc59c6ab6eb02648476bfaac280f Mon Sep 17 00:00:00 2001 From: Fabio Barone Date: Tue, 6 Feb 2018 11:24:29 -0500 Subject: [PATCH] swarm: worked in feedback comments to PR --- p2p/simulations/http.go | 20 -------------------- p2p/simulations/mocker.go | 17 +++++++++-------- 2 files changed, 9 insertions(+), 28 deletions(-) diff --git a/p2p/simulations/http.go b/p2p/simulations/http.go index 65332614a5..24001f1949 100644 --- a/p2p/simulations/http.go +++ b/p2p/simulations/http.go @@ -28,7 +28,6 @@ import ( "strconv" "strings" "sync" - "time" "github.com/ethereum/go-ethereum/event" "github.com/ethereum/go-ethereum/p2p" @@ -381,13 +380,6 @@ func (s *Server) ResetNetwork(w http.ResponseWriter, req *http.Request) { // StreamNetworkEvents streams network events as a server-sent-events stream func (s *Server) StreamNetworkEvents(w http.ResponseWriter, req *http.Request) { - var throttle <-chan time.Time - //When running a sim, the frontend may "choke to death" depending on params (node count) - //due to overwhelming event rate. It is therefore important to be able to throttle - //the rate at which the events are emitted, in order for the frontend to have time - //to terminate rendering before the next event arrives. - throttling := false - events := make(chan *Event) sub := s.network.events.Subscribe(events) defer sub.Unsubscribe() @@ -463,21 +455,9 @@ func (s *Server) StreamNetworkEvents(w http.ResponseWriter, req *http.Request) { } } - //Only do throttling if requested - if req.URL.Query().Get("throttling") == "true" { - throttling = true - //rate at which we allow events to be emitted on the server-side event stream - rate := time.Second / 40 - throttle = time.Tick(rate) - } - for { select { case event := <-events: - //if throttling, wait for the next throttle tick before emitting event - if throttling { - <-throttle - } // only send message events which match the filters if event.Msg != nil && !filters.Match(event.Msg) { continue diff --git a/p2p/simulations/mocker.go b/p2p/simulations/mocker.go index 349306ca3a..389b1e3ec3 100644 --- a/p2p/simulations/mocker.go +++ b/p2p/simulations/mocker.go @@ -103,12 +103,13 @@ func startStop(net *Network, quit chan struct{}, nodeCount int) { func probabilistic(net *Network, quit chan struct{}, nodeCount int) { nodes, err := connectNodesInRing(net, nodeCount) if err != nil { - log.Error(fmt.Sprintf("%s", err)) - if _, ok := <-quit; ok == false { + select { + case <-quit: //error may be due to abortion of mocking; so the quit channel is closed return + default: + panic("Could not startup node network for mocker") } - panic("Could not startup node network for mocker") } for { select { @@ -149,7 +150,7 @@ func probabilistic(net *Network, quit chan struct{}, nodeCount int) { log.Debug(fmt.Sprintf("node %v shutting down", nodes[i])) err := net.Stop(nodes[i]) if err != nil { - log.Error(fmt.Sprintf("Error stopping node %s", nodes[i])) + log.Error("Error stopping node", "node", nodes[i]) wg.Done() continue } @@ -157,7 +158,7 @@ func probabilistic(net *Network, quit chan struct{}, nodeCount int) { time.Sleep(randWait) err := net.Start(id) if err != nil { - log.Error(fmt.Sprintf("Error starting node %s", id)) + log.Error("Error starting node", "node", id) } wg.Done() }(nodes[i]) @@ -174,7 +175,7 @@ func connectNodesInRing(net *Network, nodeCount int) ([]discover.NodeID, error) conf := adapters.RandomNodeConfig() node, err := net.NewNodeWithConfig(conf) if err != nil { - log.Error(fmt.Sprintf("Error creating a node! %s", err)) + log.Error("Error creating a node!", "err", err) return nil, err } ids[i] = node.ID() @@ -182,7 +183,7 @@ func connectNodesInRing(net *Network, nodeCount int) ([]discover.NodeID, error) for _, id := range ids { if err := net.Start(id); err != nil { - log.Error("Error starting a node! %s", err) + log.Error("Error starting a node!", "err", err) return nil, err } log.Debug(fmt.Sprintf("node %v starting up", id)) @@ -190,7 +191,7 @@ func connectNodesInRing(net *Network, nodeCount int) ([]discover.NodeID, error) for i, id := range ids { peerID := ids[(i+1)%len(ids)] if err := net.Connect(id, peerID); err != nil { - log.Error(fmt.Sprintf("Error connecting a node to a peer! %s", err)) + log.Error("Error connecting a node to a peer!", "err", err) return nil, err } }