Comments (8)
@lbordino (the friend)
from go-libp2p-examples.
@bigs Any suggestion?
from go-libp2p-examples.
@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.
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.
@bigs However I hope that this library works with NAT too, as it handles hole-punching (#4)
from go-libp2p-examples.
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.
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.
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)
- pubsub\chat example - Can't see others clients messages HOT 1
- Relay Example error HOT 2
- pubsub chat example datarace
- how to init RendezvousString in chat-with-rendezvous? HOT 2
- How do I keep nodeID unchanged every time I start it HOT 4
- Does libP2P support authentication? HOT 1
- How can i make other peers persist when another peer disconnects HOT 2
- An Error in Echo client/server with libp2p
- Dependencies out of date
- Automated testing
- How can I help PRs get merged? HOT 2
- chat-with-rendezvous doesn't work: dht failed to query self during routing table refresh HOT 3
- Add Example on configuring and using AutoRelay
- Add example to show how to configure AutoNAT client and how it discovers reachability
- go-libp2p-autonat-svc deprecated
- libp2p-host example missing _peer import
- Should I openStream every time like multipro did
- Errors with simple libp2p HOT 1
- routed-echo example: invalid character '-' after top-level value
- Modifying http_proxy/proxy.go to make the remote proxy to act as an egress gateway to connect to a non-p2p real server. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-libp2p-examples.