Skip to content

Commit cdeee19

Browse files
authored
Merge pull request #182 from dusk-network/restore-devnet-mode
2 parents 643e4b1 + 5b375c5 commit cdeee19

4 files changed

Lines changed: 157 additions & 10 deletions

File tree

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
</h1>
55

66
<p align="center">
7-
Official <img height="11" src="assets/dusk_circular_light.svg#gh-dark-mode-only"><img height="11" src="assets/dusk_circular_dark.svg#gh-light-mode-only"><a href="https://dusk.network/"> Dusk</a> Node installer, an easy-to-use installer for running a Dusk node on the Dusk mainnet and Nocturne testnet.
7+
Official <img height="11" src="assets/dusk_circular_light.svg#gh-dark-mode-only"><img height="11" src="assets/dusk_circular_dark.svg#gh-light-mode-only"><a href="https://dusk.network/"> Dusk</a> Node installer, an easy-to-use installer for running a Dusk node on the Dusk mainnet, Nocturne testnet, and devnet.
88
</p>
99

1010
<p align=center>
@@ -188,8 +188,8 @@ curl --proto '=https' --tlsv1.2 -sSfL https://raw.githubusercontent.com/dusk-net
188188
### Networks
189189

190190
By default, the installer runs the node for our mainnet. If you'd like to run a
191-
node for the Nocturne testnet, you can specify the network
192-
using the `--network` flag:
191+
node for the Nocturne testnet or devnet, you can specify the network using the
192+
`--network` flag:
193193

194194
```sh
195195
curl --proto '=https' --tlsv1.2 -sSfL https://github.com/dusk-network/node-installer/releases/latest/download/node-installer.sh | sudo bash -s -- --network testnet
@@ -199,6 +199,7 @@ Available network options:
199199

200200
- `mainnet` (default)
201201
- `testnet`
202+
- `devnet`
202203

203204
### Features
204205

@@ -309,6 +310,8 @@ endpoint for the network installed on the node by reading
309310
`/opt/dusk/conf/rusk.toml`, including mainnet and Nocturne testnet. If needed,
310311
you can override the detected network explicitly.
311312

313+
Fast syncing is not currently available for devnet.
314+
312315
To see the available published states, run:
313316

314317
```sh

