You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: guides-and-tutorials/nodes-and-miners/run-a-node-with-docker.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -25,9 +25,9 @@ While you _can_ run a node using these specs, it's _recommended_ to assign more
25
25
***1TB disk space for Bitcoin node**
26
26
27
27
{% hint style="warning" %}
28
-
MacOS with an ARM processor is NOT recommended
28
+
MacOS with an ARM (M-series chip) processor is NOT recommended
29
29
30
-
The way Docker for Mac on an Arm CPU is designed makes the I/O incredibly slow, and blockchains are _**very**_ heavy on I/O. This only seems to affect MacOS, other Arm based systems like Raspberry Pi work as expected.
30
+
The way Docker for Mac on an Arm CPU is designed makes the I/O incredibly slow, and blockchains are _**very**_ heavy on I/O. This only seems to affect MacOS with the M-series chip, other Arm based systems like Raspberry Pi work as expected.
- Nodes should be *exclusively dedicated* to serve the Signer. Avoid
27
-
re-using them to serve other clients as that may negatively affect
28
-
performance (no *mock-signing*, no *Stacks API nodes*).
29
-
- If running dedicated nodes is not possible, then ensure that the Bitcoin /
30
-
Stacks nodes do not become single point of failures for *multiple* signers
31
-
depending on them.
32
-
- Introduce redundancy, load balancing, rely on a robust Bitcoin RPC
33
-
provider, etc.
20
+
* Run a _dedicated_ Bitcoin node and Stacks node per Signer.
21
+
* Ensure the nodes are provisioned with the minimum hardware requirements described [here](https://docs.stacks.co/guides-and-tutorials/running-a-signer#minimum-system-requirements).
22
+
* 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_).
23
+
* If running dedicated nodes is not possible, then ensure that the Bitcoin / Stacks nodes do not become single point of failures for _multiple_ signers depending on them.
24
+
* Introduce redundancy, load balancing, rely on a robust Bitcoin RPC provider, etc.
34
25
35
26
### Split voting power across multiple Signers
36
27
37
-
- Distribute your voting power across multiple, distinct Signer public keys to
38
-
mitigate the risk of loss or downtime from a single compromised key.
39
-
- Each Signer should also limit voting power to a maximum amount and invite
40
-
Stackers to use a different Signer when the limit is reached.
28
+
* Distribute your voting power across multiple, distinct Signer public keys to mitigate the risk of loss or downtime from a single compromised key.
29
+
* Each Signer should also limit voting power to a maximum amount and invite Stackers to use a different Signer when the limit is reached.
41
30
42
31
### Monitor new software releases
43
32
44
-
- Stay up-to-date with new releases, patches, and security advisories (e.g.,
45
-
GitHub, mailing lists, Discord).
46
-
- Apply updates as quickly as possible, especially those addressing a security
47
-
vulnerability.
33
+
* Stay up-to-date with new releases, patches, and security advisories (e.g., GitHub, mailing lists, Discord).
34
+
* Apply updates as quickly as possible, especially those addressing a security vulnerability.
48
35
49
36
### Upgrade procedures
50
37
51
-
- Upgrading one Signer instance at the time.
52
-
- Test the update on one instance and, if successful, proceed to the others.
53
-
- While your Signer is offline for upgrades, it won't sign any blocks. Ensure
54
-
that the downtime is as short as possible.
38
+
* Upgrading one Signer instance at the time.
39
+
* Test the update on one instance and, if successful, proceed to the others.
40
+
* While your Signer is offline for upgrades, it won't sign any blocks. Ensure that the downtime is as short as possible.
55
41
56
42
### Diversified hosting
57
43
58
-
- Use different provider / configuration where feasible (e.g., a self-hosted
59
-
instance and one in the cloud, or in two different data center regions, etc.).
60
-
- Ensure each host has redundant power supply and network connectivity.
44
+
* Use different provider / configuration where feasible (e.g., a self-hosted instance and one in the cloud, or in two different data center regions, etc.).
45
+
* Ensure each host has redundant power supply and network connectivity.
61
46
62
47
### Fall-back deployments
63
48
64
-
- Deploy additional Stacks nodes and Bitcoin nodes to be used as fall-back.
65
-
- Use the same configuration as your _active_ instances.
66
-
- For the Stacks node, comment out the `event_observer` section.
67
-
- Prepare a backup Signer (same configuration) to be quickly activated, but _do
68
-
not run it_.
69
-
- At all times, there should be _exactly_ one Signer instance running for each
70
-
Signer private key.
71
-
- These instances should be hosted on separate physical hosts (see *diversified
72
-
hosting*) from the instances usually active in operations (serving each
73
-
Signer).
74
-
- If an active instance (e.g., the Signer, the Stacks node or the Bitcoin node)
75
-
fails, you can quickly switch to the fall-back configuration to continue
76
-
operations. To do that:
77
-
- Run the backup Signer.
78
-
- Enable the `event_observer` section of the Node configuration.
79
-
- Restart the node.
49
+
* Deploy additional Stacks nodes and Bitcoin nodes to be used as fall-back.
50
+
* Use the same configuration as your _active_ instances.
51
+
* For the Stacks node, comment out the `event_observer` section.
52
+
* Prepare a backup Signer (same configuration) to be quickly activated, but _do not run it_.
53
+
* At all times, there should be _exactly_ one Signer instance running for each Signer private key.
54
+
* These instances should be hosted on separate physical hosts (see _diversified hosting_) from the instances usually active in operations (serving each Signer).
55
+
* If an active instance (e.g., the Signer, the Stacks node or the Bitcoin node) fails, you can quickly switch to the fall-back configuration to continue operations. To do that:
56
+
* Run the backup Signer.
57
+
* Enable the `event_observer` section of the Node configuration.
58
+
* Restart the node.
80
59
81
60
### Redundancy in operations
82
61
83
-
- Ensure that multiple, trusted users can manage and maintain signer instances.
84
-
- Where feasible, users should span different timezones.
62
+
* Ensure that multiple, trusted users can manage and maintain signer instances.
63
+
* Where feasible, users should span different timezones.
85
64
86
65
### Backup signer keys in cold-storage
87
66
88
-
- Keep an offline, secure backup of all Signer private keys (e.g., hardware
89
-
security modules or encrypted storage devices).
90
-
67
+
* Keep an offline, secure backup of all Signer private keys (e.g., hardware security modules or encrypted storage devices).
0 commit comments