This commit is contained in:
Elyan 2024-02-17 10:09:16 -08:00
commit 438f3be826

View File

@ -1,6 +1,4 @@
# easepay-custom-signet-script
## Custom Bitcoin Signet Docker Setup
# Custom Easepay Bitcoin Signet Docker Setup script
# Overview
@ -10,7 +8,7 @@ The provided Dockerfile and scripts automate the process of setting up a custom
# Features
* Custom Signet Configuration: Allows the creation of a private Signet with custom consensus rules.
* Custom Signet Configuration: Allows creating a private Signet with custom consensus rules.
* Automated Key and Script Generation: Automatically generates the necessary keys and block script for the Signet.
* Dockerized Environment: Ensures a consistent and isolated environment for running the Bitcoin node.
* Block Mining Capabilities: Includes scripts to mine blocks on the custom Signet.
@ -23,6 +21,7 @@ The provided Dockerfile and scripts automate the process of setting up a custom
# Repository Contents
* `Dockerfile`: Instructions for building the Docker image with Bitcoin Core and necessary dependencies.
* `generate_signet.sh`: Shell script to set up the custom Signet, generate keys, define the block script, and start the Bitcoin node.
* `bitcoin.conf`: Bitcoin.conf file for our signet setup that contains our signetchallenge
* `generate.py`: Python script used for mining blocks on the custom Signet.
@ -42,18 +41,19 @@ The provided Dockerfile and scripts automate the process of setting up a custom
```docker run -d -p 38333:38333 -p 38332:38332 bitcoin-signet```
The generate_signet.sh script will execute within the container, setting up the custom Signet and starting the Bitcoin node.
The `generate_signet.sh` script will execute within the container, setting up the custom Signet and starting the Bitcoin node.
**NOTE**: the signet challenge parameter (pubkey) should be generated before building
the docker image. this can be done in your local machine. This approach would mean you would have a fixed public key for your Signet, which isn't such a big deal for testing. its also possible to update the `generate_script.sh` script to dynamically create the bitcoin.conf after generating the public key. i ran into some issues trying to do this, you may have the time, so Knock yourself out and create a PR if you get it done.
the docker image. this can be done on your local machine. This approach would mean you would have a fixed public key for your Signet, which isn't such a big deal for testing. It's also possible to update the `generate_script.sh` script to dynamically create the bitcoin.conf after generating the public key. I ran into some issues trying to do this, you may have the time, so Knock yourself out and create a PR if you get it done.
## POINTERS
* The script would first start bitcoind in regtest mode, generate the key pair, construct the signetchallenge with the new public key,
* create the bitcoin.conf with this signetchallenge, and then restart bitcoind in Signet mode with the new configuration.
* Create the bitcoin.conf with this signetchallenge, and then restart bitcoind in Signet mode with the new configuration.
`Warning`: This approach is more complex but allows for a fresh public key each time you build and run the container.
## Accessing the Node
* The Bitcoin node's JSON-RPC interface will be available on port 38332 of the host machine.. This would be deployed for easy connection for all team members that needs to interact with it.
* The Bitcoin node's JSON-RPC interface will be available on port 38332 of the host machine... This would be deployed for easy connection for all team members who need to interact with it.
* The Bitcoin P2P network for this Signet operates on port 38333.
@ -62,7 +62,7 @@ You can modify the generate_signet.sh script to change the Signet parameters, su
## Security Considerations
This setup is intended for development and testing purposes only. Do not use it with real funds or sensitive data.
it is your responsibility to Ensure appropriate security measures are in place if exposing the node to public networks.
it is your responsibility to ensure appropriate security measures are in place if exposing the node to public networks.
## Contributing
Contributions to this project are welcome. Please ensure that any changes are tested with the Docker setup before submitting a pull request.