conf/devnet.genesis

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Dusk account
2+
3+
[[moonlight_account]]
4+
address = 'o1YvWG34EBTwdskfZ7PCvWKRUWKzskVnhJNjZHdau6VaUNpgDxpoSsisK8KGF6FayUi8Lzn4taAvZcHGprQuPsqFGH66SEPDRCbTmKGVwFYX7bEp2rF4wekvoc4dS8ghnKf'
5+
balance = 699_000_000_000_000
6+
7+
# Faucet wallet
8+
9+
[[moonlight_account]]
10+
address = 'tUWiZxKqtVrP2uxqUAc593p1T5BW5MhPzjh8D2M32WFYpqjtBLbTAw6VhMN7BKYpaDjcy82GizsQ2pAgmguGTF9Bks3qNCDF3sDrpVWMXTJTWNGWgueHezvopEvUtZUs4mC'
11+
balance = 9_000_000_000_000_000
12+
13+
# Faucet wallets (Fulvio)
14+
15+
[[moonlight_account]]
16+
address = 'pR8NnsQ9Le2hyuEgx2fk4RuZTngkz9T7WfkdDKSJmnfRYMmkNUPhFYXNAeatxsYiixgqq4iKfSCVuo7NhFkLgrbn1VTTweLhPXocUQ4rfxMLRajebdCcPxp46ddSVMpu2Nf'
17+
balance = 75_000_000_000_000_000
18+
19+
[[moonlight_account]]
20+
address = 'uzUXZAWqhJB1e2czyAPvUk1MaRP4t6CMEQHBGP4ixYem7kphpbW7yF3kkGyMD5agJ7oDH7yQPwcGxgsC1PxrRDAELXMR76eqLcU2ck2oWVYRgxc16yWuCQ8PzHZrs9Qi1Vu'
21+
balance = 75_000_000_000_000_000
22+
23+
# 5 Dusk network provisioners
24+
25+
[[stake]]
26+
address = 'pFPEcfxidLvwmFKRQoifrSyWmmVY9UDEThoRFvGXddXRLZ8hB7xfWDYQYwHhTvZvXeL1p5Ygcnsuuxm1X8nHFJH6tEgK3cS76squcFVFSejaKJGMorYZdTup5uscNq6eDU2'
27+
amount = 500_000_000_000_000
28+
29+
[[stake]]
30+
address = 'rvXLHF8DBNwzZ63uSWPki3y7uNgGbdRCrKpouEP9N7awiGBDaP1uzyrtLBDtFbNgw8bPNjbyMsfAsNutZKnuX8JXzMiFvpW9vK4c2zmAmk3RygzwiFGCVJ9KSU7b4bgC1UT'
31+
amount = 500_000_000_000_000
32+
33+
[[stake]]
34+
address = 'rdHa4H5p1rVtQyqD5AjDHyr1EGg7yVU1wynqQ9VRqU8Wp7kMcePsSk2tURGzRLnzS36CaKEadpfRGwa3ucvFH5MEGYvF1LAqSQQT3zE1Fx7wQzYsrvDpJ44bBa6dKxN6mTC'
35+
amount = 500_000_000_000_000
36+
37+
[[stake]]
38+
address = '244Sywxj7PuMHpcPxemaXLcrY5rPgztra6H9Vz8cU1Ro5v23SxKTfVqr2yS7NXAXE1iq59ndn4aMZmYxuzu3Te3e9fokQKTUkYvFxYg2P2E8EEg1gWUbs3AFL2aNx62HQd7r'
39+
amount = 500_000_000_000_000
40+
41+
[[stake]]
42+
address = '24bfNr8MDUo5xJBecmeGzXDEraax4Cmbnhjyyt5GaL1Vbe6H48ZSYTpmjRDcFRDFzgzuePAPUNcdGMnBzBQBk4zAMgBCtPsY27tBJtKmB1st6qcmpzRR4Er5imxrzvMRnfWc'
43+
amount = 500_000_000_000_000
44+
45+
# Dusk network provisioners funds
46+
47+
[[moonlight_account]]
48+
address = 'pFPEcfxidLvwmFKRQoifrSyWmmVY9UDEThoRFvGXddXRLZ8hB7xfWDYQYwHhTvZvXeL1p5Ygcnsuuxm1X8nHFJH6tEgK3cS76squcFVFSejaKJGMorYZdTup5uscNq6eDU2'
49+
balance = 100_000_000_000
50+
51+
[[moonlight_account]]
52+
address = 'rvXLHF8DBNwzZ63uSWPki3y7uNgGbdRCrKpouEP9N7awiGBDaP1uzyrtLBDtFbNgw8bPNjbyMsfAsNutZKnuX8JXzMiFvpW9vK4c2zmAmk3RygzwiFGCVJ9KSU7b4bgC1UT'
53+
balance = 100_000_000_000
54+
55+
[[moonlight_account]]
56+
address = 'rdHa4H5p1rVtQyqD5AjDHyr1EGg7yVU1wynqQ9VRqU8Wp7kMcePsSk2tURGzRLnzS36CaKEadpfRGwa3ucvFH5MEGYvF1LAqSQQT3zE1Fx7wQzYsrvDpJ44bBa6dKxN6mTC'
57+
balance = 100_000_000_000
58+
59+
[[moonlight_account]]
60+
address = '244Sywxj7PuMHpcPxemaXLcrY5rPgztra6H9Vz8cU1Ro5v23SxKTfVqr2yS7NXAXE1iq59ndn4aMZmYxuzu3Te3e9fokQKTUkYvFxYg2P2E8EEg1gWUbs3AFL2aNx62HQd7r'
61+
balance = 100_000_000_000
62+
63+
[[moonlight_account]]
64+
address = '24bfNr8MDUo5xJBecmeGzXDEraax4Cmbnhjyyt5GaL1Vbe6H48ZSYTpmjRDcFRDFzgzuePAPUNcdGMnBzBQBk4zAMgBCtPsY27tBJtKmB1st6qcmpzRR4Er5imxrzvMRnfWc'
65+
balance = 100_000_000_000

conf/devnet.toml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# log_type = 'coloured' (default)
2+
log_type = 'json'
3+
4+
# log_level = 'info' (default)
5+
# log_filter = 'dusk_consensus=debug,node=debug,kadcast=debug'
6+
7+
[chain]
8+
genesis_timestamp = '2026-05-27T14:14:14Z'
9+
db_path = '/opt/dusk/rusk'
10+
consensus_keys_path = '/opt/dusk/conf/consensus.keys'
11+
min_gas_limit = 150_000
12+
13+
[vm]
14+
generation_timeout = '3s'
15+
16+
[databroker]
17+
max_inv_entries = 100
18+
max_ongoing_requests = 1000
19+
20+
[mempool]
21+
max_queue_size = 5000
22+
max_mempool_txn_count = 10000
23+
idle_interval = '5m'
24+
mempool_expiry = '30m'
25+
mempool_download_redundancy = 5
26+
27+
[kadcast]
28+
kadcast_id = 0x3
29+
public_address = 'N/A'
30+
listen_address = 'N/A'
31+
bootstrapping_nodes = ['159.69.52.221:9000', '159.69.115.19:9000']
32+
auto_propagate = false
33+
channel_size = 10000
34+
recursive_discovery = true
35+
36+
[kadcast.bucket]
37+
node_ttl = '120s'
38+
node_evict_after = '15s'
39+
bucket_ttl = '10m'
40+
min_peers = 20
41+
42+
[kadcast.network]
43+
udp_recv_buffer_size = 50_000_000
44+
# udp_send_backoff_timeout = '50us'
45+
udp_send_retry_interval = '5ms'
46+
udp_send_retry_count = 3
47+
blocklist_refresh_interval = '10s'
48+
49+
[kadcast.fec.encoder]
50+
min_repair_packets_per_block = 5
51+
mtu = 1300
52+
fec_redundancy = 0.15
53+
54+
[kadcast.fec.decoder]
55+
cache_ttl = '1m'
56+
cache_prune_every = '30s'
57+
max_udp_len = 2097152

node-installer.sh

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ VERSIONS=(
1313
["mainnet-rusk-wallet"]="0.3.0"
1414
["testnet-rusk"]="1.7.0-rc.1"
1515
["testnet-rusk-wallet"]="0.4.0"
16+
["devnet-rusk"]="1.7.0-rc.1"
17+
["devnet-rusk-wallet"]="0.4.0"
1618
)
1719

1820
# Default network and feature (Provisioner node)
@@ -33,19 +35,19 @@ while [[ "$#" -gt 0 ]]; do
3335
;;
3436
*)
3537
echo "Unknown option: $1"
36-
echo "Usage: $0 [--network mainnet|testnet] [--feature default|archive]"
38+
echo "Usage: $0 [--network mainnet|testnet|devnet] [--feature default|archive]"
3739
exit 1
3840
;;
3941
esac
4042
done
4143

4244
# Validate passed network
4345
case "$NETWORK" in
44-
mainnet|testnet)
46+
mainnet|testnet|devnet)
4547
echo "Selected network: $NETWORK"
4648
;;
4749
*)
48-
echo "Error: Unknown network $NETWORK. Use 'mainnet' or 'testnet'."
50+
echo "Error: Unknown network $NETWORK. Use 'mainnet', 'testnet', or 'devnet'."
4951
exit 1
5052
;;
5153
esac
@@ -119,20 +121,33 @@ configure_network() {
119121
mainnet)
120122
mv /opt/dusk/conf/mainnet.genesis /opt/dusk/conf/genesis.toml
121123
mv /opt/dusk/conf/mainnet.toml /opt/dusk/conf/rusk.toml
122-
rm /opt/dusk/conf/testnet.genesis
123-
rm /opt/dusk/conf/testnet.toml
124+
rm -f /opt/dusk/conf/testnet.genesis
125+
rm -f /opt/dusk/conf/testnet.toml
126+
rm -f /opt/dusk/conf/devnet.genesis
127+
rm -f /opt/dusk/conf/devnet.toml
124128
prover_url="https://provers.dusk.network"
125129
;;
126130
testnet)
127131
mv /opt/dusk/conf/testnet.genesis /opt/dusk/conf/genesis.toml
128132
mv /opt/dusk/conf/testnet.toml /opt/dusk/conf/rusk.toml
129-
rm /opt/dusk/conf/mainnet.genesis
130-
rm /opt/dusk/conf/mainnet.toml
133+
rm -f /opt/dusk/conf/mainnet.genesis
134+
rm -f /opt/dusk/conf/mainnet.toml
135+
rm -f /opt/dusk/conf/devnet.genesis
136+
rm -f /opt/dusk/conf/devnet.toml
131137
if [ -f "$service_file" ]; then
132138
sed -i "/^Environment=\"RUSK_RECOVERY_INPUT=/a Environment=\"RUSK_CONSENSUS_SPIN_TIME=$TESTNET_CONSENSUS_SPIN_TIME\"" "$service_file"
133139
fi
134140
prover_url="https://testnet.provers.dusk.network"
135141
;;
142+
devnet)
143+
mv /opt/dusk/conf/devnet.genesis /opt/dusk/conf/genesis.toml
144+
mv /opt/dusk/conf/devnet.toml /opt/dusk/conf/rusk.toml
145+
rm -f /opt/dusk/conf/mainnet.genesis
146+
rm -f /opt/dusk/conf/mainnet.toml
147+
rm -f /opt/dusk/conf/testnet.genesis
148+
rm -f /opt/dusk/conf/testnet.toml
149+
prover_url="https://devnet.provers.dusk.network"
150+
;;
136151
*)
137152
echo "Unknown network: $network. Defaulting to mainnet."
138153
configure_network "mainnet"
@@ -241,6 +256,13 @@ ln -sf /opt/dusk/bin/rusk /usr/bin/rusk
241256
ln -sf /opt/dusk/bin/ruskquery /usr/bin/ruskquery
242257
ln -sf /opt/dusk/bin/ruskreset /usr/bin/ruskreset
243258
ln -sf /opt/dusk/bin/rusk-wallet /usr/bin/rusk-wallet
259+
if [[ "$NETWORK" == "devnet" ]]; then
260+
if [[ -L /usr/bin/download_state && "$(readlink /usr/bin/download_state)" == "/opt/dusk/bin/download_state.sh" ]]; then
261+
rm -f /usr/bin/download_state
262+
elif [[ -e /usr/bin/download_state ]]; then
263+
echo "Leaving unmanaged /usr/bin/download_state in place; devnet fast sync is not available."
264+
fi
265+
fi
244266
if [[ "$NETWORK" == "mainnet" || "$NETWORK" == "testnet" ]]; then
245267
ln -sf /opt/dusk/bin/download_state.sh /usr/bin/download_state
246268
fi

0 commit comments

Comments
 (0)