Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1SAaVX-0001S0-OS for bitcoin-development@lists.sourceforge.net; Thu, 22 Mar 2012 05:24:19 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of bluematt.me designates 173.246.101.161 as permitted sender) client-ip=173.246.101.161; envelope-from=bitcoin-list@bluematt.me; helo=mail.bluematt.me; Received: from vps.bluematt.me ([173.246.101.161] helo=mail.bluematt.me) by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1SAaVW-0000rh-KE for bitcoin-development@lists.sourceforge.net; Thu, 22 Mar 2012 05:24:19 +0000 Received: from [152.23.98.43] (dhcp04615.highsouth-resnet.unc.edu [152.23.98.43]) by mail.bluematt.me (Postfix) with ESMTPSA id 1D53A317C for ; Thu, 22 Mar 2012 05:21:40 +0000 (UTC) From: Matt Corallo To: bitcoin-development@lists.sourceforge.net In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Date: Thu, 22 Mar 2012 01:24:11 -0400 Message-ID: <1332393851.10496.11.camel@BMThinkPad.lan.bluematt.me> Mime-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Spam-Score: -1.1 (-) 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.4 NO_DNS_FOR_FROM DNS: Envelope sender has no MX or A DNS records -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_PASS SPF: sender matches SPF record X-Headers-End: 1SAaVW-0000rh-KE Subject: Re: [Bitcoin-development] Adding callback hooks to the satoshi client 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, 22 Mar 2012 05:24:19 -0000 I spent some time changing the internal bitcoin code to use callback hooks, but its far from complete (or even really usable from anything other than the code in the satoshi client itself, it doesnt even have any deregister methods!). As it sits now, it is likely to get more eyeballs and merged for 0.7. If you need additional specific callbacks, adding them would be cool, though I wouldn't recommend relying on the blockstore API to remain even remotely stable for the foreseeable future. https://github.com/bitcoin/bitcoin/pull/771 Matt On Wed, 2012-03-21 at 22:13 -0700, Eric Lombrozo wrote: > Hey, guys. > > I've been writing a number of apps that require realtime event > notifications, where the JSON-RPC API clearly doesn't suffice. > > There are two approaches I've been taking to this end: > > 1) Writing my own library for dealing with raw bitcoin structures and > connecting to bitcoin nodes via the bitcoin protocol. > 2) Making custom builds of the satoshi client putting callback hooks > in key points. > > Neither of these two approaches is ideal. (1) involves a lot of code > duplication, (2) involves patching the satoshi client source > each time I grab a later version, with the everpresent risk of > something breaking and the need to continue maintaining these patches. > Moreover, unfortunately many of these key points happen to be in files > like main.cpp which see frequent changes. > > I would like to propose adding these callback hooks to the main > branch. I am willing to help locate these key points, reorganize the > code > to place these methods in separate source files, define a callback > mechanism, and contribute source code. > > -Eric Lombrozo