BitTorrent is another open project that has overcome these kinds of problems.<div><br></div><div>Don&#39;t take this personally, I&#39;m just brainstorming, and this thread is the best place to do that.</div><div><br></div>

<div>So, running list of technologies that have overcome this problem:</div><div> - SIP</div><div> - IM file transfer</div><div> - BitTorrent</div><div><br></div><div>There&#39;s an article at The H about &quot;How Skype &amp; Co. Get Round Firewalls.&quot;</div>

<div><a href="http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html">http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html</a></div><div><br></div><div>It&#39;s on my reading list for this week.</div>

<div><br></div><div>I&#39;m fully aware of the blood and gore involved in ripping out a piece of code like this and replacing it. It&#39;s going to be ugly. I&#39;m just looking around for existing solutions. Brilliance does not reside in &quot;original solutions,&quot; but rather in employing &quot;the wheel&quot; in unexpected ways. Often, the best way to solve a difficult problem is not to pop open the hood and get elbow-deep in [code] yourself, but rather it is pointing the right person at the solution and letting them surprise you.</div>

<div><br></div><div>j<br clear="all">----<br>- Think carefully.<br>- Contra mundum - &quot;Against the world&quot; (St. Athanasius)<br>- Credo ut intelliga - &quot;I believe that I may know&quot; (St. Augustin of Hippo)<br>


<br><br><div class="gmail_quote">On Sat, Dec 19, 2009 at 3:25 PM, Zooko Wilcox-O&#39;Hearn <span dir="ltr">&lt;<a href="mailto:zooko@zooko.com">zooko@zooko.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

There are currently five tickets about making it easier for people to<br>
use Tahoe-LAFS through firewalls and NATs.  You can see them by gong<br>
to the ViewTickets page:<br>
<br>
<a href="http://allmydata.org/trac/tahoe/wiki/ViewTickets" target="_blank">http://allmydata.org/trac/tahoe/wiki/ViewTickets</a><br>
<br>
and scrolling down to the &quot;Keywords&quot; section and look for the keyword<br>
&quot;firewall&quot;.  They are these:<br>
<br>
<a href="http://allmydata.org/trac/tahoe/ticket/49#" target="_blank">http://allmydata.org/trac/tahoe/ticket/49#</a> UPnP<br>
<a href="http://allmydata.org/trac/tahoe/ticket/50#" target="_blank">http://allmydata.org/trac/tahoe/ticket/50#</a> STUNT/ICE<br>
<a href="http://allmydata.org/trac/tahoe/ticket/169#" target="_blank">http://allmydata.org/trac/tahoe/ticket/169#</a> tcp hole-punching!<br>
<a href="http://allmydata.org/trac/tahoe/ticket/445#" target="_blank">http://allmydata.org/trac/tahoe/ticket/445#</a> implement relay: allow<br>
storage servers behind NAT<br>
<a href="http://allmydata.org/trac/tahoe/ticket/754#" target="_blank">http://allmydata.org/trac/tahoe/ticket/754#</a> merge manually specified<br>
tub location with autodetected tub location<br>
<br>
There are some interesting things in some of these!  In #49 Shawn<br>
Willden did a quick experiment (sort of what Extreme Programming<br>
calls a &quot;spike&quot;) with miniupnp that was promising.  In #169 Greg<br>
Hazel offered some Python code to integrate TCP hole-punching magic<br>
right into the Python sockets.<br>
<br>
My personal favorite approach right now is the extend the helper to<br>
do immutable download, mutable upload, and mutable download and then<br>
treat the helper as the preferred solution for this problem.<br>
However, like Shawn, I am not volunteering to work on this right<br>
now.  (If you want to know what I&#39;m volunteering to work on right now<br>
search for tickets that I&#39;ve accepted.  I&#39;m mostly trying to finish<br>
#778 and other tickets that I consider essential for v1.6, plus fix<br>
up buildbots and other testing or quality control issues that I<br>
consider essential for v1.6.)<br>
<br>
Regards,<br>
<font color="#888888"><br>
Zooko<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
tahoe-dev mailing list<br>
<a href="mailto:tahoe-dev@allmydata.org">tahoe-dev@allmydata.org</a><br>
<a href="http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev" target="_blank">http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev</a><br>
</div></div></blockquote></div><br></div>