Skip to content

Fulcrum 1.11.0

Latest
Compare
Choose a tag to compare
@cculianu cculianu released this 09 Jun 05:33
· 7 commits to master since this release
10623d7

What's new:

This release brings with it performance improvements and an update to the pre-built binary's compiled-in RocksDB version (updated to latest 9.2.1). The latest RocksDB is faster and also better, so yay!

Also in this release we switched the Linux pre-built binary to statically-link libstdc++ which should improve compatibility for the binary and have it "just work" on a wider variety of systems.

NOTE: Since this release contains an updated RocksDB in the release binary, RocksDB will internally "upgrade" the data dir to the newer RocksDB format on first-run (this is fast). However, this means that users that run this version cannot "go back" to the previous Fulcrum versions before 1.11.0 with the same data dir, because RocksDB is backwards compatible but not "forward compatible".


Summary of changes:

  • Rename CLI/conf file option --fast-sync -> --utxo-cache
    • Also renamed various conf file options that contain hyphens in their names (-) to also work with _ instead (e.g. ts-format -> ts_format), so that they can be passed-in from env. vars.
    • Old option names that were renamed still are supported.
  • Switched codebase to use C++20. As a result of this, we also redid the static builds to use newer tools (e.g. gcc 13) and to also statically link libstdc++.
  • Switched pre-built binaries to use newer RocksDB v9.2.1. This breaks "forward compatibility" with previous Fulcrum releases, but should bring in performance and stability improvements from latest RocksDB.
  • Fixes for compatibility between datadirs copied between Windows & Unix (they should all be interoperable now).
  • Updated static pre-built binaries to use latest libzmq and libjemalloc
  • Performance optimizations related to RPA indexing, in particular, testnets as well as low-core-count machines should benefit from the improvements.
  • Controller: Ensure download blocks tasks use all physical CPUs.
  • IPv6: Render ip6:port as [ip6]:port in user-facing strings. Also accept this notation from the conf. file
  • Various fixups related to C++20 in the codebase such as fix some compile warnings, update to newer idioms such as: C++20 concept/requires replaced older std::enable_if, etc.
  • Fix for compiling against Qt 6.7.1
  • Fixed typos in fulcrum-example-config.conf & fulcrum-quick-config.conf
  • RPC: Support downloading of >1GiB blocks from bitcoind (requires Qt6)
  • Fixed assert() in Controller.cpp -- before this fix "Debug" builds were not working with RPA (oops! Fixed!).
  • Refreshed BCH & BTC compiled-in server lists
  • Fix to support BU chipnet (which is reported as "chipnet" rather than "chip" by BU).
  • Added FulcrumAdmin to the dockerhub docker image.
  • Misc. internal code quality nits, tweaks and fixes; various compiler warning fixups

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.11.0-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.11.0-arm64-linux.tar.gz, which is compiled on an Ubuntu 20.04 system (for ARM64 bit) using Docker.

All of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), OpenSSL 1.1.1 and libstdc++ statically linked. They still require libz2, and the right libc version as dynamic libs on your system (but those are usually present if you are on a recent system).

Pre-compiled binaries for Windows

  • Fulcrum-1.11.0-win64.zip - Pre-built, statically linked Windows version.
    • It should "just work" on any Windows 10 or above 64-bit system.
    • Includes is a statically-linked Fulcrum.exe, built with jemalloc, libzmq, Qt 5.15.13, OpenSSL 3.3.0, and gcc 13.2.0.
    • Additionally, FulcrumAdmin.exe is included which is the python script, but made into a onefile .exe using PyInstaller.
      • NOTE Windows virus scanners have been known to erroneously identify FulcrumAdmin.exe as containing a virus. This is because many heuristic scanners dislike the use of PyInstaller onefile .exe's. See: #203. Please ignore this -- we contain no viruses! Also please complain to your virus software vendor about this.

See the .asc file for signatures; I signed the sha256 hashes of all the release binaries. 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!