Our Open Source Contributions
By: Lucas Betschart
Tags: Feathercoin, Cryptocurrency, Bitcoin, Open Source, Free Software

Let me start telling you about one of the crypto currency world’s best kept open secret and most advanced Bitcoin software: libbitcoin.

Libbitcoin was started by Amir Taaki as the first reimplementation of the Bitcoin protocol. Nowadays, it’s maintained by serial entrepreneur Eric Voskuil, who developed it into a full fledged Bitcoin development ecosystem with software libraries, the most advanced command line tool to do anything Bitcoin related, a standalone full node as Bitcoin Core alternative as well as a high performance blockchain query server.

“Libbitcoin is a multipurpose bitcoin library targeted towards high end use. An ideal backend to build fast implementations on top: mobile apps, desktop clients and server API’s. The library places a heavy focus around asychronicity, speed and availability.” — libbitcoin.org

Especially the blockchain query server libbitcoin-server (or bs) is extremely valuable for the ecosystem: many wallets and other services either use slow, outdated JavaScript-based implementations or, even worse, centralised closed source APIs from service providers. Using a centralised API to build your application means trusting a 3rd party with the privacy of your users as well as having the risk that it might get shutdown any time on no or very short notice (something that happened before).

We plan to use libbitcoin-server as our node and backend for all our apps and services. Talking with Eric about our plans, he immediately suggested to make all of libbitcoin coin-agnostic, so Feathercoin and Bitcoin can equally benefit from the improvements developers are making. This means to have all the Feathercoin specifics as part of the runtime settings. The end result is having one source code base, one development community and even only one binary for Bitcoin, Feathercoin, Litecoin and other cryptocurrencies (if someone is willing to do the little implementation work that is needed). This is certainly a goal we consider worth working on.

Electrum

Another critical piece of software for the Bitcoin ecosystem is the Electrum wallet. Electrum is the number one desktop wallet with all features one can possibly imagine (SPV, HW wallet support, multi-signature, replace-by-fee, etc), so it was an obvious choice for us to make it also available for Feathercoin.

Yet, we have bigger plans for Electrum: We are working on a new desktop wallet called Swan, which uses Electrum as basis. With Swan, we are creating a more user- & beginner friendly desktop wallet for Bitcoin and Feathercoin built on a stable, battle-tested source. Just as with libbitcoin, we plan to not diverge from upstream and contribute most of our work and improvements directly to Electrum itself and have only our own, frontend specific changes in our repository.

A small teaser from our designer Frederic Berghmans

One of our first big contributions to the ecosystem is combining those two great software pieces: we are implementing libbitcoin-server as a backend option in Electrum. To achieve this goal, we’ve already implemented a Python library, pylibbitcoin, which talks to libbitcoin-server. This library can be used by anyone, is not depending on Electrum or libbitcoin source code and is fully open source. Right now, we are working on integrating it into Electrum and while doing so, our developer Harm also refactored the full networking module of Electrum.

Some might not like it but this shows that (Bitcoin-based) Altcoins can contribute to Bitcoin ecosystem development.

We see ourselves as part of the greater Bitcoin development ecosystem. We always try to contribute and work upstream instead of reinventing the wheel, which benefits all Bitcoin-based cryptocurrencies. We do that already with libbitcoin and Electrum and plan to contribute to more open source projects in the future.