Fulcrum 1.2.12
What's new:
This is mainly a performance release of Fulcrum. It adds support for synching while bitcoind is still in "initial block download" (IBD). In addition, the simdjson
JSON parser was added.
Summary of changes:
- Convenience - Added support for synching Fulcrum while bitcoind is in IBD (initial block download). This should help new server admins get started more quickly, since one no longer has to wait for bitcoind to be fully synched before starting a Fulcrum synch.
- Performance - Added the simdjson library as an optional JSON parser backend to Fulcrum. Enable it with
--simdjson
on the CLI orsimdjson=true
in the config file. This parser is 2x faster than the regular parser. Since the regular parser has been war-tested for several releases, thesimdjson
parser must be explicitly enabled. It will be the default, however, in a future release. (So far it appears extremely stable and reliable, and is perfectly safe to use). Enabling this parser is recommended.- If you want to test it out,
simdjson
can be dynamically enabled or disabled at runtime by using theFulcrumAdmin
script like so:
- If you want to test it out,
$ ./FulcrumAdmin -p 8000 simdjson 0 # 0 = disable simdjson
$ ./FulcrumAdmin -p 8000 simdjson 1 # 1 = enable simdjson
$ ./FulcrumAdmin -p 8000 simdjson # no args - query simdjson status
- Added the advanced option
db_use_fsync
to the conf file. If set totrue
(default:false
), the rocksdb library will usefsync()
calls as opposed tofdatasync()
.fsync()
is slower but works around some potential issues in older Linux kernels and the ext4 filesystem. See the rocksdb documentation about this option.
Pre-compiled binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-1.2.12-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.04
system using Docker.Fulcrum-1.2.12-x86_64-linux-ub16.tar.gz
, which is compiled on a stockUbuntu 16.04
system (using Docker) but with g++ 7.3.0 installed from this ppa source:ppa:jonathonf/gcc-7.3
&ppa:jonathonf/gcc
Both of the above binaries contain jemalloc
, Qt5Core
and Qt5Network
from Qt 5.14.2 statically linked. They still requires libz2
, libstd++
, and the right libc
version as dynamic libs on your system (but those are usually present if you are on a recent system).
If the first binary fails, try the second one (-ub16
), which should work on older systems, hopefully.
Pre-compiled binaries for Windows
Fulcrum-1.2.12-win64.zip
- Pre-built, statically linked Windows version.- It should "just work" on any Windows 7 or above 64-bit system.
- Includes is a statically-linked
Fulcrum.exe
, built withjemalloc
,Qt 5.14.2
andgcc 7.5.0
. - Additionally,
FulcrumAdmin.exe
is included which is the python script, but made into aonefile .exe
using PyInstaller.
See the .asc
files at the bottom for signatures; my gpg public key can be obtained here: https://github.com/Electron-Cash/keys-n-hashes/blob/master/pubkeys/calinkey.txt
Binary builds for macOS coming soon -- Until then you can always build from source!