Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1R1avO-0003LT-Ev for bitcoin-development@lists.sourceforge.net; Thu, 08 Sep 2011 09:29:34 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.220.175 as permitted sender) client-ip=209.85.220.175; envelope-from=mh.in.england@gmail.com; helo=mail-vx0-f175.google.com; Received: from mail-vx0-f175.google.com ([209.85.220.175]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1R1avK-0008WD-KF for bitcoin-development@lists.sourceforge.net; Thu, 08 Sep 2011 09:29:34 +0000 Received: by vxj12 with SMTP id 12so653931vxj.34 for ; Thu, 08 Sep 2011 02:29:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.52.38.99 with SMTP id f3mr436038vdk.392.1315474165150; Thu, 08 Sep 2011 02:29:25 -0700 (PDT) Sender: mh.in.england@gmail.com Received: by 10.52.157.228 with HTTP; Thu, 8 Sep 2011 02:29:25 -0700 (PDT) In-Reply-To: <4E6879B6.7090203@gmail.com> References: <4E6879B6.7090203@gmail.com> Date: Thu, 8 Sep 2011 11:29:25 +0200 X-Google-Sender-Auth: _R9xOzGG4ZyfE875ntoIAaRM1-8 Message-ID: From: Mike Hearn To: shadders.del@gmail.com Content-Type: multipart/alternative; boundary=bcaec51d27805334d304ac6ab234 X-Spam-Score: -0.7 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mh.in.england[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.0 T_TO_NO_BRKTS_FREEMAIL To: misformatted and free email service -0.2 AWL AWL: From: address is in the auto white-list X-Headers-End: 1R1avK-0008WD-KF Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] bitcoind multiplexing proxy - request/response routing problem X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Sep 2011 09:29:34 -0000 --bcaec51d27805334d304ac6ab234 Content-Type: text/plain; charset=UTF-8 It's probably best to keep this discussion on just one mailing list. It's confusing to have duplicate threads in different places. People will end up making the same points. To repeat what I posted elsewhere, for now I'd just start with the simplest possible approach: - Ignore version skew for now (disconnect older clients) - Don't send received transactions/blocks to the bitcoind. Let it hear about them from its own p2p connections. That way you will always receive all valid transactions/blocks which you can then relay/cache/drop inbound duplicates. - Parse/handle inv/getblocks/getheaders requests so clients that connect and catch up with the chain don't place any load on the bitcoind. If a client requests data the proxy doesn't have in RAM, it can go fetch it from the underlying bitcoind. If you can make v1 work and demonstrate actual scalability improvements, then you can always go back and make it smarter in v2. --bcaec51d27805334d304ac6ab234 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable It's probably best to keep this discussion on just one mailing list. It= 's confusing to have duplicate threads in different places. People will= end up making the same points.

To repeat what I posted elsewhe= re, for now I'd just start with the simplest possible approach:

- Ignore version skew for now (disconnect older clients= )

- Don't send received transactions/blocks to= the bitcoind. Let it hear about them from its own p2p connections. That wa= y you will always receive all valid transactions/blocks which you can then = relay/cache/drop inbound duplicates.

- Parse/handle inv/getblocks/getheaders requests so cli= ents that connect and catch up with the chain don't place any load on t= he bitcoind. If a client requests data the proxy doesn't have in RAM, i= t can go fetch it from the underlying bitcoind.

If you can make v1 work and demonstrate actual scalabil= ity improvements, then you can always go back and make it smarter in v2. --bcaec51d27805334d304ac6ab234--