Issue with outdated RPC library
Chainhook relies on an RPC library that is outdated (https://github.com/rust-bitcoin/rust-bitcoincore-rpc/tree/v0.18.0). This library does not support newer Bitcoin versions (the latest being v0.21.0), and, consequently, Chainhook is also locked to older Bitcoin versions.
Issue identified when trying to use Chainhook with Bitcoin v28.1:
- Starting in Bitcoin 28.0, the RPC call to
getblockchaininforeturns warnings as an array of strings. However, the RPC library version in use tries to deserialize warnings into a string type.
we should replace that library with https://github.com/rust-bitcoin/corepc
We're currently using bitcoincore-rpc, which is no longer maintained but supports running Bitcoin Core v0.25.0. The suggested replacement is corepc-rpc, but switching isn't straightforward: it requires us to handle the RPC methods ourselves and define logic based on the specific Bitcoin Core version we're using.
Right now, we're running Bitcoin Core v25 without any issues, and there are no requirements/features that would force the need to upgrade. Since we don’t have version-specific handling logic in place and switching libraries would require extra work, we’ll continue using bitcoincore-rpc for now.
We’ll just document that we only support v25 and revisit the migration when/if we decide to upgrade.
Reopening to mark as blocked
bitcoin version needs to be upgraded to v28