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

[On ice] Episub + minor edits #291

Closed
wants to merge 23 commits into from
Closed

Conversation

jamesray1
Copy link
Contributor

@jamesray1 jamesray1 commented Jul 11, 2018

Proximity Aware Epidemic PubSub for libp2p

See the episub specification for details. This PR started to implement episub, however, episub is a custom router for gossipsub, where the former uses an epidemic broadcast tree, a random walk for joining, active and passive view membership management for subscriptions and other optimizations for single source transmission.

Another PR will be created for gossipsub and this PR will be frozen, at least until the gossipsub PR is merged.

@tomaka tomaka changed the title Gossipsub5 [Work in progress] Gossipsub5 Jul 11, 2018
@jamesray1 jamesray1 changed the title [Work in progress] Gossipsub5 [Work in progress] Gossipsub Jul 30, 2018
…ed to resolve. Could not find in

   --> gossipsub/src/rpc_proto.rs:266:21
    |
266 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
    |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
   --> gossipsub/src/rpc_proto.rs:505:21
    |
505 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
    |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
   --> gossipsub/src/rpc_proto.rs:848:21
    |
848 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
    |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:1202:21
     |
1202 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:1449:21
     |
1449 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:1630:21
     |
1630 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:1816:21
     |
1816 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:2002:21
     |
2002 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:2306:21
     |
2306 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:2530:21
     |
2530 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Could not find  in
    --> gossipsub/src/rpc_proto.rs:2800:21
     |
2800 |         ::protobuf::MessageStatic::descriptor_static(None::<Self>)
     |                     ^^^^^^^^^^^^^ Could not find  in

error[E0433]: failed to resolve. Use of undeclared type or module
  --> gossipsub/src/membership_management/join.rs:34:17
   |
34 |         inner : SecioKeyPairInner::Ed25519
   |                 ^^^^^^^^^^^^^^^^^ Use of undeclared type or module

error[E0405]: cannot find trait  in module
   --> gossipsub/src/rpc_proto.rs:270:18
    |
270 | impl ::protobuf::MessageStatic for RPC {
    |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
   --> gossipsub/src/rpc_proto.rs:509:18
    |
509 | impl ::protobuf::MessageStatic for RPC_SubOpts {
    |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
   --> gossipsub/src/rpc_proto.rs:852:18
    |
852 | impl ::protobuf::MessageStatic for Message {
    |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:1206:18
     |
1206 | impl ::protobuf::MessageStatic for ControlMessage {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:1453:18
     |
1453 | impl ::protobuf::MessageStatic for ControlIHave {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:1634:18
     |
1634 | impl ::protobuf::MessageStatic for ControlIWant {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:1820:18
     |
1820 | impl ::protobuf::MessageStatic for ControlGraft {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:2006:18
     |
2006 | impl ::protobuf::MessageStatic for ControlPrune {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:2310:18
     |
2310 | impl ::protobuf::MessageStatic for TopicDescriptor {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:2534:18
     |
2534 | impl ::protobuf::MessageStatic for TopicDescriptor_AuthOpts {
     |                  ^^^^^^^^^^^^^ not found in

error[E0405]: cannot find trait  in module
    --> gossipsub/src/rpc_proto.rs:2804:18
     |
2804 | impl ::protobuf::MessageStatic for TopicDescriptor_EncOpts {
     |                  ^^^^^^^^^^^^^ not found in

error[E0422]: cannot find struct, variant or union type  in this scope
  --> gossipsub/src/membership_management/join.rs:94:20
   |
94 |         kbuckets : KBucketsTable {
   |                    ^^^^^^^^^^^^^ not found in this scope

error: aborting due to 24 previous errors

Some errors occurred: E0405, E0422, E0433.
For more information about an error, try The code refers to a trait that is not in scope.

Erroneous code example:

```
struct Foo;

impl SomeTrait for Foo {} // error: trait `SomeTrait` is not in scope
```

Please verify that the name of the trait wasn't misspelled and ensure that it
was imported. Example:

```
// solution 1:
use some_file::SomeTrait;

// solution 2:
trait SomeTrait {
    // some functions
}

struct Foo;

impl SomeTrait for Foo { // ok!
    // implements functions
}
```.
error: Could not compile .
… 1.7 was installed instead of 2.0.4; fixing some incomplete code; still more to fix and complete
…ng KadConnecConfig to implement transport in order to put it into a swarm.
@jamesray1 jamesray1 changed the title [Work in progress] Gossipsub [Work in progress] Gossipsub + minor edits Aug 16, 2018
@mhchia
Copy link

mhchia commented Aug 16, 2018

Hey @jamesray1 , it's happy to see that you have a lot of progress on rust gossipsub. We made a issue in libp2p/specs#83 . I'm thinking you might be interested in which version gossipsub to implement now, since currently the broadcast tree version hasn't been implemented yet in the go version. The current implemented version is more like the one described in gerbil-simsub.

@jamesray1
Copy link
Contributor Author

jamesray1 commented Aug 16, 2018

Hi @mhchia, I was basing the Rust implementation off the specification that was formerly and mistakenly under gossipsub, and which has now been moved to episub, not on the Go or Gerbil implementations which implement gossipsub. However, it seems to make more sense to implement gossipsub first, then extend that to episub. Thanks for noticing that in libp2p/specs#83.

@jamesray1 jamesray1 changed the title [Work in progress] Gossipsub + minor edits [Work in progress] Episub + minor edits Aug 16, 2018
@jamesray1 jamesray1 changed the title [Work in progress] Episub + minor edits [Work in progress] gossipsub + minor edits Aug 17, 2018
@jamesray1 jamesray1 changed the title [Work in progress] gossipsub + minor edits [Work in progress] Episub + minor edits Aug 17, 2018
@jamesray1 jamesray1 changed the title [Work in progress] Episub + minor edits [On ice] Episub + minor edits Aug 17, 2018
@jamesray1
Copy link
Contributor Author

jamesray1 commented Aug 17, 2018

Moved to #419.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants