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: docs/running-node.md
+79-64
Original file line number
Diff line number
Diff line change
@@ -5,142 +5,157 @@ This document describes in details how to configure different types of DCLedger
5
5
## Components
6
6
7
7
* Common release artifacts:
8
-
* Binary artifacts (part of the release):
9
-
* dcld: The binary used for running a node.
10
-
* dclcli: The binary that allows users to interact with the network of nodes.
11
-
* The service configuration file `dcld.service`
12
-
(either part of the release or [deployment](https://github.com/zigbee-alliance/distributed-compliance-ledger/deployment) folder).
13
-
* where to get:
14
-
* The latest release can be found at [DCL Releases](https://github.com/zigbee-alliance/distributed-compliance-ledger/releases).
15
-
* Additional generated data (for validators and observers):
16
-
* Genesis transactions file: `genesis.json`
17
-
* The list of alive peers: `persistent_peers.txt` with the following format: `<node id>@<node ip>,<node2 id>@<node2 ip>,...`.
18
-
* where to get:
19
-
* If you want to join an existing persistent network (such as Test Net), then look at the [Persistent Chains](../deployment/persistent_chains)
20
-
folder for a list of available networks. Each subfolder there represents a `<chain-id>` and contains the genesis and persistent_peers files.
8
+
*Binary artifacts (part of the release):
9
+
*dcld: The binary used for running a node.
10
+
*dclcli: The binary that allows users to interact with the network of nodes.
11
+
*The service configuration file `dcld.service`
12
+
(either part of the release or [deployment](../deployment) folder).
13
+
*where to get:
14
+
*The latest release can be found at [DCL Releases](https://github.com/zigbee-alliance/distributed-compliance-ledger/releases).
15
+
*Additional generated data (for validators and observers):
16
+
*Genesis transactions file: `genesis.json`
17
+
*The list of alive peers: `persistent_peers.txt` with the following format: `<node id>@<ip:port>,<node2 id>@<ip:port>,...`.
18
+
*where to get:
19
+
*If you want to join an existing persistent network (such as Test Net), then look at the [Persistent Chains](../deployment/persistent_chains)
20
+
folder for a list of available networks. Each subfolder there represents a `<chain-id>` and contains the genesis and persistent_peers files.
21
21
22
22
## Hardware requirements
23
23
24
24
Minimal:
25
-
- 1GB RAM
26
-
- 25GB of disk space
27
-
- 1.4 GHz CPU
25
+
26
+
* 1GB RAM
27
+
* 25GB of disk space
28
+
* 1.4 GHz CPU
28
29
29
30
Recommended (for highload applications):
30
-
- 2GB RAM
31
-
- 100GB SSD
32
-
- x64 2.0 GHz 2v CPU
31
+
32
+
* 2GB RAM
33
+
* 100GB SSD
34
+
* x64 2.0 GHz 2v CPU
33
35
34
36
## Operating System
35
37
36
38
Current delivery is compiled and tested under `Ubuntu 18.04.3 LTS` so we recommend using this distribution for now. In future, it will be possible to compile the application for a wide range of operating systems thanks to Go language.
37
39
38
40
Notes:
39
-
* the deployment commands below will try to setup and run `dcld` systemd service on Ubuntu
40
-
* that will require `sudo` for a user
41
-
* in case non-Ubuntu system these steps will be scipped so you would need to take care about
41
+
42
+
* the deployment commands below will try to setup and run `dcld` systemd service on Ubuntu
43
+
* that will require `sudo` for a user
44
+
* in case non-Ubuntu system these steps will be scipped so you would need to take care about
42
45
43
46
## Deployment
44
47
45
48
Pre-requisites:
46
-
1.`dcld` and `dclcli` binaries are located in `/usr/bin`
47
-
2. (for systemd systems) `dcld.service` is available in the current directory
48
-
3. (for validator and observer) `genesis.json` and `persistent_peers.txt` are available in the current directory
49
+
50
+
1.`dcld` and `dclcli` binaries are located in `/usr/bin`
51
+
2. (for systemd systems) `dcld.service` is available in the current directory
52
+
3. (for validator and observer) `genesis.json` and `persistent_peers.txt` are available in the current directory
49
53
50
54
### Genesis Validator Node
51
55
52
56
This part describes how to configure a genesis node - a starting point of any new network.
53
57
54
58
The following steps automates a set of instructions that you can find in [Running Genesis Node](running-genesis-node.md) document.
55
59
56
-
1. Choose the chain ID. Every network (for example, test-net, main-net, etc.)
57
-
must have a unique chain ID.
60
+
#### Choose the chain ID
61
+
62
+
Every network (for example, test-net, main-net, etc.) must have a unique chain ID.
63
+
64
+
#### Setup a node
58
65
59
-
2. run
66
+
Run
60
67
61
68
```bash
62
69
$ run_dcl_node -t genesis -c <chain-id> node0
63
70
```
64
71
65
72
This command:
66
73
67
-
- generates a new key entry for a node admin account
68
-
- generates `genesis.json` file with the following entries:
69
-
- a genenesis account for the key entry above with `Trustee` and `NodeAdmin` roles
70
-
- a genesis txn that makes the local node a validator
71
-
- configures and starts the node
74
+
* generates a new key entry for a node admin account
75
+
* generates `genesis.json` file with the following entries:
76
+
* a genenesis account for the key entry above with `Trustee` and `NodeAdmin` roles
77
+
* a genesis txn that makes the local node a validator
78
+
* configures and starts the node
72
79
73
80
Outputs:
74
81
75
-
- `*.dclkey.json` file in the current directory with node admint key data (address, public key, mnemonic)
76
-
- standard output:
77
-
- genesis file `$HOME/.dcld/config/genesis.json`
82
+
*`*.dclkey.json` file in the current directory with node admint key data (address, public key, mnemonic)
83
+
* standard output:
84
+
* genesis file `$HOME/.dcld/config/genesis.json`
85
+
86
+
**Note**. Once more validator nodes are added it's important to update:
87
+
88
+
*`persistent_peers.txt` file by including the entries for every added initial node
89
+
* update the `persistent_peers` field in `$HOME/.dcld/config/config.toml`
78
90
79
91
## Validator Node
80
92
81
93
This part describes how to configure a validator node and add it to the existing network.
82
94
83
95
The following steps automates a set of instructions that you can find in [Running Validator Node](running-validator-node.md) document
84
96
85
-
1. run
97
+
#### Setup a node
98
+
99
+
Run
86
100
87
101
```bash
88
102
$ run_dcl_node -c <chain-id><node-name>
89
103
```
90
104
91
105
This command:
92
106
93
-
- generates a new key entry for a node admin account
94
-
- by default `<node_name>admin` key name is used
95
-
- can be configured using `-k/--key-name` option
96
-
- properly locates `genesis.json`
97
-
- configures and starts the node
107
+
* generates a new key entry for a node admin account
108
+
* by default `<node_name>admin` key name is used
109
+
* can be configured using `-k/--key-name` option
110
+
* properly locates `genesis.json`
111
+
* configures and starts the node
98
112
99
113
Outputs:
100
114
101
-
- `*.dclkey.json` file in the current directory with node admint key data (address, public key, mnemonic)
102
-
- standard output:
103
-
- node admin key data: `address` and `pubkey`
104
-
- validator data: `address` and `pubkey`
115
+
*`*.dclkey.json` file in the current directory with node admint key data (address, public key, mnemonic)
116
+
* standard output:
117
+
* node admin key data: `address` and `pubkey`
118
+
* validator data: `address` and `pubkey`
105
119
106
-
2. Provide generated node admin key `address` and `pubkey` to any `Trustee`(s). So they may create
107
-
an account with `NodeAdmin` role. And **wait** until:
120
+
#### Ask for a ledger account
108
121
109
-
* Account is created
110
-
* The node completed a catch-up:
111
-
*`dclcli status --node <node ip>` returns `false` for `catching_up` field
122
+
Provide generated node admin key `address` and `pubkey` to any `Trustee`(s). So they may create
123
+
an account with `NodeAdmin` role. And **wait** until:
112
124
113
-
3. Make the node a validator:
125
+
* Account is created
126
+
* The node completed a catch-up:
127
+
*`dclcli status --node <ip:port>` returns `false` for `catching_up` field
0 commit comments