Skip to content

Fulcrum 1.2.8

Compare
Choose a tag to compare
@cculianu cculianu released this 28 Jul 13:21
· 591 commits to master since this release
a8134ad

What's new:

  • Improved bchd compatibility - A new option was added (CLI: --bitcoind-tls, conf file: bitcoind_tls=true) to specify connecting to bitcoind using TLS (HTTPS) rather than plaintext sockets (HTTP). (Presently only bchd offers HTTPS for its JSON-RPC interface, which is why this feature is labelled a "bchd compatibility" feature.)
  • Optimized bitcoind requests - Some code paths for bitcoind JSON-RPC requests have been made slightly more efficient in the common case (this should reduce CPU usage for servers that receive many requests from Mist miners).
  • WSS-specific certificate support - Added the ability to specify an alternate certificate/key pair for WSS sockets. This allows the server to present one certificate for -s (Electron Cash SSL) sockets while presenting a different certificate for -W (wss://) sockets.
    • This feature is needed because WSS clients running in a browser require the server present CA-signed certs, while older Electron Cash clients may reject a server that switches from a pinned self-signed cert to a CA-signed cert.
    • It's recommended that server admins keep their old self-signed certs for Electron Cash -s/--ssl ports, and use CA-signed certs for -W/--wss ports.
    • WSS-specific cert. & key can be specified with --wss-cert and --wss-key (conf file: wss-cert= and wss-key=).
  • WebSocket fix - Correctly handle multiple values in the Connection: header. Some user agents and/or browsers may send multiple comma-delimited values here, so we must accept such headers. This should make WSS work reliably with all browsers. #37 (Axel Gembe)
  • WebSocket fix - On error, flush the socket to ensure that the other end gets the error reply before disconnecting. #39 (Axel Gembe)
  • Added the --tls-disallow-deprecated option (conf file: tls-disallow-deprecated=true). If set, this option makes all TLS/SSL sockets server-wide refuse to fall-back to deprecated protocol versions, requiring basically that clients speak TLS v1.2 or above. #42
  • ServerSSL: Do not request certificates from clients. The fact that previous code did so was a bug, but it happened to work anyway with Electrum Cash clients, while being antagonistic to WSS clients. This fix makes WSS work properly for all setups. #38 (Axel Gembe).
  • bitcoind RPC: Handle "Connection: keep-alive" header properly (this header may appear if using a proxy such as nginx to connect to bitcoind). (Cédric Félizard)
  • Minor fix: improved handling of bitcoind timeouts
  • Removed the periodic printing of "Fulcrum v1.2.8 (Release) ..." to the log. This message appearing every hour in the log was unnecessary.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

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