Bitcoin Forum
May 06, 2024, 12:35:16 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Who can spare some boxes for testing NAT traversal code?  (Read 767 times)
@Blockpair (OP)
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
August 03, 2014, 11:51:34 AM
Last edit: August 03, 2014, 12:03:05 PM by @Blockpair
 #1

Plz read whole thread.

I'm coding my own peer to peer network and I've noticed there aren't any good libraries for the most simple tasks. What I mean by simple tasks is getting two peers to find each other and to reliably connect. This isn't as simple as it sounds because most peers are behind a router that does NAT and this means you need to do port forwarding to accept inbound connections, which frankly isn't a solution for the average user.

So what I'm doing at the moment is writing cross-platform Python code which uses a number of techniques to connect two peers. I've already written a simple class to forward arbitrary ports with UPnP - all automated with no outside dependencies. My class is a single module that works like this: UPnP().forward_port("TCP", 15666, "192.168.0.5") - (specify destination port as the forth param if its different from source) - it couldn't be easier.  I'm also including code for NAT-PMP which can be used for port forwarding by some routers that don't support UPnP. Finally, I'd like to be able to create a simple implementation of TCP hole punching for developers that works cross-platform and is properly documented. This technique has been well documented in academic papers and RFCs, but has yet to be widely used in software.

The reason I started this thread is because I need boxes to test my code. NAT traversal code by definition requires more than one peer behind a NAT and I only have access to my home connection. Even with multiple servers I cannot easily simulate the diverse NAT environments that will be in use in the wild (or ensure it even works when it comes to the real thing.) So I'm asking if anyone can contribute a spare box behind a NAT so I can work on the code. I only need access to a shell behind a NAT (any NAT / router - the more, the merrier) and I can do the work. If trust is an issue, feel free to cut off anything I don't need and heavily monitor the box.

Why should I help?

If I'm successful, this work may have implications for improving the connectivity in Bitcoin as well as in peer to peer networks in general. Not to mention developers will get a simple library for writing peer to peer programs, with the potential of ports to other languages and (possibly) the eventual inclusion in Bitcoin Core (assuming core devs think it's a good idea.)

Exceeding too long; I have declined to read further

Writing open source library in Python for simplifying peer to peer connectivity, and I need boxes for testing. If anyone wants to help then please keep this thread bumped and/or message me with node details.
1714998916
Hero Member
*
Offline Offline

Posts: 1714998916

View Profile Personal Message (Offline)

Ignore
1714998916
Reply with quote  #2

1714998916
Report to moderator
1714998916
Hero Member
*
Offline Offline

Posts: 1714998916

View Profile Personal Message (Offline)

Ignore
1714998916
Reply with quote  #2

1714998916
Report to moderator
1714998916
Hero Member
*
Offline Offline

Posts: 1714998916

View Profile Personal Message (Offline)

Ignore
1714998916
Reply with quote  #2

1714998916
Report to moderator
"I'm sure that in 20 years there will either be very large transaction volume or no volume." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714998916
Hero Member
*
Offline Offline

Posts: 1714998916

View Profile Personal Message (Offline)

Ignore
1714998916
Reply with quote  #2

1714998916
Report to moderator
1714998916
Hero Member
*
Offline Offline

Posts: 1714998916

View Profile Personal Message (Offline)

Ignore
1714998916
Reply with quote  #2

1714998916
Report to moderator
1714998916
Hero Member
*
Offline Offline

Posts: 1714998916

View Profile Personal Message (Offline)

Ignore
1714998916
Reply with quote  #2

1714998916
Report to moderator
rarkenin
Hero Member
*****
Offline Offline

Activity: 784
Merit: 500



View Profile
August 05, 2014, 12:23:41 AM
 #2

I have a home machine behind a NAT I can spare at least some of the time (although it is on a dynamic IP, and not guaranteed up 24/7). I am willing to run a python script after inspecting it for security flaws, have it log results to a file somewhere, and then send you the contents of that log.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!