Skip to content

Fulcrum 1.2.1

Compare
Choose a tag to compare
@cculianu cculianu released this 27 Jun 18:55
· 678 commits to master since this release
72f3403

What's new:

This is mostly a maintenance release that updated the codebase to compile cleanly against Qt 5.15.x and to also work-around some bugs in Qt 5.15.x. If you intend to use Fulcrum with Qt 5.15.x, then you should upgrade since Qt 5.15.x introduced several bugs that versions of Fulcrum prior to this one cannot cope with.

This version of Fulcrum should work perfectly as before on all supported Qt versions (5.12.5 and above).

Note that the released precompiled binaries were all statically linked to Qt 5.14.2, so Qt's 5.15.x bugs only affected people that compiled their own Fulcrum against Qt 5.15.x, such as Arch Linux users.

Summary of changes:

  • Made the codebase compatible with the Qt 5.15.x series (as before, it still is backward compatible with Qt 5.12.5 or above).
  • Replaced the Qt JSON serializer and deserializer with our own custom code for parsing/writing JSON.
    • The motivation for this is because Qt recently replaced their JSON backend in 5.15.x and it has regressions in terms of correctness as well as performance.
    • In addition, our custom serializer now has much more generous limitations on data size and JSON nesting level than we had in previous releases, when we were using Qt's QJsonDocument for serialization/deserialization.
  • Added some benchmarks and tests to the codebase (only accessible if compiling with -DENABLE_TESTS).
  • Various bits of refactoring and code cleanup.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.2.1-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.2.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 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.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 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!