github cculianu/Fulcrum v1.12.0
Fulcrum 1.12.0

latest release: v1.12.0.1
10 days ago

What's new:

This release of Fulcrum adds UPnP support for Fulcrum. This allows automatic port mapping for installs behind NAT firewalls. Enable with --upnp from the CLI or upnp=true in the conf file. In addition, the bitcoind ZMQ hashtx message is now supported (if configured on the bitcoind side, also needs to be enabled on the Fulcrum side with conf arg: zmq_allow_hashtx=true).

Also included in this release are some mempool-related performance improvements and some internal code quality improvements.


Summary of changes:

  • Added support for UPnP. Requires the libminiupnpc library be detected and linked at compiled-time (this is the case for the released static builds). UPnP is not used by default, but enable it if you are behind a NAT firewall and your router supports UPnP. You can use this new feature to automatically open up any non-loopback ports to the internet for incoming connections. (Enabled with CLI: --upnp/conf file: upnp=1) (#280).
  • Added support for bitcoind's ZMQ pubhashtx message. This means Fulcrum can be instantly-notified when new txn's show up in the bitcoind mempool and as such it should reduce latency for Fulcrum to "see" new mempool txns, at the expense of more CPU utilization. This support is off by default but can be enabled with conf file arg: zmq_allow_hashtx=true (#262).
  • Improved Fulcrum's mempool model efficiency by adding parent/child links for txns (this change makes mempool txn removal faster and as a consequence it makes block processing faster for new blocks being added to the chain tip and being reconciled with the mempool) (#265).
  • Fixed a rare and esoteric bug where Fulcrum would announce its TCP/SSL/WS/WSS port(s) to peers even if it was actually listening on a loopback interface for those ports (thus the announcement was useless and should ideally not show up/be suppressed).
  • Added support for Unix domain sockets in ZeroMQ notifications. (@doitwithnotepad, #267)
  • Assorted code quality/readability/etc improvements.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

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

Don't miss a new Fulcrum release

NewReleases is sending notifications on new releases.