Skip to content

Fulcrum 1.4.1

Compare
Choose a tag to compare
@cculianu cculianu released this 11 Feb 22:22
· 407 commits to master since this release
60ad955

What's new:

This is a maintenance release of Fulcrum. Key highlights include the improved mempool synch code for BTC, as well as the addition of ZMQ support for better responsiveness when new blocks arrive. It is recommended that all server admins upgrade to this version at their earliest convenience.

As is generally the rule with Fulcrum: No breaking database changes were introduced and admins may freely switch back and forth between this and previous versions of Fulcrum for a pre-existing datadir.


Summary of changes:

  • Performance - Improved mempool synch performance for very full mempools (such as on BTC).
    • Fixed issues for in particular BTC where on first synch, it would sometimes take a very long time to synch the initial mempool.
      • BTC mempools may still take upwards of 2 minutes to synch the first time (after a restart of Fulcrum) -- if the mempool has >100k tx's in it, but it won't take 30 mins or more (as it sometimes did before in pathological cases! Sorry about that!).
    • App performance overall have been improved for BTC.
  • Low-Latency - Added support for receiving ZMQ notifications when new blocks come in from bitcoind.
    • If enabled, then Fulcrum will immediately respond when new blocks arrive, thus improving the experience for users.
      • If no ZMQ is enabled, the polling technique is still there as a fallback.
    • Requires a bitcoind that supports ZMQ such as: Core, BCHN, or the soon-to-be-released BU 1.9.1+.
      • To enable: add e.g. zmqpubhashblock=tcp://0.0.0.0:8433 to your bitcoin.conf (the port doesn't matter, pick an unused one).
      • Fulcrum will automatically see the zmq port and use it for notifications (requires that you are using a static build or that you built Fulcrum yourself with libzmq).
  • Upgraded to Qt 5.15.2 for the static builds (linked below).
  • Misc. nits, fixups, and code quality improvements.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.4.1-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.4.1-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, libzmq, Qt5Core and Qt5Network from Qt 5.15.2 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.4.1-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, libzmq, Qt 5.15.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!