You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In current implementation of go-nebulas, a network message, for example, a newtx message will broadcast to whole network, each network will also relay to peer nodes as well. That makes broadcast storm effect, which still has some impaction even if we implement receved_message strategy.
When a duplicated message are spread in network, they bring lots of computation pressure to blockchain core, especially newtx message during stress test.
To optimize that, I suppose to introduce a duplication message check in dispatcher.go module.
In function PutMessage(), check whether this message are dispatched. If so, ignore; otherwise escalate to upper level.
The text was updated successfully, but these errors were encountered:
So far, this strategy works, and the following commits are related to this change: 5adbb32net: dispatcher.go. support enable & disable duplicate msg filter for… d6cc4e4core: block_pool.go. remove filter from downloaded block message.
The reason why we introduce this strategy is the broadcast storm, we should find new strategy to prevent that.
In current implementation of go-nebulas, a network message, for example, a
newtx
message will broadcast to whole network, each network will also relay to peer nodes as well. That makesbroadcast storm
effect, which still has some impaction even if we implementreceved_message
strategy.When a duplicated message are spread in network, they bring lots of computation pressure to
blockchain core
, especiallynewtx
message during stress test.To optimize that, I suppose to introduce a duplication message check in
dispatcher.go
module.In function
PutMessage()
, check whether this message are dispatched. If so, ignore; otherwise escalate to upper level.The text was updated successfully, but these errors were encountered: