Skip to content
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

Stop automatically broadcasting transactions from the rpc #1529

Open
evan-forbes opened this issue Nov 18, 2024 · 0 comments
Open

Stop automatically broadcasting transactions from the rpc #1529

evan-forbes opened this issue Nov 18, 2024 · 0 comments
Labels
cat 🐈 fix good first issue Good for newcomers WS: Big Blonks 🔭 Improving consensus critical gossiping protocols

Comments

@evan-forbes
Copy link
Member

Currently, CAT automatically broadcasts transactions from the rpc to all peers. There are several problems with this.

  1. While initially it seemed like an reasonable optimization, upon closer inspection in a real network, this almost guarantees that nodes in the network end up downloading the transaction more than once. This is because nodes will often receive a Have msg from other peers before they download the entire tx from the sender. They they get download the transaction twice.

  2. This also stops nodes from enforcing the powerful and simple spam prevention mechanism of kicking peers that send them transactions that they didn't ask for.

  3. While very unlikely atm, it's possible for a user to submit the same transaction to every RPC endpoint that is available, which would result in downloading a ton of redundant data, and we'd lose the benefits of using pull based gossip.

With these three things in consideration, we should stop automatically sending transactions received from the RPC

@evan-forbes evan-forbes added cat 🐈 WS: Big Blonks 🔭 Improving consensus critical gossiping protocols fix good first issue Good for newcomers labels Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat 🐈 fix good first issue Good for newcomers WS: Big Blonks 🔭 Improving consensus critical gossiping protocols
Projects
None yet
Development

No branches or pull requests

1 participant