3
I'm trying to compile v0.8.6 of the core client from source, in order to compare IDB (Initial Blockchain Download) performance between versions.
I created a fresh Ubuntu Xenial 16.04 machine on Amazon EC2. I then ran the following commands (which were sufficient for version 0.9.3 and up):
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install build-essential autoconf libboost-all-dev \
libssl-dev libtool pkg-config libevent-dev
In addition for this specific version I ran:
sudo apt-get install libdb++-dev libminiupnpc-dev
I then checked out the source and started the compilation:
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
git checkout v0.8.6
cd src/
make -f makefile.unix
I'm only interested in running headless bitcoind, but I'm not sure if it was already separated form the UI at that release.
I get the following error:
rpcrawtransaction.cpp:241:77: required from here
/usr/include/boost/variant/get.hpp:178:5: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’
BOOST_STATIC_ASSERT_MSG(
^
makefile.unix:172: recipe for target 'obj/rpcrawtransaction.o' failed
make: *** [obj/rpcrawtransaction.o] Error 1
Interestingly 0.7, 0.6 and 0.5 do compile successfully, although they get stuck during IDB, so perhaps compilation just failed silently. I'll make a separate post for those later.
I suspect that I need to install some very specific versions of dependencies, but I'm not sure which and how to go about that. I haven't used Linux in years.
I still have the VM, so I can provide more details if needed.
I'm open to alternative approaches, even using a Windows VM :-)
1
1) This thread suggests unsetting BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT, or applying this change. 2) What's your boost version? PS: Neat project!
– Nick ODell – 2017-07-05T17:24:32.2271@NickODell
libboost-all-devversion 1.58.0. I might try the gitian approach first though. – Sjors Provoost – 2017-07-05T18:13:00.6501
As for pre-0.8 versions getting stuck in IBD, you'll need to increase the number of BDB locks as described here: https://bitcoin.org/en/alert/2013-03-15-upgrade-deadline.
– Pieter Wuille – 2017-07-05T18:27:16.843@PieterWuille thanks, I actually already did that. They get stuck at different blocks: https://gist.github.com/Sjors/70f14baf1f834f3547bf35553faff610#v072
I might try gitian for those too, because I'm pretty sure the dependencies are a mess on default modern Ubuntu.
1
You're using a too recent OpenSSL version which requires strict DER signatures, which only became mandatory in Bitcoin after BIP66. You'll need the patch here: https://github.com/bitcoin/bitcoin/pull/5634/files in order to use the pre-BIP66 chain with new OpenSSL.
– Pieter Wuille – 2017-07-05T21:21:35.690P.S. so it took 184 hours to sync. Here's the chart: https://medium.com/@provoost/historical-bitcoin-core-client-performance-c5f16e1f8ccb
– Sjors Provoost – 2017-07-22T10:53:14.490