-
Notifications
You must be signed in to change notification settings - Fork 164
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
feat: iroh-gossip #1149
Merged
Merged
feat: iroh-gossip #1149
Commits on Aug 4, 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 5ca2fa2 - Browse repository at this point
Copy the full SHA 5ca2fa2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 523b14e - Browse repository at this point
Copy the full SHA 523b14eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e28f42 - Browse repository at this point
Copy the full SHA 9e28f42View commit details -
Configuration menu - View commit details
-
Copy full SHA for a1a2d93 - Browse repository at this point
Copy the full SHA a1a2d93View 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 209a008 - Browse repository at this point
Copy the full SHA 209a008View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9433104 - Browse repository at this point
Copy the full SHA 9433104View commit details -
Configuration menu - View commit details
-
Copy full SHA for d6c6181 - Browse repository at this point
Copy the full SHA d6c6181View commit details -
Configuration menu - View commit details
-
Copy full SHA for c24d1f5 - Browse repository at this point
Copy the full SHA c24d1f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d0581a - Browse repository at this point
Copy the full SHA 7d0581aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 60a88b3 - Browse repository at this point
Copy the full SHA 60a88b3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 88378b4 - Browse repository at this point
Copy the full SHA 88378b4View commit details -
change: do not error on connect without addrs
Before MagicEndpoint::connect would error if called without addrs or derp_region. This commit changes this by only warning and not bailing. This allows to connect to peers by peer id only if addresses or a derp_region were provided previously. The downside is that we lose a valuable error case. A more proper fix will need to move the check if a peer is dialable into the actor.
Configuration menu - View commit details
-
Copy full SHA for 4880e06 - Browse repository at this point
Copy the full SHA 4880e06View commit details -
Configuration menu - View commit details
-
Copy full SHA for 40473a8 - Browse repository at this point
Copy the full SHA 40473a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 37f9f28 - Browse repository at this point
Copy the full SHA 37f9f28View commit details -
docs: document public items in iroh-gossip
also renames mod.rs files to modname.rs
Configuration menu - View commit details
-
Copy full SHA for bce578b - Browse repository at this point
Copy the full SHA bce578bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 616055f - Browse repository at this point
Copy the full SHA 616055fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9aee1c5 - Browse repository at this point
Copy the full SHA 9aee1c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82b8625 - Browse repository at this point
Copy the full SHA 82b8625View commit details -
Configuration menu - View commit details
-
Copy full SHA for c7dd843 - Browse repository at this point
Copy the full SHA c7dd843View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ba34b4 - Browse repository at this point
Copy the full SHA 1ba34b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8d2f5b - Browse repository at this point
Copy the full SHA f8d2f5bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d4ff8c - Browse repository at this point
Copy the full SHA 9d4ff8cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d81bee - Browse repository at this point
Copy the full SHA 7d81beeView commit details -
Configuration menu - View commit details
-
Copy full SHA for a7133fa - Browse repository at this point
Copy the full SHA a7133faView commit details -
Configuration menu - View commit details
-
Copy full SHA for ee68979 - Browse repository at this point
Copy the full SHA ee68979View commit details -
Configuration menu - View commit details
-
Copy full SHA for 65b866e - Browse repository at this point
Copy the full SHA 65b866eView commit details -
Configuration menu - View commit details
-
Copy full SHA for ad7bd55 - Browse repository at this point
Copy the full SHA ad7bd55View commit details -
Configuration menu - View commit details
-
Copy full SHA for c89472e - Browse repository at this point
Copy the full SHA c89472eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 98e5d6a - Browse repository at this point
Copy the full SHA 98e5d6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 84dfab3 - Browse repository at this point
Copy the full SHA 84dfab3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 36f599a - Browse repository at this point
Copy the full SHA 36f599aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7927e65 - Browse repository at this point
Copy the full SHA 7927e65View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e3acfd - Browse repository at this point
Copy the full SHA 7e3acfdView commit details -
Configuration menu - View commit details
-
Copy full SHA for e469b9e - Browse repository at this point
Copy the full SHA e469b9eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 72e0a28 - Browse repository at this point
Copy the full SHA 72e0a28View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f08f5d - Browse repository at this point
Copy the full SHA 6f08f5dView commit details -
Configuration menu - View commit details
-
Copy full SHA for efdfc13 - Browse repository at this point
Copy the full SHA efdfc13View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a5addf - Browse repository at this point
Copy the full SHA 3a5addfView commit details -
Configuration menu - View commit details
-
Copy full SHA for dbeb3fb - Browse repository at this point
Copy the full SHA dbeb3fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 38cb7ee - Browse repository at this point
Copy the full SHA 38cb7eeView commit details -
Configuration menu - View commit details
-
Copy full SHA for c7f4327 - Browse repository at this point
Copy the full SHA c7f4327View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2418a57 - Browse repository at this point
Copy the full SHA 2418a57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a5ffe5 - Browse repository at this point
Copy the full SHA 0a5ffe5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e02123f - Browse repository at this point
Copy the full SHA e02123fView commit details -
Configuration menu - View commit details
-
Copy full SHA for d561e6b - Browse repository at this point
Copy the full SHA d561e6bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 71280fa - Browse repository at this point
Copy the full SHA 71280faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5ad5924 - Browse repository at this point
Copy the full SHA 5ad5924View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1548381 - Browse repository at this point
Copy the full SHA 1548381View commit details -
Configuration menu - View commit details
-
Copy full SHA for c78a027 - Browse repository at this point
Copy the full SHA c78a027View commit details -
Configuration menu - View commit details
-
Copy full SHA for 373a953 - Browse repository at this point
Copy the full SHA 373a953View commit details -
Configuration menu - View commit details
-
Copy full SHA for 680ed0a - Browse repository at this point
Copy the full SHA 680ed0aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 270efd5 - Browse repository at this point
Copy the full SHA 270efd5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5373b4 - Browse repository at this point
Copy the full SHA e5373b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06a6e30 - Browse repository at this point
Copy the full SHA 06a6e30View commit details -
Configuration menu - View commit details
-
Copy full SHA for 55ed2fd - Browse repository at this point
Copy the full SHA 55ed2fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for f19872c - Browse repository at this point
Copy the full SHA f19872cView commit details -
Configuration menu - View commit details
-
Copy full SHA for a045ca9 - Browse repository at this point
Copy the full SHA a045ca9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7ea6ba4 - Browse repository at this point
Copy the full SHA 7ea6ba4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4735019 - Browse repository at this point
Copy the full SHA 4735019View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00ea3b9 - Browse repository at this point
Copy the full SHA 00ea3b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 819bf54 - Browse repository at this point
Copy the full SHA 819bf54View commit details -
Configuration menu - View commit details
-
Copy full SHA for aaa419b - Browse repository at this point
Copy the full SHA aaa419bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 315e3c9 - Browse repository at this point
Copy the full SHA 315e3c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e0f768 - Browse repository at this point
Copy the full SHA 4e0f768View commit details -
Configuration menu - View commit details
-
Copy full SHA for ff1c300 - Browse repository at this point
Copy the full SHA ff1c300View commit details -
Configuration menu - View commit details
-
Copy full SHA for d45210d - Browse repository at this point
Copy the full SHA d45210dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f85b079 - Browse repository at this point
Copy the full SHA f85b079View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8aead0e - Browse repository at this point
Copy the full SHA 8aead0eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1b28a94 - Browse repository at this point
Copy the full SHA 1b28a94View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3145b6a - Browse repository at this point
Copy the full SHA 3145b6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 19eef0f - Browse repository at this point
Copy the full SHA 19eef0fView 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.