Breaking Changes
-
Rework how PoP Miners and BFG work (#396).
For details on running a v2 PoP Miner, see thepopmdreadme.- Rewrite
bfgdto serve as an API layer for finality data. PoP miners no longer usebfgd. - Remove
bssd. PoP payouts are now handled byop-geth. - Add indexing for Hemi Keystones published to Bitcoin by PoP miners (#549).
- Rewrite
popmd. To runpopmd, the following data sources are now required:- A Hemi
op-gethnode (for keystone notifications). - A "Gozer" Bitcoin data source, such as TBC, to retrieve Bitcoin data and publish PoP transactions. Gozer can also be used to provide fee estimations.
- A Hemi
- PoP Miners can now use either a static fee or dynamic fee estimations from Gozer.
- Rewrite
-
Rename Go module to
github.com/hemilabs/heminetwork/v2(add/v2suffix) (#622).
Added
-
Add hproxyd, a simple and efficient RPC request proxy to replace
proxyd(#568, #574, #576). -
Add Prometheus metrics and health check endpoints to
bfgdandpopmd(#619). -
Add supply chain attestations for releases (#634).
bitcoin package
- Add
bitcoin/gozerpackage: Bitcoin data interface layer, with a basic implementation for Blockstream (Electrs) and a complete implementation supporting the TBC RPC API (#562). - Add
bitcoin/vinzclorthopackage: Bitcoin wallet interface that handles creation and derivation of Bitcoin addresses (#562). - Add
bitcoin/zuulpackage: Interface for handling the storage of secret material, such as Bitcoin wallet private keys (#562).
Tiny Bitcoin Client (TBC)
- Add support for Bitcoin testnet4 (#521).
- Add indexing for Hemi Keystones published to Bitcoin by PoP miners (#549).
- Add Bitcoin mempool support (#549).
- Add transaction fee estimation (#549). This can be used by
popmdwhen creating PoP transactions. - Add Hemi Keystone height hash index with V4 database upgrade, allowing keystones to be retrieved at a specified block height (#539). Used in
op-gethfor handling PoP payouts. - Add standalone TBC Docker image:
hemilabs/tbcd,ghcr.io/hemilabs/tbcd(#531).
localnode
Note
The localnode directory still uses an older version of the Hemi stack. After this release, all node-running
resources and documentation will move to a separate repository, maintained and versioned independently, with its own changelog.
- Add easy-to-follow quickstart section to the node running documentation (#656).
Changed
-
Update localnode config with new testnet P2P nodes (#650).
-
Move common test utilities into a new
testutilpackage to reduce duplication and simply testing (#530). -
Update Hemi keystone genesis block on Bitcoin testnet4 to
00000000a14c6e63123ba02d7e9fd173d4b04412c71a31b7a6ab8bb3106c9231(#654). The previous block was removed by a long re-org. -
Replace
time.Afterwithtime.Tickto avoid issues on sleeping dev machines (#580).
Removed
-
Remove WebAssembly support from the PoP Miner (#526).
-
Remove
extool, an unused Electrum/Electrs CLI utility (#625).
Fixed
- Fix duplicate
flag.Parsecall incmd/keygen(#565). - Fix typos across the codebase (#550, #564, #633, #658, #663).
Contributors
Thank you to everyone who contributed to this release!