rust-libp2p icon indicating copy to clipboard operation
rust-libp2p copied to clipboard

feat(propeller): made propeller protocol

Open sirandreww-starkware opened this issue 2 months ago • 2 comments

Description

I implemented a message propagation mechanism that is inspired by turbine (Solana's block propagation procedure). The mechanism I'm suggesting is a simplification of turbine that keeps the fundamental ideas and works within the libp2p constraints. I call this mechanism "propeller". I would be happy to take notes on my implementation, and ecstatic if it is possible to actually add this to the crate.

Notes & open questions

The key differences between propeller and turbine are stated in protocols/propeller/src/lib.rs

Change checklist

  • [x] I have performed a self-review of my own code
  • [x] I have made corresponding changes to the documentation
  • [x] I have added tests that prove my fix is effective or that my feature works
  • [ ] A changelog entry has been made in the appropriate crates

I added a new changelog file for this protocol, but did not add a link to it in the repo's changelog

sirandreww-starkware avatar Sep 30 '25 07:09 sirandreww-starkware

Thanks for the PR. While the concept does seem interesting, unfortunately this is not something we can just add to rust-libp2p unless there been an update to libp2p specs to introduce this there, where it would then possibly be implemented in other implementations of libp2p then we wouldnt be able to just add it here. The best thing to do is first is raise a discussion at https://github.com/libp2p/specs for the protocol youre trying to add here, detail specification, etc., and if it gets approved then we could probably revisit this.

dariusc93 avatar Sep 30 '25 11:09 dariusc93

@dariusc93 thank you for the clarification, I don't know if I have the time to do all of that, maybe I'll just publish this as a standalone crate. @jsx Hey João! I must say your thoughts about how other blockchains do block propagation lead me down this road. I did not create a specification since I didn't know how it'll turn out. I might be able to write one if time permits. I'll update on this matter once I know what I should do with this code.

sirandreww-starkware avatar Oct 09 '25 07:10 sirandreww-starkware