Weekly musing #13 - It's out!

First release of Bitcoin ABC

An initial version of Bitcoin ABC has been released on Jul 1 2017. Binaries and links to sources and spec can be found at https://www.bitcoinabc.org .

Of course you can now obtain the sources directly from Github too.

Linux, OSX and Windows Binaries for this version have been built by deadalnix and myself using gitian (reproducible builds).

I confirm that the checksums of my build products matched the ones he obtained. Here is a signed copy of my checksums:

-----BEGIN BITCOIN SIGNED MESSAGE-----
Comment: Signed by Bitcoin Armory v0.93.2

79be8529ce0101e2fae0166e7393c6aa65f7aab90c8d4717b686a78380df3e86  bitcoin-0.14.1-aarch64-linux-gnu-debug.tar.gz
6790918f08498329840797377e6d651c9d0f65d605949e44b6d838266c664e00  bitcoin-0.14.1-aarch64-linux-gnu.tar.gz
cf2acfeef0d420ef4d669c61cf38bbde1743dc0b2ebd6ac7fce3becdad74707d  bitcoin-0.14.1-arm-linux-gnueabihf-debug.tar.gz
376ad362158c699888a6b6f0454a89ebb3d90cfd4cedafe8c82b166bfa25957f  bitcoin-0.14.1-arm-linux-gnueabihf.tar.gz
b8addcb9999c66eeac03d526b479400ad7a2772014b8fcdcb3b44e624d3f4e5d  bitcoin-0.14.1-i686-pc-linux-gnu-debug.tar.gz
3186eee56bf64744e0ad087421fccf45c1cf055f70e3be54508d02ea2b50ea75  bitcoin-0.14.1-i686-pc-linux-gnu.tar.gz
2f4d12cef272d55fcd615799ba144b93bec9e2c08dfd30b79bd1af05a3b0a1bd  bitcoin-0.14.1-osx64.tar.gz
7d4eda15720bf096efb846a5865637a4c1632c4b110ab4c55970dd89bd267476  bitcoin-0.14.1-osx-unsigned.dmg
43af408ed42edb3b6f5706c6d9e931e0a1cbfb02fc247d058cdf4ddc6d0312dc  bitcoin-0.14.1-osx-unsigned.tar.gz
1ec5889f7f5fc0f66375251c2e991e82dce50a878bd8486c772d3a0ff2879c4f  bitcoin-0.14.1-win32-debug.zip
2ffd922716e2ffceee375b921d97cb5bab9a5f878f0307cb8d9993e39c9c0768  bitcoin-0.14.1-win32-setup-unsigned.exe
fec7a8e6df9f23642582aaddfa5fb5f92d4ce3ecb7210faa2e87129d89b7c980  bitcoin-0.14.1-win32.zip
9b286ff3ea14f50150153fccdd872da3acd422597051e61de2a0694bf485c7c6  bitcoin-0.14.1-win64-debug.zip
a028e054457fe8813551f03ed8cf0f7d9e545ee63946cb6997c38e0a9964a018  bitcoin-0.14.1-win64-setup-unsigned.exe
7511c83c322231d262d853bd5eaeef2f38f30340b11e7c956d50e3e08e30ae23  bitcoin-0.14.1-win64.zip
8a543285d3b6059de42d0d0cdd9c6dcb14b0ff3c1833e8cfc5fb1ba9a61ab3d3  bitcoin-0.14.1-win-unsigned.tar.gz
9cefef14e3064f9e108b2ad7f19427256d124b6bcbb308619f0d401b17acd963  bitcoin-0.14.1-x86_64-linux-gnu-debug.tar.gz
5e515896efbc2d6f639330146be61fea1ca62913648108d47190c987e539c7af  bitcoin-0.14.1-x86_64-linux-gnu.tar.gz
cc6043a53ad4cad5b14a7c9aff3973e5036232da456b572a948d083531069d36  src/bitcoin-0.14.1.tar.gz

-----BEGIN BITCOIN SIGNATURE-----


G3X6BwOjDfo603eICsx+ovubAmAyto1lH3SVr3YeKjHRfiYN0j+QqBiA0af5BRZK
Howxon69EQ994nVq/LyifQI=
=7GT/
-----END BITCOIN SIGNATURE-----

As you can see, the names of the build products are still using just 'bitcoin' . To avoid confusion, maybe it is better to rename them to 'bitcoinabc' in future.

Although I had set up my gitian build environment on a fast native machine (not a virtual machine), I was surprised at how long the build actually took. It was still a multi-hour process to get all binaries out, but building natively made a big difference compared to my previous gitian builds for BU.

I came across a couple of snags following the "official" gitian build instructions. At a later stage I will make a separate post about how to configure Gitian natively and using LXC, as that is not well described. The last obstacle was my machine's firewall (isn't it always :-) )

Code comparison to Core 0.14.1

In order to make it easier for interested persons to review the ABC diff, I created a reformatted branch of the original Core code on which ABC was developed. Only the files that ABC also modified have been reformatted, to eliminate some of the difference between the old and new (ABC) code that is just due to formatting.

Further instructions on this can be found in the /r/bitcoinabc subreddit in this post:

https://np.reddit.com/r/BitcoinABC/comments/6kownu/comparing_the_abc_code_to_core/

Next steps

There are some small cleanups to make to improve the ABC release for beta testing.

I plan to have look at some of those during the coming week:

  • improved debug messages and RPC output related to UAHF fork
  • resolve as many FIXME's as possible
  • revisit test plan and check with requirements what is still outstanding in terms of tests

Certainly, some more intensive big-block tests should be added to the regression test suite.

And hopefully public testing will not raise any serious bugs.

There are some platforms like ARM for which the Gitian builds have produced binaries, but we have not yet tested them at all (often due to lack of test platforms).

This is something where we will depend on feedback from users in the short term.