Skip to content

Fulcrum 1.2.12

Compare
Choose a tag to compare
@cculianu cculianu released this 02 Nov 01:56
· 513 commits to master since this release
1ff5af6

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 or simdjson=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, the simdjson 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 the FulcrumAdmin script like so:
    $ ./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 to true (default: false), the rocksdb library will use fsync() calls as opposed to fdatasync(). 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 an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.2.12-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 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 with jemalloc, Qt 5.14.2 and gcc 7.5.0.
    • Additionally, FulcrumAdmin.exe is included which is the python script, but made into a onefile .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!