Skip to content

DHTs and NATs #53

@gavinmcdermott

Description

@gavinmcdermott

Hey @diasdavid,

With some of the advances we've made on Nomad, @ReidWilliams and I now have a couple specific questions regarding libp2p for our next steps / where we might contribute.

Relevant Background & State

We are almost wrapped up porting Nomad over to a js-only package (the pure-js branch is here). Our intent / end goal is for Nomad to run in the browser, connect to peers, receive messages and the like without reliance on anything outside of what IPFS / libp2p / nomad provides.

Our browser bundle builds, and as we're now looking to expose more folks to this ecosystem, one of the on-ramps is to use it as a rapid prototyping tool (been doing this already within IDEO). So to meet the goal mentioned above we're taking a couple of steps to shim the js-only module.

And this is where we have questions...

Question: DHT

Because the DHT is not yet implemented in js-land, we are adding dht-shim. Basically this is a simple server, store, and utils (only for use at this early stage) that take care of connecting peers.

I know the DHT has been on the roadmap and in the conversation for a while (also saw the recent question on it here). So with the above in mind, we're curious as to:

  • How far off it might be (I saw work started on the DHT here)?
  • Is this possibly an area where contribution is needed?

Question: Peers behind NATs

When it comes to peers behind NATs, it would be great to avoid reliance on a central signaling server (Note: the optionality of setting up your own signaling server is far better than not being able to participate). We were about to add the webrtc-star transport, but before we did this, we wanted to check in with you to see:

  • Are there any initiatives that we've missed in the community to help with connecting peers behind NATs?
  • Are there any libraries that you're aware of that might help with this? (E.g.: perhaps there's an interesting project you know of and you're awaiting someone to implement the transport)
  • Is the above-mentioned goal feasible?

Goal

Our goal is to keep moving things forward, and to continue learning by having people build :) Once we have a better understanding of the above areas, we'll get the next steps out for review!

Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions