mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 09:53:48 +00:00
swarm: worked in feedback comments to PR
This commit is contained in:
parent
9e1aeac485
commit
18de39d462
2 changed files with 9 additions and 28 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -103,13 +103,14 @@ 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")
|
||||
}
|
||||
}
|
||||
for {
|
||||
select {
|
||||
case <-quit:
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue