{"id":29268477,"url":"https://github.com/enaples/bitcoin-testing-tools","last_synced_at":"2026-05-19T04:38:28.149Z","repository":{"id":192054043,"uuid":"619918592","full_name":"enaples/bitcoin-testing-tools","owner":"enaples","description":"A testing framework for bitcoin applications and software","archived":false,"fork":false,"pushed_at":"2025-03-23T20:15:51.000Z","size":141,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T21:23:43.860Z","etag":null,"topics":["bitcoin","core-lightning","signet"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enaples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-27T17:09:39.000Z","updated_at":"2025-03-23T20:15:54.000Z","dependencies_parsed_at":"2023-09-02T09:39:19.591Z","dependency_job_id":"b61fbd3d-53c7-4c18-aa7e-e784cff353a7","html_url":"https://github.com/enaples/bitcoin-testing-tools","commit_stats":null,"previous_names":["enaples/bitcoin-testing-tools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/enaples/bitcoin-testing-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaples%2Fbitcoin-testing-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaples%2Fbitcoin-testing-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaples%2Fbitcoin-testing-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaples%2Fbitcoin-testing-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enaples","download_url":"https://codeload.github.com/enaples/bitcoin-testing-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaples%2Fbitcoin-testing-tools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263606295,"owners_count":23487602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","core-lightning","signet"],"created_at":"2025-07-04T19:30:16.448Z","updated_at":"2026-05-19T04:38:23.112Z","avatar_url":"https://github.com/enaples.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bitcoin-testing-tools\n\nThis repository aims to build a bitcoin test framework based on signet.\nDocker is extensively used to provide:\n* a bitcoin node that mines bitcoin on a custom signet\n* a bitcoin node that downloads the custom signet chain (can be used to test bitcoin layer-2 software)\n* a core-lightning node\n\n### Preparation\n\nFirst of all, you have o make sure that port 60602 is reachable from all over the internet. \n\nOn ubuntu you can install `ufw` with\n```\nsudo apt install -y ufw\n```\nThen you need to set some default configuration and enable the firewall:\n```\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw logging off\nsudo ufw enable\n```\n\nAfter that, you need to allow connection on the 60602 port for make electrum server reachable from all over the internet:\n```\nsudo ufw allow 60602/tcp comment 'allow Electrum Signet SSL'\n```\n\n### Usage\n\n#### Miner\n\nThe system is thought to have a stand-alone machine on which the bitcoin miner node and core-clightning node run\n\n```\ndocker-compose -f docker-compose_miner_signet.yml up\n``` \nFrom the \"miner\" can be useful to retrieve, the bitcoin core, the electrum server, and the faucet addresses with the following commands:\n```\n# Bitcoin Core Tor address\necho \"Bitcoin tor addr: $(docker exec btc_sig_miner cli getnetworkinfo | jq -r '.localaddresses[].address')\"\n\n# Bitcoin Signetchallenge\necho \"Bitcoin $(docker exec btc_sig_miner cat /bitcoind/bitcoin.conf | grep signetchallenge)\"\n\n# Electrum Server address\necho \"Electrum server tor addr: $(docker exec tor cat /var/lib/tor/hidden_service_electrs/hostname)\"\n\n# Bitcoin Faucet  address\necho \"Bitcoin faucet tor addr: $(docker exec tor cat /var/lib/tor/hidden_service_faucet/hostname)\"\n```\nin order to replace the default parameters in the `make-node.sh` file and make available the custom blockchain and faucet to other \"node\" clients that whant to connect with the \"miner\".\n\n#### Node\n\nOther machines that want to connect to the \"miner\", once the miner is running the parameters BITCOIN_MINER_URL, SIGNETCHALLENGE, and \nFAUCET_URL must be taken from the \"miner\" and provided to those who may want to run the \"node\". These parameters must be replaced in the `make-node.sh` file and it must be run with `source make-node.sh`. After, the \"node\" client can then run the docker compose command:\n\n```\ndocker-compose -f docker-compose_node_signet.yml up\n```\n\n#### Electrum wallet\n\nOnce the \"miner\"/\"node\" is running, electrum wallet can be used to perform normal operations. Electrum must be lauched with `-signet` flag and must be connected to the custom electrum server.\n\n```\ngit clone https://github.com/spesmilo/electrum.git\ncd electrum\npython3 run_electrum --signet\n```\nAt this point, create a new wallet and then go to `Tools --\u003e Network`, de-select __Select server automatically__ flag and insert the onion address in the following format: `\u003celectrum_server_onion_link\u003e:60602`.\nNow, you can get a new address from the Electrum wallet and move some coin with \n```\ndocker exec btc_sig_miner bitcoin-cli -datadir=/bitcoind send '{\"\u003cnew-address\u003e\": 1}'\n```\n\n#### Core-Lightning \nBy running the `get-cln-strings.sh` make sure to run it after at least 100 blocks), strings to control the Core-Lightning node through [Zeus](https://github.com/ZeusLN/zeus) app and to share your node with other peers will be displayed. However, Zeus is not able to decode signet invoices, so peers cannot pay/receive any invoices. With some luck, one can use RTL which runs on http://localhost:3000\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenaples%2Fbitcoin-testing-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenaples%2Fbitcoin-testing-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenaples%2Fbitcoin-testing-tools/lists"}