What's new:
- Performance improvements - Made the
bitcoind_throttle
facility (introduced in Fulcrum 1.0.4) behave in a peppier and more efficient manner when the server is not under load. - Resiliency - A new max subscriptions facility has been added to make it nearly impossible for abusive clients to degrade performance for normal clients.
max_subs_per_ip
has been added as a conf file variable. Default is50000
if unspecified. If the number of subscriptions from a particular IP address exceeds this value, new subscription requests are denied from that IP until its client(s) unsubscribe or disconnect. Note that clients belonging tosubnets_to_exclude_from_per_ip_limits
are not subjected to this limit.max_subs
has also been added as a conf file variable. Default is10000000
(10 million) if unspecified. This is a limit on the number of subscriptions the server will allow, server-wide, for all clients. If this limit is reached, the server will take measures to potentially kick the most-offending client(s) that it detects.
- Interoperability - Added 7 new RPC methods to make interoperability with scripting easier.
- All the new methods live alongside the existing methods but they now accept addresses instead of script hashes, and all are prefixed with:
blockchain.address.*
- These work identically to their
blockchain.scripthash.*
counterparts, but can be given Bitcoin Cash addresses (rather than the esoteric script hash). - These methods increase interoperability of this server software with various clients that may or may not have a full bitcoin scripting lib to translate Bitcoin Addresses -> script hashes.
- See the protocol documentation for a description of the methods in question.
- All the new methods live alongside the existing methods but they now accept addresses instead of script hashes, and all are prefixed with:
- Minor bug fix - The
ban
by client ID command wouldn't ban. (But ban by IP address worked). Fixed. - Internal code refactoring.
Due to the above improvements it is highly recommended that server admins upgrade to this version at their earliest convenience.
Pre-compiled binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-1.0.5b-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.10
system.Fulcrum-1.0.5b-x86_64-linux-ub16.tar.gz
, which is compiled on a stockUbuntu 16.04
system but with g++ 7.3.0 installed from this ppa source:ppa:jonathonf/gcc-7.3
&ppa:jonathonf/gcc
Both of the above binaries contains Qt5Core
and Qt5Network
from Qt 5.14.1 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.0.5b-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.1
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!