Fulcrum v1.9.8: Correctness Improvement

Fulcrum is a fast and nimble SPV server implementation written in 100% modern C++17 using multi-threaded and asynchronous programming techniques.

Fulcrum v1.9.8: Correctness Improvement
  • "This is a minor correctness improvement release of Fulcrum."
  • "Upgrading to this release is optional but is strongly recommended for BTC node operators since the fix contained in this release affects them."

What's new

  • 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
    • 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.

GitHub Repo