Return-Path: Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 38298C000A for ; Fri, 9 Apr 2021 10:44:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 113168403B for ; Fri, 9 Apr 2021 10:44:53 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -1.497 X-Spam-Level: X-Spam-Status: No, score=-1.497 tagged_above=-999 required=5 tests=[BAYES_50=0.8, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QNSR2ZkRJo7z for ; Fri, 9 Apr 2021 10:44:51 +0000 (UTC) X-Greylist: delayed 00:06:33 by SQLgrey-1.8.0 Received: from vm6.ganeti.dyne.org (vm6.ganeti.dyne.org [195.169.149.119]) by smtp1.osuosl.org (Postfix) with ESMTPS id A5DE384035 for ; Fri, 9 Apr 2021 10:44:51 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: parazyd@dyne.org) with ESMTPSA id 24BC6F609F5 Date: Fri, 09 Apr 2021 12:23:27 +0200 From: Ivan J. To: libbitcoin@lists.dyne.org Message-ID: <20210409122327.GA8443@fq> User-Agent: rp MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Fri, 09 Apr 2021 11:21:05 +0000 Cc: unsystem@lists.dyne.org, bitcoin-dev@lists.linuxfoundation.org Subject: [bitcoin-dev] An Electrum server using libbitcoin X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2021 10:44:53 -0000 Hi. I've been working on an Electrum server implementation that uses zmq and libbitcoin as its backend. I wanted to use the Electrum wallet with my libbitcoin server and this makes it possible now with (unfinished) libbitcoin v4. The code is here: https://github.com/parazyd/obelisk (Yes, it's named Obelisk because of historical reasons :p) As the Electrum/ElectrumX protocol is getting some new stuff in protocol version 1.5, I will keep tracking the protocol and implement it in Obelisk as it comes. Eventually, the end-goal is to merge Obelisk into Electrum and simply use libbitcoin public (or self-hosted) servers directly, without the need of a boilerplate protocol/server between a client and a daemon. In current Electrum git, this seems relatively simple to do (and I personally already have done about 70% of it on my local code repository), but the problem is that it's a breaking change and replaces the old protocol, which invalidates all old servers if/when this change happens. However, I don't doubt that removing the boilerplate and querying a libbitcoin server directly is a bad idea at all. I'll see if I can make upstream progress on this once I get feedback. In general, regarding Obelisk I'd appreciate some feedback, review, and a bit of help with certain TODOs in the code. The entire codebase is around 1000 lines of Python 3 with no external dependecies besides pyzmq. Thanks, Ivan