-
Notifications
You must be signed in to change notification settings - Fork 237
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Start adding best practices for running an sBTC signer (#1678)
* Start adding best practices for running an sBTC signer * Update guides-and-tutorials/sbtc/best_practices_for_running_an_sbtc_signer.md Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org> * Update guides-and-tutorials/sbtc/how-to-run-sbtc-signer.md Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org> * Rename * Update how-to * Fix links * Update guides-and-tutorials/sbtc/how-to-run-sbtc-signer.md Co-authored-by: BowTiedDevOps <157840260+BowTiedDevOps@users.noreply.github.com> * Fix default Bitcoin RPC port * Add deployer --------- Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org> Co-authored-by: BowTiedDevOps <157840260+BowTiedDevOps@users.noreply.github.com>
- Loading branch information
1 parent
6f332b9
commit a75a178
Showing
4 changed files
with
150 additions
and
449 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,7 @@ | ||
The guides in this section provide step-by-step instructions for interacting with sBTC, including operating as a signer and (coming soon) developer guides on how to interact with sBTC as an application developer. | ||
The guides in this section provide step-by-step instructions for interacting | ||
with sBTC, including operating as a signer and (coming soon) developer guides on | ||
how to interact with sBTC as an application developer. | ||
|
||
Note that in order to run a sBTC signer you must be one of the [approved signers](https://github.com/stacks-network/sbtc/discussions/624) described in [SIP-028](https://github.com/andrerserrano/sips/blob/main/sips/sip-028/sip-028-sbtc_peg.md). | ||
Note that in order to run a sBTC signer you must be one of the [approved | ||
signers](https://github.com/stacks-network/sbtc/discussions/624) described in | ||
[SIP-028](https://github.com/andrerserrano/sips/blob/main/sips/sip-028/sip-028-sbtc_peg.md). |
61 changes: 61 additions & 0 deletions
61
guides-and-tutorials/sbtc/best-practices-for-running-an-sbtc-signer.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Best practices for running a sBTC signer | ||
|
||
The following best practices suggest how to create a resilient setup for running | ||
your sBTC Signer. | ||
|
||
## Protect your private key | ||
|
||
- Prevent unauthorised access to the sBTC Signer private key. | ||
|
||
### Backup signer keys in cold-storage | ||
|
||
- Keep an offline, secure backup of your sBTC Signer private key (e.g., hardware | ||
security modules or encrypted storage devices). | ||
|
||
## Backup your Postgres DB | ||
|
||
- Periodically backup the sBTC Signer Postgresql DB. | ||
|
||
## Firewall | ||
|
||
- Allow connections to your signer `listen_on` address (used for P2P | ||
communication). | ||
- Optionally, allow traffic to the P2P ports of your Stacks and Bitcoin node. | ||
- Deny traffic to any other port and service, unless required, e.g. for SSH. | ||
|
||
### Monitor and observer your sBTC Signer | ||
|
||
{% hint style="info" %} | ||
This section is in progress as the core developers improve the sBTC Signer | ||
observability. | ||
{% endhint %} | ||
|
||
- Retain at least 1 day of logs for both the sBTC Signer, the Stacks node, and the | ||
Bitcoin node. | ||
|
||
### Downstream components | ||
|
||
- Run a *dedicated* Bitcoin node and Stacks node for your sBTC Signer. | ||
- Ensure the nodes are provisioned with the minimum hardware requirements | ||
described [here][0]. | ||
- Nodes should be *exclusively dedicated* to serve the Signer. Avoid | ||
re-using them to serve other clients as that may negatively affect | ||
performance (no *mock-signing*, no *Stacks API nodes*). | ||
|
||
### Redundancy in operations | ||
|
||
- Ensure that multiple, trusted users can manage and maintain your sBTC Signer instance. | ||
- Where feasible, users should span different timezones. | ||
|
||
### Monitor new software releases | ||
|
||
- Stay up-to-date with new releases, patches, and security advisories (e.g., | ||
GitHub, mailing lists, Discord). | ||
- Apply updates as quickly as possible, especially those addressing a security | ||
vulnerability. | ||
|
||
## References | ||
|
||
[0]: https://docs.stacks.co/guides-and-tutorials/running-a-signer#minimum-system-requirements | ||
|
||
- [Best practices to run a Stacks Signer](../running-a-signer/best-practices-to-run-a-signer.md). |
Oops, something went wrong.