Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B50AA9F0 for ; Wed, 29 Aug 2018 18:27:57 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from bitcoin.jonasschnelli.ch (bitcoinsrv.jonasschnelli.ch [138.201.55.219]) by smtp1.linuxfoundation.org (Postfix) with ESMTP id C620983B for ; Wed, 29 Aug 2018 18:27:56 +0000 (UTC) Received: by bitcoin.jonasschnelli.ch (Postfix, from userid 1002) id CE94E15E166D; Wed, 29 Aug 2018 20:27:55 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 Received: from [192.168.0.9] (cable-static-239-93.teleport.ch [213.188.239.93]) by bitcoin.jonasschnelli.ch (Postfix) with ESMTPSA id 7C70D15E1249; Wed, 29 Aug 2018 20:27:55 +0200 (CEST) From: Jonas Schnelli Message-Id: <4EC6599E-D317-4E4F-9E4D-37B7006B8C15@jonasschnelli.ch> Content-Type: multipart/signed; boundary="Apple-Mail=_B858A7CC-6506-4ABA-9631-E45965459875"; protocol="application/pgp-signature"; micalg=pgp-sha256 Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Date: Wed, 29 Aug 2018 20:27:51 +0200 In-Reply-To: <758E3CA7-295B-4B77-BFF5-9AAE959D53EA@voskuil.org> To: Eric Voskuil References: <8AE1517F-88FB-479D-AE89-993A5545D210@jonasschnelli.ch> <758E3CA7-295B-4B77-BFF5-9AAE959D53EA@voskuil.org> X-Mailer: Apple Mail (2.3445.9.1) X-Virus-Scanned: clamav-milter 0.100.1 at bitcoinsrv.jonasschnelli.ch X-Virus-Status: Clean X-Mailman-Approved-At: Thu, 30 Aug 2018 02:19:22 +0000 Cc: Bitcoin Protocol Discussion , Blockchain Group Subject: Re: [bitcoin-dev] Building a Bitcoin API and query system. X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Aug 2018 18:27:57 -0000 --Apple-Mail=_B858A7CC-6506-4ABA-9631-E45965459875 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > The API implementation is not what is centralizing, nor is full = indexation non-scalable. The centralization is in not running the API = from a node under your own control. This is of course implied by the = comment, =E2=80=9Cwithout the need for syncing=E2=80=9D. In other words = it is the deployment cost of the node that is centralizing. IMO an API that serves non verifiable data is supporting centralised = validation. The =E2=80=9EAPI" which supports one of the most important = properties in Bitcoin =E2=80=93 the ability to self-validate =E2=80=93 = is the data available via the p2p network. >=20 > Yet if people relied only on bitcoind and never centralized services = there would be *no* block explorers (and no secure light wallets), = because it does not provide remote query and does not fully index. >=20 > Block explorers and light wallets are pretty useful, so presumably = some API must provide these features (ideally with reduced deployment = cost). That will either be centralized or decentralized services. As = such it seems wise to encourage the latter, as opposed to questioning = whether there is any valid block explorer use case. Bitcoin-Core has all required features to partially =E2=80=9Eindex=E2=80=9C= data (called the wallet) and provides them via the RPC API. If you = don=E2=80=99t need to serve thousands of wallets (which smells after = centralised validation), selective indexing (wallets) are the right = choice. Also, if you have a proper light client architecture, you can = use Bitcoin Core in pruned mode (<10GB of data) to serve an endless = amount of wallets (client/server mode, I guess that is what you are = referring to with "light clients"). I fail to see the use-cases where a fully index blockchain makes sense = (the only one I can come up with is instant backup recovery where the = transaction history needs to be preserved rather then recovering the = UTXOs only). Also, the p2p protocol has built in light client support with BIP37 = (bloom filters) and soon BIP158 will be available on the network which = does allow privacy-preserving "light clients" in a way where no trusted = layer is required (client <-> p2p network rather then client <-> API = provider <-> p2p network). I don=E2=80=99t want to advocate against a full-index blockexplorer-like = API. I just think its important to define the use case and be aware of = the consequences and downsides. /jonas --Apple-Mail=_B858A7CC-6506-4ABA-9631-E45965459875 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEyhopCNzi8TB0xizeHrd2uwPHki0FAluG5acACgkQHrd2uwPH ki1OZQ/+J0lLwOj2uA4ecD6XKHGfyhsF+9owNKT0lG5FN/Y6b+eAABtS/7sf2meu sQomjswxPzVyBqHyrmicHWHrIynStchXVfV6MCzdwHdBthwOzS2+j4Udf48mT3IP +P+A3de2J6W1VMiv4yUTNOCRYej2gL8TOoUhJ0hM0W/w8prYPgXvmPDljXORKdN1 BTsHWLwy+SgcSuKRclMOvNj7y05J4t16fibgqNYfODgdt24XTNmJDGWMReRhk3p3 p+aIw3X+UImvfZfV8zLpg+g7JbIObPXUeQkHDYG8di8o8kpSogxkYlksjjzWKKqz +PpCNXzie9fl9StI89Ss1B1e5n+Crt8OQRGa0y05+HDAajhem9E/6i5+xAzB3Pl9 58OygDiSn241NnI4CPab/bDMXrFMSYsk3NIvqcO73yXN2cmS3OLHi079JxUSZ3YS jL54xJGftv4qCSIfNREXXiHrmXkQiy/lKopvCCdd0xTd3tIghJjZE6G2Fcczlz94 LL3T9cHjkVLDV1rP5yO2xUWvsiTP+OmdQBitPlE4xqOuzWjTlGbAmSHnbuvuaAMB 0jsgboCxDjBUTIoV6PB72mIycYg1XmvwmI0tCI7F4E07TD6+C5ryXgQhSsb3ZPhW bqfyjUgdZBIsLXE5vXwshwLRyaWlh8DcjAdQ+90HyNDZ8OS6VK4= =UoNw -----END PGP SIGNATURE----- --Apple-Mail=_B858A7CC-6506-4ABA-9631-E45965459875--