Skip to content

Fulcrum 1.5.2

Compare
Choose a tag to compare
@cculianu cculianu released this 09 Apr 15:04
· 362 commits to master since this release
f340a65

What's new:

This is a critical bugfix release of Fulcrum. It fixes a crash bug that we thought we handled in 1.5.1 but it turns out we did not fix. It is recommended that all admins update to 1.5.2 as soon as they can.


Summary of changes:

  • Fixed the crash bug that could be caused by a dangling reference to the MethodMap.
  • It turns out the simdjson upgrade to 0.9.2 was a lemon. We reverted back to 0.6.0. 0.9.2 appears to have some crash bugs in the westmere implementation.

Changes from 1.5.1

  • Recompiled Windows build to embed OpenSSL 1.1.1k which addresses these vulnerabilities in OpenSSL.
  • --version now also prints information on which libssl was loaded at run-time.
  • Minor fix: fixed compile error when building against Qt 5.12
  • Minor fix: fixed a typo in an error message
  • Updated servers.json (BCH) and servers_scalenet.json (BCH) to latest Electron Cash servers.

A Note about OpenSSL 1.1.1

Note to Linux server admins - There is an extant OpenSSL vulnerability in versions of OpenSSL 1.1.1-1.1.1j. If you are using Qt 5.15 with OpenSSL 1.1.1, it is recommended you update your system OpenSSL to 1.1.1k (or later). The Linux static build does not bundle OpenSSL, but instead loads the system OpenSSL at run-time. So please update your system to use OpenSSL 1.1.1k or later!

Windows static builds do embed OpenSSL, however, and they have been updated below with an embedded OpenSSL 1.1.1k.

Linux Ubuntu 16 (Xenial) static builds are compiled to look for the system OpenSSL 1.0.x series, which does not suffer from the above-linked vulnerability.

If unsure which OpenSSL Fulcrum is using, run ./Fulcrum --version and it should tell you which libssl version it found and is using at runtime.


Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.5.2-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.5.2-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.5.2-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, OpenSSL 1.1.1k, 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!