-
Notifications
You must be signed in to change notification settings - Fork 7
feat: enhance OptimumP2P documentation #17
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
Merged
Merged
Changes from 1 commit
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
90e5cff
feat: enhance OptimumP2P documentation
swarna1101 fbbf757
fix: remove few things
swarna1101 ae7ca65
fix: improve docs
swarna1101 684ee92
fix: lint
swarna1101 ad5399a
Update OptimumP2P documentation
swarna1101 be54a01
fix: minor
swarna1101 4b4b0bb
fix: lint
swarna1101 758d62b
docs: improve based on comments
swarna1101 bc08a17
fix: minor change
swarna1101 cd9405e
fix: shards -> coded shards
swarna1101 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,12 +8,11 @@ OptimumP2P is a gossip mechanism based on RLNC, also known as Galois Gossip, tha | |
|
|
||
| ### Node Architecture | ||
|
|
||
| OptimumP2P is implemented as a P2P node that can run either the traditional [GossipSub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) protocol or the enhanced OptimumP2P protocol with RLNC. The node maintains: | ||
| OptimumP2P is implemented as a P2P node that enhances traditional gossip protocols with RLNC capabilities. The node maintains: | ||
|
|
||
| * **[libp2p](https://docs.libp2p.io/) Host**: The underlying network layer for peer connections | ||
| * **Protocol Selection**: Can run [GossipSub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub), OptimumP2P, or both protocols simultaneously | ||
| * **Mesh Topology**: Maintains peer connections similar to [GossipSub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) with configurable mesh degrees | ||
| * **RLNC Parameters**: Configurable shred factor, publisher multipliers, and forwarding thresholds | ||
| * **RLNC Parameters**: Configurable parameters for encoding and forwarding behavior (see [Configuration Parameters](#configuration-parameters)) | ||
|
|
||
| ### Random Linear Network Coding (RLNC) Fundamentals | ||
|
|
||
|
|
@@ -61,13 +60,31 @@ OptimumP2P uses control messages similar to [GossipSub](https://github.com/libp2 | |
| * **IWANT**: Requests additional shards for a message that hasn't been fully decoded | ||
| * **GRAFT/PRUNE**: Manages mesh topology similar to [GossipSub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) | ||
|
|
||
| ## Beyond Just Validators: Ecosystem-Wide Benefits | ||
| ## Configuration Parameters | ||
|
|
||
| OptimumP2P serves as a foundational, general-purpose data propagation protocol with benefits extending across various blockchain use cases. | ||
| OptimumP2P provides several configurable parameters to tune performance for different network conditions and requirements: | ||
|
|
||
| ### RLNC Encoding Parameters | ||
|
|
||
| * **ShredFactor**: Controls how the data is fragmented into pieces before encoding. Higher values provide more granular sharding but increase computational overhead. | ||
| * **PublisherShardMultiplier**: Determines how many shards to create initially when publishing a message. Formula: `shards_created = ShredFactor * PublisherShardMultiplier` | ||
| * **ForwardShardThreshold**: Sets the threshold for intermediate nodes to create and forward new recoded shards. Nodes forward when they have more than `ShredFactor * ForwardShardThreshold` shards | ||
|
|
||
| ### Mesh Topology Parameters | ||
|
|
||
| * **MeshDegreeTarget**: Target number of peers to maintain in the mesh overlay | ||
| * **MeshDegreeMin**: Minimum number of mesh peers before triggering grafting | ||
| * **MeshDegreeMax**: Maximum number of mesh peers before triggering pruning | ||
|
|
||
|  | ||
| ### Performance Tuning | ||
|
|
||
| The diagram above shows an example sidecar integration pattern where OptimumP2P runs alongside existing consensus layer clients. This allows validators to benefit from enhanced data propagation without modifying their core consensus software. | ||
| * **RandomMessageSize**: Default message size used for testing and benchmarking (in bytes) | ||
|
|
||
| These parameters can be adjusted based on network conditions, bandwidth constraints, and latency requirements to optimize OptimumP2P performance for specific use cases. | ||
|
|
||
| ## Beyond Just Validators: Ecosystem-Wide Benefits | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
|
||
| OptimumP2P serves as a foundational, general-purpose data propagation protocol with benefits extending across various blockchain use cases. | ||
|
|
||
| ### Classic L1s: Ethereum, Solana, Cosmos | ||
|
|
||
|
|
||
Binary file not shown.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can improve it more; let's add it as an issue and address it later with hackathon docs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
created it here: #19