-
Notifications
You must be signed in to change notification settings - Fork 790
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add is_originator
flag to publish messages
#4654
Add is_originator
flag to publish messages
#4654
Conversation
Posting @gr0vity-dev test results here for reference ("heuristic" run refers to this PR):
Below the column "seen" is of the most interest as it indicates how long it took to propagate a block across the network: |
One thing that stood out is that with confirm_ack we have is_rebroadcasted but with publish we have is_originator. For the same reason we used is_rebroadcasted shouldn't we use is_rebroadcasted on publish as well? Basically, the flag is an opt-in by the sender saying the block is of lower priority. We can't prove a sender is the originator but they can opt-in to be lower priority. |
Either of these flags could work. With confirm_acks there was a compatibility constraint where votes needed to be treated as non-rebroadcasted by default, that's why the |
# Conflicts: # nano/node/blockprocessor.hpp
This adds a new flag to
publish
messages that indicates whether a block is coming from a node that performed initial flooding. This helps avoid a situation when under a high load, a legitimate block is dropped because blockprocessor queue for a peer is full of rebroadcasted blocks. However, the potential for exploiting this is limited, as both rebroadcasted and originator queues have the same max size and priority, so effectively this gives each peer two queues to spam the network - which is not much, but should be plenty for legitimate traffic.Format of extended publish message: