-
Notifications
You must be signed in to change notification settings - Fork 683
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
Make NAT traversal more user-friendly #567
Comments
What do you mean by "is a bit of a pain"? It should just work, unless your bootstrap nodes are behind routers. |
I think that was his problem, he probably wanted to create a network with his office hour participants. And all of them are probably behind some NAT. |
Yes, that is exactly what I meant. |
uPnP is great, but it is not always enabled, especially in corporate environments. Being able to use UDP hole punching, and falling back to using a public (Parity-provided?) STUN or TURN server, would be a much better option. |
To give some context:
|
How difficult would it be to switch to QUIC? That runs over UDP and just seems to be overall better. |
Attempts have been made. The difficulty is that at the moment QUIC kind of assumes TLSv3, but we don't want to depend on certificate authorities. |
Can we transmit something else in place of the certificates? My understanding is that TLS does not imply X.509, so we should be able to transmit anything we want in place of the certs. |
QUIC doesn't imply TLS either. |
* Removed non-required balance variable * Added reject message * removed require condition
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
FWIW, It's 5 years later, and I still can't easily start a blockchain network at a meetup or an online workshop because of this issue. I always need a bootnode on some centralized aws-like thing for the users to connect too. It isn't that hard to set up now that I have experience, but it really undermines the whole "decentralized" point. |
Yes :) I mean it is a nice to have and I get where you are coming from. If we follow this route, we could speak about discovering nodes via bluetooth, mesh networks and whatever. However, Substrate is currently not build with this in mind. For local area networks we have MDNS that works quite okayish. |
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* benchmarks for pallet_message_lane::receive_messages_proof * use CallOrigin::TargetAccount (worst case of CallOrigin) * fmt * closures * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/message-lane/src/benchmarking.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> * fix compilation Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
i think every node is equal to find and connect is the "decentralized" core, otherwise the whole web3 is built on a lie |
During office hours today, we (re) realized that getting nodes to connect from behind routers is a bit of a pain for a user who is just looking to join a network.
One option is to use upnp. I had a good experience with that at rchain (their upnp code)
@folsen mentioned there are other solutions too.
I don't have strong feelings about which solution we use, or that it has to happen fast, but it would be one fewer hurdle for beginner and intermediate users.
The text was updated successfully, but these errors were encountered: