Heminetwork
The hemi network core daemons.
Install / Use
/learn @hemilabs/HeminetworkREADME
Hemi Network
Hemi is an EVM-compatible L2 blockchain that combines the security of Bitcoin with the programmability of Ethereum.
This repository contains the core daemons of the Hemi Network, including:
- bfgd: Hemi Bitcoin Finality Governor daemon.
- hproxyd: A proxy for balancing RPC requests across Hemi nodes.
- popmd: The Hemi PoP Miner daemon.
- tbcd: A fully custom, embeddable Bitcoin node written in Go.
Components
The Hemi Network is composed of many services. The core Hemi services in this repository are:
| Name | Description |
|----------------------------------------------------|--------------------------------------------|
| Bitcoin Finality Governor (bfgd) | Provides finality information over an API |
| Hemi RPC Proxy Daemon (hproxyd) | Proxies RPC requests to Hemi op-geth nodes |
| Hemi PoP Miner Daemon (popmd) | The Hemi Proof-of-Proof miner daemon |
| Hemi Tiny Bitcoin Daemon (tbcd) | Embeddable Bitcoin node |
Hemi Node
For documentation and files for running Hemi L2 nodes, see the dedicated hemilabs/hemi-node repository.
Utilities
This repository also contains several utility binaries.
| Name | Description |
|----------------------------|-----------------------------|
| btctool | Bitcoin utility tool |
| hemictl | Hemi network controller CLI |
| keygen | Keypair generation tool |
Installation
Binaries
Pre-built binaries for Linux, macOS, Windows, and OpenBSD are available via GitHub Releases.
Docker images
Docker images are published to both GitHub Container Registry and Docker Hub. Docker images are currently available for:
hemilabs/bfgd- Hemi Bitcoin Finality Governorhemilabs/hproxyd- Hemi RPC proxyhemilabs/popmd- Hemi PoP Miner Daemonhemilabs/tbcd- Hemi Tiny Bitcoin Daemon
Build from source
Prerequisites
- Go v1.26 or newer - https://go.dev/dl/
git,make
Build
-
Clone the
heminetworkrepository:git clone https://github.com/hemilabs/heminetwork.git cd heminetwork -
Setup and build binaries:
make deps # Download and install dependencies make install # Build binaries into ./bin/
Contributing
We welcome contributions of all kinds!
- Found a bug or have an idea for a new feature? Open an issue.
- Want to build something new? We recommend starting with a proposal issue.
- Have improvements for our code or docs? Pull requests are very welcome!
Join the discussion in our Discord server or keep an eye on issues and pull requests.
All contributions to this repository must be made under the terms of the MIT License.
Contact
This repository is maintained by the Protocol Engineering team at Hemi Labs. You can contact us in the official Hemi Discord server.
Security Vulnerabilities
If you discover vulnerabilities in Hemi, we encourage responsible disclosure of the vulnerability so that we can take steps to resolve the vulnerability as quickly as possible. We ask you to help us better protect Hemi and our users by reporting vulnerabilities through Bugcrowd. Never report security vulnerabilities publicly, especially on GitHub issues.
If you have discovered a security vulnerability, please report it in accordance with our Security Policy.
License
The contents of this repository are distributed under the terms of the MIT License, except where otherwise noted.<br/> For more information, please refer to the LICENSE file.
