Fulcrum 1.2.8
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 onlybchd
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=
andwss-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 anUbuntu 18.04
system using Docker.Fulcrum-1.2.8-x86_64-linux-ub16.tar.gz
, which is compiled on a stockUbuntu 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 withQt 5.14.2
andgcc 7.5.0
. - Additionally,
FulcrumAdmin.exe
is included which is the python script, but made into aonefile .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!