This isn't unique to Ethereum per se, but I'm curious how p2p clients (e.g. geth) allow peers to receive messages from the outside world with default router configurations. I have tried running the tests in this NAT port mapping module, but I believe they are failing because my router is not configured for port mapping.

So if routers don't allow port mapping by default, how do peers exchange data? Would a peer connect to a bootstrap node, who would read that peer's externally facing IP/port and then send a message with that information?

Where is this process captured in an Ethereum client? I would prefer if you could show it in a python or javascript client/library (since I can read those more easily), but geth is okay too.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.