GithubHelp home page GithubHelp logo

Comments (8)

cfvescovo avatar cfvescovo commented on August 25, 2024 2

@lbordino (the friend)

from go-libp2p-examples.

cfvescovo avatar cfvescovo commented on August 25, 2024

@bigs Any suggestion?

from go-libp2p-examples.

bigs avatar bigs commented on August 25, 2024

@BaldEagleX02 Are either of you behind NAT? If so, you won't be able to get a connection between the two of you. I'd recommend passing in an explicit listen address, enabling port-forwarding in your router, and trying again. Keep in mind that DHT-based discovery can take some time to kick in. You'll know you've successfully found each other when you see a print message from this line.

from go-libp2p-examples.

cfvescovo avatar cfvescovo commented on August 25, 2024

I modified the log level to debug and then I saw that we discovered each other (after the program printed "Searching for peers..." I saw "Found another peer" or something similar).
We aren't behind NAT as we have static public IPs from our provider.
We tried with ports opened but it didn't work.
We haven't tried with the listen option yet.

from go-libp2p-examples.

cfvescovo avatar cfvescovo commented on August 25, 2024

@bigs However I hope that this library works with NAT too, as it handles hole-punching (#4)

from go-libp2p-examples.

cfvescovo avatar cfvescovo commented on August 25, 2024

It works with UPnP (A client behind NAT and B client with static IP and UPnP).
However, it doesn't work with both clients behind NAT and/or ports closed

from go-libp2p-examples.

bigs avatar bigs commented on August 25, 2024

Given the configuration of that specific example, you'll have to set the listen option to reflect your public IP and an accessible port. Another approach would be to enable port mapping via the NATPortMap option in the call to libp2p.New.

Edit: To clarify, since your libp2p node doesn't know that it's publicly dialable, it won't publish any addresses to the rendezvous point.

from go-libp2p-examples.

cfvescovo avatar cfvescovo commented on August 25, 2024

Yeah, in fact this example works very well with UPnP enabled (router and program) but if I am behind NAT (e.g. a mobile connection) I don't know any accessible port. I have to use hole punching to know at least one and I was wondering if it will be implemented in this library. Obviously it would require a server. Take a look at this example: https://github.com/wilfreddenton/udp-hole-punching
It seems very well structured and, as its name suggests, implements hole punching.

Thank you for your support!

from go-libp2p-examples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.