-
Notifications
You must be signed in to change notification settings - Fork 165
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
[WIP] feat: Add iroh-sync and integrate with gossip #1177
Closed
Closed
Commits on Jul 12, 2023
-
feat: iroh-gossip initial commit
This commit imports iroh-gossip into the repo. See n0-computer/iroh-sync#1 for the prehistory. * From that original PR comes my IO-less implementation of the gossip protocol (Plumtree broadcast trees and HyParView cluster membership). The implementations are quite strict according to the papers [1](https://asc.di.fct.unl.pt/~jleitao/pdf/dsn07-leitao.pdf) and [2](https://asc.di.fct.unl.pt/~jleitao/pdf/srds07-leitao.pdf). If you find any deviations that are not documented, please report, this is likely a bug. * The combined protocol for Plumtree and Hyparview is additionally namespaced with a 32-byte topic ID to allow multiple broadcast trees (one per topic) to coexist. This means: Each topic is a seperate broadcast tree with seperate swarm membership and active connections (connections to the same peers are still shared on the network layer) This IO-less protocol implementation is in the `proto` module. This PR *also* adds my work from the past week: A `net` module that provides networking for the IO-less protocol impl, through the `MagicEndpoint` from iroh-net, with a (I think) quite straightforward actor implementation. The `net` module has a smoke test, and the PR also includes a `chat` example that adds signed messages on the trustless base layer. What this mostly needs is, I think, more testing and validation of the protocol implementation. For this to be practical, I think we should formulate some base usecase scenarios. The `proto` module has a very simple simulator and some tests that can take environment variables to increase the cluster size. They passed with 10.000 nodes. They also report some stats. The numbers look OK-ish, but I'd love to compare them properly with either other implementations or estimations from the original paper or other resoures. However, those are hard to find.
Configuration menu - View commit details
-
Copy full SHA for 4aa6a9f - Browse repository at this point
Copy the full SHA 4aa6a9fView commit details -
Configuration menu - View commit details
-
Copy full SHA for da56cfd - Browse repository at this point
Copy the full SHA da56cfdView commit details -
Configuration menu - View commit details
-
Copy full SHA for e6245a9 - Browse repository at this point
Copy the full SHA e6245a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for f46b5c1 - Browse repository at this point
Copy the full SHA f46b5c1View commit details -
feat: transmit opaque PeerData on join, forward and neighbor
... and wire it up in net module to transmit your endpoint addresses
Configuration menu - View commit details
-
Copy full SHA for 2200d94 - Browse repository at this point
Copy the full SHA 2200d94View commit details -
Configuration menu - View commit details
-
Copy full SHA for 825aaaf - Browse repository at this point
Copy the full SHA 825aaafView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fa3c12 - Browse repository at this point
Copy the full SHA 4fa3c12View commit details -
Configuration menu - View commit details
-
Copy full SHA for 45779ed - Browse repository at this point
Copy the full SHA 45779edView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b3a596 - Browse repository at this point
Copy the full SHA 2b3a596View commit details -
Configuration menu - View commit details
-
Copy full SHA for 40bb716 - Browse repository at this point
Copy the full SHA 40bb716View commit details -
Configuration menu - View commit details
-
Copy full SHA for ceb7029 - Browse repository at this point
Copy the full SHA ceb7029View commit details -
Configuration menu - View commit details
-
Copy full SHA for aec61a8 - Browse repository at this point
Copy the full SHA aec61a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 57db3c9 - Browse repository at this point
Copy the full SHA 57db3c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4cae498 - Browse repository at this point
Copy the full SHA 4cae498View commit details -
Configuration menu - View commit details
-
Copy full SHA for 730a4b4 - Browse repository at this point
Copy the full SHA 730a4b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98c1094 - Browse repository at this point
Copy the full SHA 98c1094View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e129d5 - Browse repository at this point
Copy the full SHA 9e129d5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e275ac - Browse repository at this point
Copy the full SHA 5e275acView commit details -
Configuration menu - View commit details
-
Copy full SHA for fcb3026 - Browse repository at this point
Copy the full SHA fcb3026View commit details -
Configuration menu - View commit details
-
Copy full SHA for f15583b - Browse repository at this point
Copy the full SHA f15583bView commit details
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.