Skip to content

Feat/btcd nodes#810

Draft
lucasdbr05 wants to merge 8 commits into
bitcoin-dev-project:mainfrom
lucasdbr05:feat/btcd-nodes
Draft

Feat/btcd nodes#810
lucasdbr05 wants to merge 8 commits into
bitcoin-dev-project:mainfrom
lucasdbr05:feat/btcd-nodes

Conversation

@lucasdbr05

Copy link
Copy Markdown

Add btcd node support to Warnet

This PR integrates btcd as a first-class node implementation in Warnet

What's Changed

  • To enable btcd support, we added a new Helm chart under resources/charts/btcd along with a 6-node simnet example network under examples/networks/6_node_btcd.

  • Configuration and Helpers: updated constants.py and added btcd.py to manage implementation constants, detect pod chains/ports, and format credential flags for the btcctl CLI.

  • RPC and Log Routing: modified bitcoin.py to dynamically route RPC calls (using bitcoin-cli or btcctl accordingly) and stream logs from the correct active container.

  • Deployment: updated deploy.py to spin up the appropriate Helm chart based on the node's configured implementation and collect port definitions for the fork observer.

Testing

  • Run the 6-node simnet example:
    warnet deploy examples/networks/6_node_btcd
    
  • Execute the RPC test scenario:
    warnet run resources/scenarios/test_scenarios/btcd_rpc_test.py
    
  • Execute the btcd miner scenario:
     warnet run resources/scenarios/btcd_miner.py
    

Add a new Helm chart for btcd nodes, including:
- Chart.yaml with chart metadata and dependencies
- values.yaml with default configuration values
- Configmap template for btcd node configuration
- Pod template for running the btcd container
- PVC template for persistent volume claims
- Service template for exposing the btcd node
- ServiceMonitor template for Prometheus scraping
- _helpers.tpl with reusable template helpers
- NOTES.txt with post-install instructions
Add example network configurations for btcd nodes, including:
- 6_node_btcd: a 6-node btcd-only network topology
Extend warnet to support btcd nodes alongside Bitcoin Core
Add a lightweight JSON-RPC client for btcd nodes. It handles HTTPS communication with self-signed TLS certificates. It exposes standard Bitcoin RPC methods alongside btcd-specific extensions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant