Skip to content

Releases: cculianu/Fulcrum

Fulcrum 1.10.0

04 Mar 10:03
4aa8f84
Compare
Choose a tag to compare

What's new:

Added official Reusable Payment Address (RPA) support. A few new RPCs are offered for servers that have it enabled (default on for BCH only, off for other coins). Also fixed a few minor esoteric bugs.


Summary of changes:

  • Added RPA support (#234 ). This work was community-funded. Thanks to all the contributors to my flipstarter that helped pay for this work.
    • Added a new index, rpa, which is currently only ~42M on mainnet. It starts indexing from block 825000 on mainnet (can be controlled with rpa_start_height= conf file option).
    • RPA is only on-by-default for BCH, off for all other coins. Can be manually enabled/disabled with --rpa or rpa=1 from conf file.
    • A few new RPCs are offered to clients if the index is enabled.
    • Bumped Electrum Cash protocol version to 1.5.3
  • Bugfix: Deal with esoteric 0-input and 0-output txns better (even though they can't happen due to consensus, there was a uint wraparound issue if they do happen to be encountered in some esoteric environments). Fixes #235.
  • Bugfix: In rare circumstances, if the "Download Blocks Task" is interrupted / gets an error, one of the 3 BitcoinD client threads may go out to lunch and never become usable again to do work. Symptoms would include it spamming "Reconnecting ..." messages to the log every 5 seconds. This has been corrected.
  • Lots of code refactoring and code fixups.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.10.0-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.10.0-arm64-linux.tar.gz, which is compiled on an Ubuntu 20.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.10.0-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.10.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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.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!

Fulcrum 1.9.8

13 Jan 18:25
d4b3fa1
Compare
Choose a tag to compare

What's new:

This is a minor correctness improvement release of Fulcrum. See issue #221. Upgrading to this release is optional but is strongly recommended for BTC (and LTC) node operators since the fix contained in this release affects them. (BCH users are unaffected.)


Summary of changes:

  • Fixed a correctness bug whereby the mempool fee histogram returned by the mempool.get_fee_histogram RPC was calculating fees in sats-per-serialized-byte and not sats-per-vbyte. This affects segwit coins like LTC and BTC. BCH users are unaffected.
    • As a result of the histogram using the wrong fee rate (sats/B rather than sats/vB), the results were a bit too optimistic and painted a picture of a lower-fee situation than actually exists in the real mempool (this is because serialized size almost always is >= vsize, so fees computed as sats/B are usually lower than fees computed in sats/vB). See issue #221
    • It is recommended that BTC and LTC server operators upgrade to Fulcrum v1.9.8 at their earliest convenience.
    • Fee estimates and "distance from tip" if using Electrum BTC should now be more accurate and more in-line with what a wallet connected to ElectrumX servers would see.
  • Some internal code refactoring and code cleanup to reduce boilerplate code in src/bitcoin/transaction.h and src/bitcoin/transaction.cpp.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.8-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.8-arm64-linux.tar.gz, which is compiled on an Ubuntu 20.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.8-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.8-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.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!

Fulcrum 1.9.7

22 Nov 20:32
f27fc28
Compare
Choose a tag to compare

What's new:

This is a bugfix release of Fulcrum. A very rare corner-case "abort" bug introduced in version 1.9.4 has been identified and fixed. See issue #214. While this bug is very rare and requires precise timing to occur, please do upgrade to 1.9.7 if you are running 1.9.4, 1.9.5 or 1.9.6 (1.9.3 and earlier are unaffected).


Summary of changes:

  • Fixed a rare corner-case race condition leading to a potential "abort" out of Fulcrum (server death), in very rare cases while synching mempool. It wouldn't lead to data corruption but could be highly annoying. Probability of it occurring was close-to-but-not-0. See issue #214 and commit 34a825a.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.7-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.7-arm64-linux.tar.gz, which is compiled on an Ubuntu 20.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.7-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.7-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.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!

Fulcrum 1.9.6

11 Nov 05:04
v1.9.6
2624368
Compare
Choose a tag to compare

What's new:

This is a minor protocol upgrade release of Fulcrum. 4 new protocol methods were added (not yet used by any major wallet, but they will be hopefully someday!). Additionally, some minor internal improvements were made, and the Windows binary now also prints in color if outputting to the console.


Summary of changes:

  • Protocol version was updated to 1.5.2.
  • Added a new optional conf file parameter daemon_passthrough_subnets.
  • Changed the way --fast-sync is enforced. Fixes issue #208.
  • Made sure the arm64 static build uses Ubuntu 20 as the base docker image for extra compatibility. Issue #209.
  • Made the Windows build output color to the console. Commit 40a27ed.
  • Miscellaneous internal fixups and cleanup.
    • Fixed some GCC 13 compiler warnings. Commit 40a27ed.
    • The testing code for --bench mempool now can download real coins from a bitcoind daemon (optionally) to go along with the mempool.dat file it ingests. Commit 74338ba.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.6-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.6-arm64-linux.tar.gz, which is compiled on an Ubuntu 20.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.6-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.6-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.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!

Fulcrum 1.9.5

06 Nov 06:56
6d2cc3b
Compare
Choose a tag to compare

What's new:

This is a hotfix release. 1.9.4 was a lemon -- it contained a bug whereby the server would hang waiting for the mempool (due to inappropriate use of thread variable signals). It has been fixed. I sincerely apologize for the error on my part. All users of 1.9.4 should upgrade to 1.9.5 immediately.

Otherwise, 1.9.4 was a good improvement for performance. 1.9.5 is just like 1.9.4 except it lacks the synch hang bug.

Release notes from 1.9.4:

  • This is a bugfix + performance improvement release of Fulcrum. In this release, the performance of mempool synching from bitcoind has been improved by as much as ~30% for large mempools. Additionally, a rare corner-case bug related to mempool synching has been fixed. It is recommended that all admins running public Fulcrum servers update to v1.9.4 at their earliest convenience.

Summary of changes (vs 1.9.3):

  • Performance! - Improved the performance of the SynchMempoolTask by ~30% for large mempools. This is particularly important when Fulcrum first starts up against a daemon that has chronically full mempools (such as on BTC). (#207).
  • Bugfix - A rare corner-case bug involving unsent scripthash notifications during some unlikely-but-possible mempool scenarios has been fixed. (#207).
  • Miscellaneous:
    • macOS: The source tree now includes a "fat" binary for librocksdb.a which work on both x86_64 and arm64 (Apple Silicon).
    • Refactored the SynchMempoolTask to a separate compilation unit
    • Other small nits.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.5-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.5-arm64-linux.tar.gz, which is compiled on an Ubuntu 20.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.5-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.5-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.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!

Fulcrum 1.9.3

31 Oct 06:04
6149931
Compare
Choose a tag to compare

What's new:

This is a maintenance release of Fulcrum. In this release, the performance of mempool synching from bitcoind has been drastically improved.


Summary of changes:

  • Performance! - Improved the performance of the SynchMempoolTask by over 3x. Synching mempool has never been faster! This is particularly important when Fulcrum first starts up against a daemon that has chronically full mempools (such as on BTC).
  • Miscellaneous internal code fixes:
    • Compile-time cleanups to remove Qt 6.6.0 deprecated warnings.
    • We no longer compile the Fulcrum release with -fomit-frame-pointer since this optimization is pointless on 64-bit non-register-impaired architectures and what's more, it may lead to compiler bugs.
    • Other small nits.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.3-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.3-arm64-linux.tar.gz, which is compiled on an Ubuntu 22.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.3-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.3-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.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!

Fulcrum 1.9.2

29 Sep 11:29
v1.9.2
002b94e
Compare
Choose a tag to compare

What's new:

This is a bugfix maintenance release of Fulcrum. It fixes a few compile bugs as well as potential BTC-related issues, and adds some optional parameters to the blockchain.*.get_history family of calls.

For BTC: we updated the code to the mempool.get_fee_histogram call to replicate more closely what ElectrumX would return (issue #197). We also added better compatibility with Bitcoin Core v25.0.0 for the sendrawtransaction API call to bitcoind core. All BTC users of Fulcrum are strongly urged to update to this version at their earliest convenience.


Summary of changes:

  • Fixed some build-related issues, such as rocksdb 8 source compatibility.
  • Some code refactoring and cleanup
  • Implemented "paging" for the blockchain.*.get_history call(s) (issue #180). This involves two extra optional parameters, from_height and to_height to the call(s). See: https://electrum-cash-protocol.readthedocs.io/en/latest/protocol-methods.html#blockchain.scripthash.get_history.
    • Only Fulcrum servers declaring protocol version 1.5.1 or above support this facility as of now.
  • Improved compatibility with bitcoin core 25.0.0 to behave exactly like previous versions when sending txns (that is, allow it to "burn" onto OP_RETURNs). (#181)
  • Fix to the mempool.get_fee_histogram RPC to more closely model what ElectrumX would return. Hopefully this fixes some issues seen on BTC. (#197)

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.2-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.2-arm64-linux.tar.gz, which is compiled on an Ubuntu 22.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.1-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.2-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.2.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!

Fulcrum 1.9.1

09 Apr 17:35
713d2d7
Compare
Choose a tag to compare

What's new:

This is a quality-of-life minor maintenance release of Fulcrum. It adds a couple of small but useful features (as requested by users), and updates the server lists for BCH. Upgrading to this version is optional but as always, recommended.


Summary of changes:

  • Minor fix for cashaddr parsing
  • Added Electrum protocol version(s) to program --version output
  • Updated BCH mainnet server lists
  • Minor build fix: Make compilation of sha256_sse4.cpp ASM extensions really not compile in the !USE_ASM configuration
  • Added anon_logs configuration option. If set to anon_logs = true in the conf file, IP addresses and TXIDs will be hidden from any non-debug-level logs.
  • Added support for reading configuration file vars from the environment. Useful for docker setups. Specify _ENV_ as the configuration "file" and then no actual file is really read, just the process's environment is scanned for conf vars.
  • Added CLI arg --pidfile <file> and/or conf file variable pidfile = <file>. If set, the Fulcrum process will write its PID to this file on program startup (and will delete the file on program exit).
  • Minor build fixup for macOS + Qt 6.5.0
  • Misc. other minor build fixes for GCC 13.
  • Added the query command to the FulcrumAdmin script. This works exactly like the same command in ElectrumX's electrumx_rpc admin script. It allows one to query balance, history, and unspent outputs for any address or script output.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.1-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.1-arm64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.1-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.1-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.2.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!

Fulcrum 1.9.0

20 Dec 06:34
a5a53cf
Compare
Choose a tag to compare

What's new:

This is an important release of Fulcrum focusing on additional CashToken support (BCH only). Support for CashTokens has been expanded with some RPC protocol additions. RPCs such as blockchain.scripthash.listunspent may now (optionally) return token information for UTXOs that contain tokens. Since the API has changed, the maximum electrum-cash protocol version is now 1.5.0. However, by default Fulcrum continues to support protocol 1.4.x and is backwards compatible with clients requesting this protocol version. For more information on the RPC API changes, see the latest changes to the Electrum Cash Protocol Specification.

Additionally, the database format has changed slightly, and your datadir will be automatically upgraded to the new V2 format*. That is, if you run Fulcrum 1.9.0 against your current synched datadir, it will automatically be upgraded to V2. Older Fulcrum versions (which only understand V1) will not be able to read the datadir after it is upgraded, however.

* - The exception to this is if you are running your server synched to current BCH ChipNet, in which case you will need to delete your datadir and resynch because ChipNet has CashTokens activated on it already, and we need to grab on-chain token information again from bitcoind via a full resynch. Fulcrum will complain and exit with an error telling you to resynch if you are on ChipNet.

Note for BTC & LTC users: It is safe to upgrade to this version of Fulcrum if you are using BTC or LTC, since the API changes affect BCH only. This version of Fulcrum behaves identically to previous versions if serving up BTC or LTC blockchain data, with 0 negative performance or other impact for BTC or LTC servers.


Summary of changes:

  • Upgaded protocol to to version 1.5. Fulcrum still supports 1.4.x, but 1.5 adds the ability to retrieve CashToken token data for UTXOs containing such data (BCH only).
    • blockchain.*.listunspent now may optionally return token information for UTXOs that contain CashTokens (BCH only).
    • blockchain.utxo.get_into now will return token information if the UTXO in question contains CashTokens (BCH only).
    • blockchain.*.get_balance now may optionally return the balance with or without token UTXOs (BCH only).
    • For a full summary of changes, see: https://electrum-cash-protocol.readthedocs.io/en/latest/protocol-changes.html#version-1-5-0
  • Some code cleanup and performance improvement for the blockchain.*.listunspent RPCs.
  • Update BCH mainnet & chipnet server lists.

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.9.0-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.9.0-arm64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.9.0-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.9.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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.2.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!

Fulcrum 1.8.2

05 Oct 19:15
d330248
Compare
Choose a tag to compare

What's new:

This is a minor release of Fulcrum. The main change from the previous release is that support for BCH "chipnet" has been added, and is now auto-detected when the daemon returns the network name from getblockchaininfo as "chip". Upgrading from v1.8.1 is not required (but is still recommended, especially if you intend to use chipnet now).

To use chipnet, you should build BCHN MR !1600. A pre-built binary of BCHN supporting chipnet is available for download here.

Discussion and references to what chipnet itself is can be found here.


Summary of changes:

  • Added support for BCH "chipnet", which is auto-detected. The Fulcrum binary has a static list of seed peers, so that it may find other peers for chipnet specifically. (Calin Culianu)
  • Added some more unit tests for the merkle calculation code. (Calin Culianu)
  • Fixed a long-standing out-of-spec implementation of the CTRL-C/SIGTERM signal handler (made sure it's 100% async signal safe).
  • Added build support for compiling on FreeBSD. #137 (Andrew Kallmeyer)

Pre-compiled binaries for Linux

I have provided two pre-built binaries for Linux:

  • Fulcrum-1.8.2-x86_64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system using Docker.
  • Fulcrum-1.8.2-arm64-linux.tar.gz, which is compiled on an Ubuntu 18.04 system (for ARM64 bit) using Docker.
  • Fulcrum-1.8.2-x86_64-linux-ub16.tar.gz, which is compiled on a stock Ubuntu 16.04 system (using Docker) but with g++ 8.1.0 installed from this ppa source: ppa:jonathonf/gcc-8 & ppa:jonathonf/gcc

All 3 of the above binaries contain jemalloc, libzmq, Qt5Core, Qt5Network (from Qt 5.15.6), and OpenSSL 1.1.1 statically linked. They still require 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 regular -linux binary fails, try the second one (-linux-ub16), which should work on older systems, hopefully.

Pre-compiled binaries for Windows

  • Fulcrum-1.8.2-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, Qt 5.15.2, OpenSSL 3.0.1, and gcc 11.2.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!