Releases: cculianu/Fulcrum
Fulcrum 1.0.5b
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!
Fulcrum 1.0.4
What's new:
- Upgraded bundled
rocksdb
to version6.6.4
release. This version ofrocksdb
contains some stability and performance improvements versus the previously bundled version,6.5.x
. - Updated code to compile without warnings against
Qt 5.14.x
.Qt 5.14.x
has many performance improvements and it is the recommended Qt version for Fulcrum. The pre-built binaries linked below are now statically linked toQt 5.14.1
. - Added a bitcoind-bound-request-throttling facility. This is controlled via the new configuration parameter
bitcoind_throttle
which throttles clients that spam requests that hit bitciond. See the description of the parameter here, but the summary is: this facility improves the stability of Fulcrum by not allowing any 1 client to monopolize resources. - Added two new commands to
FulcrumAdmin
:bitcoind_throttle
andmaxbuffer
. See./FulcrumAdmin -h
for a description of these commands. - Bugfixes and stability improvements.
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.4-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.10
system.Fulcrum-1.0.4-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.
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 and Windows coming soon -- Until then you can always build from source!
Fulcrum 1.0.3
What's new:
- Fixed a bug where RPC
listunspent
would not always take the mempool into account correctly.- Oops! This slipped through the cracks because Electron Cash doesn't even use this method. The impact of this bug is minor since this method is only used in plugins like CashFusion, and even then only when blaming due to a bad Fusion (which is a rare event).
- Special thanks to Harry Barber @hlb8122 for catching this!
Pre-compiled binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-1.0.3-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.10
system.Fulcrum-1.0.3-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
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.
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 and Windows coming soon -- Until then you can always build from source!
Fulcrum 1.0.2
What's new:
- Minor bugfix release to address an issue with Electron Cash clients not tolerating error messages on idle discconect. See: Electron-Cash/Electron-Cash#1774
Pre-compiled binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-1.0.2-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.10
system.Fulcrum-1.0.2-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
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.
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 and Windows coming soon -- Until then you can always build from source!
Fulcrum 1.0.1
This is the first update of Fulcrum.
What's new:
- Tor / .onion support. Now Fulcrum is feature-complete. It can peer with
.onion
peers and also announce itself as a hidden service if so-configured. You need a Tor proxy for the.onion
peering to work. See the new config file options:tor_hostname
,tor_tcp_port
,tor_ssl_port
,tor_banner
, &tor_proxy
. - Bugfix -- It was possible for disconnected clients to remain as "zombies" for a time after disconnection. This has been addressed.
- Fulcrum now has a man page! Special thanks to @hegjon for creating it and adding it to the .rpm spec file.
- Added better formatting to the
FulcrumAdmin
script for the various "elapsed time" columns. Now it no longer shows you raw time in seconds, but rather a human friendly time in minutes, hours, days, etc. - Changed the synch. progress display to show
txs/sec
rather thanins & outs/sec
. - Various internal nits and refactorings, plus some typos fixed in some esoteric error & debug messages.
Pre-compiled binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-1.0.1-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.10
system.Fulcrum-1.0.1-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
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.
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 and Windows coming soon -- Until then you can always build from source!
Fulcrum 1.0 -- First Official Release
This is the first release of Fulcrum. It has been tested for a few weeks now by myself and a couple of other server admins and we are confident it is at a point where it can be used in production.
It is 100% protocol-level compatible with existing Electron Cash clients and behaves identically to existing Electrum servers (ElectronX and ElectrumX) from a client's perspective. It is very fast and we hope administering Fulcrum will be a familiar experience for server admins.
Tell your friends!
Pre-compiled binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-1.0-x86_64-linux.tar.gz
, which is compiled on anUbuntu 18.10
system.Fulcrum-1.0-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
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.
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 and Windows coming soon -- Until then you can always build from source!