Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 5CE2AE3E for ; Thu, 5 Jul 2018 21:35:55 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-qk0-f182.google.com (mail-qk0-f182.google.com [209.85.220.182]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 999A1762 for ; Thu, 5 Jul 2018 21:35:54 +0000 (UTC) Received: by mail-qk0-f182.google.com with SMTP id v17-v6so2843268qkb.11 for ; Thu, 05 Jul 2018 14:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=5DU3G0H9bW3Kn5iFsHQjy69Bpj+RdyDV7C7J31jasoM=; b=j1nXacsgiMkI+Qg5lPi2JDYZMj0vXv/4yakLB1PbdXHnEPFwqcmjCV219gDVdtJXFE 8de7qUEjoVpYneNYSpWUeg8r4m/r9bn3AIyjblQer6pEieKoR73GFKdg9t87MDHBrtCX MV1CCYV0TxysobeO8M64YDksl7xmoBYma6OX8CUyXlcKE7e4OUZwfk3sONwczxRAEEJY HFuSNtLt4bI/02b3A/oENGOjdycV1cnuOFBbwbqjI+NlgcVB42PvolTJEGgT1QIZqvYL auZywWMdzr/thlZcQ4+5yCgAvqsuBPFyjTolBeW4S8fZ8D8VBqxpCwlh/JRBLXiYyRT1 2M0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=5DU3G0H9bW3Kn5iFsHQjy69Bpj+RdyDV7C7J31jasoM=; b=VJX8gZnZQcwwj8RWy8Eidf0QpOsQqAXM4ol+4+PZBJoS4waJTTbd8Hh88HNPtvxAzR ee32fDhwrExL0f03S4sroUvAaFX3CDPxl7OetdWBCdQXi93D99CMzouoIeOPzdiz+X2S eNDspAiy7wa+EoNIk2rhp/U+xInEmNjsN0Ovs+ZLyKQ19mo1hLLwoa+5ktL/eXTd+Q0p KJy/b7X4eRC4WKAWP6BTQhmBa3T59+Q/AfojcktLdvVIBPr5NTGhOCIEvuIgR8zyoJu5 Dvjd2JhgUxad8pSpURCnRjiroO42djZ89j47wM9sd7glG0vx1UnxdW8nVorEUQYK0GzF MdLQ== X-Gm-Message-State: APt69E2yg6tA1a9iULW0nzrTc+QjkVChVdcZW1aDNiPG/4jbxUo6Hj7t /LQYnX5Ow9A7gzr/gqCYYqPRmPtwkMtApUcrrmjotQ== X-Google-Smtp-Source: AAOMgpdBKCugjLo3l2qQYkFkNt2rmkGzOKPxhXvDxPn4bjdCKGkjtwsseG49UqLXE8RAd1kshojdMhoaTyujZ58rGI0= X-Received: by 2002:a37:ddd5:: with SMTP id u82-v6mr6524044qku.420.1530826553572; Thu, 05 Jul 2018 14:35:53 -0700 (PDT) MIME-Version: 1.0 References: <1530561781.1478095.1427741280.5FDF82CB@webmail.messagingengine.com> In-Reply-To: <1530561781.1478095.1427741280.5FDF82CB@webmail.messagingengine.com> From: Jim Posen Date: Thu, 5 Jul 2018 14:35:39 -0700 Message-ID: To: me@romanzey.de, Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="000000000000f041e505704754a1" X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Fri, 06 Jul 2018 18:31:18 +0000 Subject: Re: [bitcoin-dev] An efficient re-implementation of Electrum Server in Rust 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: Thu, 05 Jul 2018 21:35:55 -0000 --000000000000f041e505704754a1 Content-Type: text/plain; charset="UTF-8" This is awesome, nice work! On Mon, Jul 2, 2018 at 4:16 PM Roman Zeyde via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > Hello all, > > I was working on this project for the last few months, so a user could run > his own Electrum server, with required hardware resources not much beyond > those of a full node (using ideas from ElectrumX [1], Electrum Personal > Server [2] and bitcoincore-indexd [3]). > > The code and usage instructions can be found here: > https://github.com/romanz/electrs > > The server indexes the entire Bitcoin blockchain, and the resulting index > [4] enables fast queries for any given user wallet, allowing the user to > keep real-time track of his balances and his transaction history using the > Electrum wallet [5]. > Since it runs on the user's own machine, there is no need for the wallet > to communicate with external Electrum servers, thus preserving the privacy > of the user's addresses and balances. > > Features: > * Supports latest Electrum protocol [6]. > * Maintains an index of transaction inputs and outputs, allowing fast > balance queries > * Fast synchronization of the Bitcoin blockchain (~2.5 hours for ~185GB @ > June 2018) on modest hardware [7] > * Low CPU & memory usage (after initial indexing) > * Low index storage overhead (~20%), relying on a local full node for > transaction retrieval > * Efficient mempool tracker allowing better fee estimation [8]. > * `-txindex` is not required for the Bitcoin node > * Uses `rust-bitcoin` library [9] for efficient > serialization/deserialization of Bitcoin transactions > * Uses a single RocksDB [10] database, for better consistency and crash > recovery > > Hope you'll find it useful :) > Questions, suggestions and pull requests are welcome! > > [1] https://github.com/kyuupichan/electrumx > [2] https://github.com/chris-belcher/electrum-personal-server > [3] https://github.com/jonasschnelli/bitcoincore-indexd > [4] https://github.com/romanz/electrs/blob/master/doc/schema.md > [5] https://electrum.org > [6] https://electrumx.readthedocs.io/en/latest/protocol.html > [7] https://gist.github.com/romanz/cd9324474de0c2f121198afe3d063548 > [8] > https://github.com/spesmilo/electrum/blob/59c1d03f018026ac301c4e74facfc64da8ae4708/RELEASE-NOTES#L34-L46 > ) > [9] https://github.com/rust-bitcoin/rust-bitcoin > [10] https://github.com/spacejam/rust-rocksdb > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > --000000000000f041e505704754a1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This is awesome, nice work!

On Mon, Jul 2, 2018 at 4:16 PM Roman Zeyde via b= itcoin-dev <bit= coin-dev@lists.linuxfoundation.org> wrote:
Hello all,

I was working on this project for the last few months, so a user could run = his own Electrum server, with required hardware resources not much beyond t= hose of a full node (using ideas from ElectrumX [1], Electrum Personal Serv= er [2] and bitcoincore-indexd [3]).

The code and usage instructions can be found here:
https://github.com/romanz/electrs

The server indexes the entire Bitcoin blockchain, and the resulting index [= 4] enables fast queries for any given user wallet, allowing the user to kee= p real-time track of his balances and his transaction history using the Ele= ctrum wallet [5].
Since it runs on the user's own machine, there is no need for the walle= t to communicate with external Electrum servers, thus preserving the privac= y of the user's addresses and balances.

Features:
=C2=A0* Supports latest Electrum protocol [6].
=C2=A0* Maintains an index of transaction inputs and outputs, allowing fast= balance queries
=C2=A0* Fast synchronization of the Bitcoin blockchain (~2.5 hours for ~185= GB @ June 2018) on modest hardware [7]
=C2=A0* Low CPU & memory usage (after initial indexing)
=C2=A0* Low index storage overhead (~20%), relying on a local full node for= transaction retrieval
=C2=A0* Efficient mempool tracker allowing better fee estimation [8].
=C2=A0* `-txindex` is not required for the Bitcoin node
=C2=A0* Uses `rust-bitcoin` library [9] for efficient serialization/deseria= lization of Bitcoin transactions
=C2=A0* Uses a single RocksDB [10] database, for better consistency and cra= sh recovery

Hope you'll find it useful :)
Questions, suggestions and pull requests are welcome!

[1] https://github.com/kyuupichan/electrumx
[2] https://github.com/chris-belcher/electr= um-personal-server
[3] https://github.com/jonasschnelli/bitcoincore-= indexd
[4] https://github.com/romanz/electrs/blo= b/master/doc/schema.md
[5] h= ttps://electrum.org
[6] https://electrumx.readthedocs.io/en/late= st/protocol.html
[7] https://gist.github.com/romanz/cd= 9324474de0c2f121198afe3d063548
[8] https://github.com/spesmilo/electrum/blob/59c1d03f018026ac301c4e74f= acfc64da8ae4708/RELEASE-NOTES#L34-L46)
[9] https://github.com/rust-bitcoin/rust-bitcoin
[10] https://github.com/spacejam/rust-rocksdb
_______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev
--000000000000f041e505704754a1--