Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 20757 invoked from network); 7 Mar 2009 10:43:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 7 Mar 2009 10:43:02 -0000 Received: (qmail 89583 invoked by uid 500); 7 Mar 2009 10:43:00 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 89236 invoked by uid 500); 7 Mar 2009 10:42:58 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 89225 invoked by uid 99); 7 Mar 2009 10:42:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 07 Mar 2009 02:42:58 -0800 X-ASF-Spam-Status: No, hits=2.4 required=10.0 tests=FS_REPLICA,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [83.97.50.139] (HELO jan.prima.de) (83.97.50.139) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 07 Mar 2009 10:42:48 +0000 Received: from [10.0.1.6] (e178247183.adsl.alicedsl.de [::ffff:85.178.247.183]) (AUTH: LOGIN jan, TLS: TLSv1/SSLv3,128bits,AES128-SHA) by jan.prima.de with esmtp; Sat, 07 Mar 2009 10:42:27 +0000 Message-Id: <682AC08E-95FF-4847-9373-CF9268AE0323@apache.org> From: Jan Lehnardt To: user@couchdb.apache.org In-Reply-To: <56a83cd00903070221h407c4478oa32a053741d149fb@mail.gmail.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: Peer to peer replication Date: Sat, 7 Mar 2009 11:41:55 +0100 References: <56a83cd00903070158yb0eac89xaa433c6f120ee667@mail.gmail.com> <6B20EBBA-8AB4-4D1A-93A2-90A1FAFBCEEC@apache.org> <56a83cd00903070221h407c4478oa32a053741d149fb@mail.gmail.com> X-Mailer: Apple Mail (2.930.3) X-Virus-Checked: Checked by ClamAV on apache.org On 7 Mar 2009, at 11:21, David Van Couvering wrote: >> - What protocol is used for replication across nodes? I'm assuming >> it's >>> HTTP but just checking. In a peer-to-peer system, this sounds >>> like it >>> means >>> that each participant has to open up their HTTP port for >>> replication to >>> work. Is that correct? >> >> Yes. > > Hm. I am concerned that your Average Joe does not like the idea of > opening > up their HTTP port, and probably doesn't know how to. Folks used to > hacking > with BitTorrent maybe, but that's not the target user I was really > considering. > > I was thinking of maybe piggybacking replication messages on a > protocol that > already supports push over the Internet and works for most users - > like > XMPP. > > But I'm not an expert in network protocols/security, and before I > jump into > that, I am wondering if there are simpler solutions so that it's > Very Easy > for Mr. Average Joe or Jill to install a CouchDB app where peer-to- > peer > replication Just Works. This an open issue, you're right. I don't think the protocol matters as much. The "common trick" is to setup an intermediate server machine that all peers can push to and pull from (replication is both, push and pull). I don't think XMPP magically opens ports for users :) That said, there are a couple ways around this problem and the best is to combine them all which I believe is what Skype does which in my experience works quite well in this regard. [And then I start writing about the technique and when I was looking for references, I found these, so I just give you the links and spare you my ramblings :)] http://www.h-online.com/security/How-Skype-Co-get-round-firewalls--/features/82481 http://sebsauvage.net/punching/ Searching for "firewall punching" gives you some more resources. Cheers Jan --