Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions astro.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ export default defineConfig({
'/itn/node-running-guide': '/nocturne/node-running-guide',
'/itn/testnet-faucet': '/nocturne/testnet-faucet',
'/itn/upgrade-node': '/nocturne/upgrade-node',
'/operator/guides/archive-node': '/operator/archive-node',
'/operator/guides/provisioner-node': '/operator/provisioner',
},
integrations: [
starlight({
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/developer/integrations/exchanges.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ To access the blockchain you can either:

You can interact with the blockchain and submit transactions by operating a Dusk node.

To set up a node, you may choose to use the [node installer](/operator/guides/provisioner-node/#node-installer) or manually install Rusk by following the provided [installation instructions](/operator/installation).
To set up a node, you may choose to use the [node installer](/operator/provisioner#node-installer) (recommended) or manually install Rusk by following the provided [installation instructions](https://github.com/dusk-network/rusk/blob/master/INSTALLATION.md).

Requirements vary depending on whether you are configuring a [Provisioner](/operator/provisioner) node or an [Archive](/operator/archive-node) node.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ An example for integration testing can be seen in the tests folder of our genesi

### Testing on Nocturne

Testing on Nocturne requires you to deploy the smart contract to the Nocturne chain and call the functions there via transactions. To get nDusk for the testnet you can use the [Faucet](/operator/guides/nocturne-faucet).
Testing on Nocturne requires you to deploy the smart contract to the Nocturne chain and call the functions there via transactions. To get nDusk for the testnet you can use the [Faucet](/operator/networks#how-to-get-testnet-tokens).

## Additional Resources

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/learn/community.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ Your feedback helps us improve. Feel free to suggest new ideas or report any iss

## Join Dusk as a Node operator

To ease you into the intricacies of Dusk, you might consider participating in node running: [run a Provisioner node](/operator/guides/provisioner-node).
To ease you into the intricacies of Dusk, you might consider participating in node running: [run a Provisioner node](/operator/provisioner).
24 changes: 12 additions & 12 deletions src/content/docs/learn/guides/duskevm-bridge.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@ title: Bridge DUSK from DuskDS to DuskEVM Testnet
description: How to use the Dusk Web Wallet to move DUSK from the DuskDS testnet to the DuskEVM testnet and interact with the EVM network.
---

This guide explains how to bridge your DUSK on DuskDS to DuskEVM on the public testnet using the official Dusk Web Wallet
This guide explains how to bridge your DUSK on DuskDS to DuskEVM on the public testnet using the official Dusk Web Wallet.

Once bridged, your DUSK becomes the native gas token on DuskEVM, so you can deploy and interact with smart contracts using standard EVM tooling.
Once bridged, your DUSK becomes the native gas token on DuskEVM, so you can deploy and interact with smart contracts using standard EVM tooling.

## 1) Prerequisites

Before you start, make sure you have:

- A Dusk Web Wallet account and some testnet DUSK. For more details on getting testnet DUSK see the [Nocturne Faucet Guide](/operator/guides/nocturne-faucet/).
- A Dusk Web Wallet account and some testnet DUSK. For more details on getting testnet DUSK see the [Nocturne Faucet Guide](/operator/networks#how-to-get-testnet-tokens).
- Make sure to have the amount of DUSK unshielded you want to bridge.
- A Web3 wallet (e.g. MetaMask) installed in your browser.
- Optional, for developers: familiarity with the [DuskEVM deep dive](/learn/deep-dive/dusk-evm/) and [Deploy on DuskEVM](/developer/smart-contracts-dusk-evm/deploy-on-evm/).
- Optional, for developers: familiarity with the [DuskEVM deep dive](/learn/deep-dive/dusk-evm/) and [Deploy on DuskEVM](/developer/smart-contracts-dusk-evm/deploy-on-evm/).

## 2) Open the Web Wallet on DuskDS testnet

1. Visit the [Dusk Web Wallet](https://apps.testnet.dusk.network/wallet/)
1. Visit the [Dusk Web Wallet](https://apps.testnet.dusk.network/wallet/)
2. Unlock your wallet (or restore it with your 12‑word recovery phrase if needed).
3. Confirm you have enough unshielded DUSK. You need enough for the amount you want to bridge and a small bridge fee.

Expand Down Expand Up @@ -88,7 +88,7 @@ Carefully verify:
If everything looks good:

1. Click SEND.
2. The wizard moves to Step 3 (status screen).
2. The wizard moves to Step 3 (status screen).
You’ll see status messages such as "Processing transaction" and "Transaction pending", and a "VIEW ON BLOCK EXPLORER" button for the originating transaction.

Under the hood, the wallet creates and broadcasts a DuskDS transaction that calls the bridge contract’s `deposit` function with your amount. This locks DUSK on DuskDS and schedules minting on DuskEVM for your EVM address.
Expand All @@ -97,7 +97,7 @@ Under the hood, the wallet creates and broadcasts a DuskDS transaction that call

### 6.1 On DuskDS

When the DuskDS transaction is created the status screen in the bridge wizard shows your transaction as **pending**. The "VIEW ON BLOCK EXPLORER" button opens the Dusk block explorer, where you can inspect the transaction status, fees and gas used.
When the DuskDS transaction is created the status screen in the bridge wizard shows your transaction as **pending**. The "VIEW ON BLOCK EXPLORER" button opens the Dusk block explorer, where you can inspect the transaction status, fees and gas used.

You can also manually go to the [DuskDS Testnet Explorer](https://apps.testnet.dusk.network/explorer/) and search by your DuskDS address or the transaction hash.

Expand All @@ -107,11 +107,11 @@ Once the deposit has been processed by DuskEVM, which can take a couple of minut

To inspect this on the explorer:

1. Open the [DuskEVM testnet explorer](https://explorer.testnet.evm.dusk.network/).
1. Open the [DuskEVM testnet explorer](https://explorer.testnet.evm.dusk.network/).
2. Search by your EVM address.
3. You’ll see standard EVM‑style transaction details: Block number, gas used, logs, etc.

Because DuskEVM is an EVM‑equivalent environment, the explorer behaves much like other EVM explorers.
Because DuskEVM is an EVM‑equivalent environment, the explorer behaves much like other EVM explorers.

## 7) Interacting with DuskEVM after bridging

Expand All @@ -127,11 +127,11 @@ Once you have DUSK on DuskEVM Testnet, you can use it just like gas on any EVM c

For developers:

1. Configure your tooling (Hardhat, Foundry, etc.) to talk to the DuskEVM testnet RPC endpoint and chain ID. These details are available on the [Deploy on DuskEVM](/developer/smart-contracts-dusk-evm/deploy-on-evm/) guide.
1. Configure your tooling (Hardhat, Foundry, etc.) to talk to the DuskEVM testnet RPC endpoint and chain ID. These details are available on the [Deploy on DuskEVM](/developer/smart-contracts-dusk-evm/deploy-on-evm/) guide.
2. Use the same EVM address you funded via the bridge as the deployer:
- Hardhat: set the private key of that account in your network config.
- Foundry: use the same account for `forge create` / `cast` commands.
3. Gas costs and transaction semantics follow the EVM‑equivalent rules described in the [DuskEVM overview](/learn/deep-dive/dusk-evm/).
3. Gas costs and transaction semantics follow the EVM‑equivalent rules described in the [DuskEVM overview](/learn/deep-dive/dusk-evm/).

Because DuskEVM is EVM‑equivalent and built on the OP Stack, most Ethereum tooling works out of the box — you only need to point it to the correct RPC and chain ID.

Expand Down Expand Up @@ -161,4 +161,4 @@ After you submit a withdrawal:
- On the DuskDS side, the withdrawal becomes finalizable after a certain number of blocks (the finalization period).
- The Web Wallet’s Bridge -> Transactions view shows your pending withdrawals:
- Once a withdrawal is ready, a "Finalize now" button appears.
- Clicking it sends a DuskDS transaction to finalize the withdrawal and release your DUSK back to your DuskDS account, this can take up to 15 minutes.
- Clicking it sends a DuskDS transaction to finalize the withdrawal and release your DUSK back to your DuskDS account, this can take up to 15 minutes.
14 changes: 8 additions & 6 deletions src/content/docs/operator/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ description: Frequently asked questions about running a node on Dusk.
The full node that is used to take part in the consensus is the [**provisioner node**](/operator/provisioner).

#### Can I build Rusk from source?
Yes, instructions to build Rusk from source can be found [here](/operator/from-source)

Yes, instructions to build Rusk from source can be found [here](https://github.com/dusk-network/rusk/blob/master/INSTALLATION.md)

#### Which ports does Dusk use?

Expand Down Expand Up @@ -85,8 +86,9 @@ As there's also a password on the file when you export, you need to set it on th
As long as you have your mnemonic phrase stored safely, you can recover everything else.

#### What should I do if I lose my SSH key file?
1) Spin up a fresh instance and [install Rusk](/operator/installation)
2) Restore your wallet using the previous mnemonic.

1) Spin up a fresh instance and [install Rusk](/operator/provisioner)
2) Restore your wallet using the previous mnemonic.
3) [Export the consensus key](/operator/guides/node-wallet-setup/#export-consensus-key) from the restored wallet.
4) Once the new node is fully synced, it will start participating in consensus. There is no need to stake again. You can then safely delete the old instance.

Expand All @@ -102,7 +104,7 @@ rusk-wallet moonlight-stake --amt 3000
```

#### How to resume validating again after missing an upgrade?
If you didn't upgrade your node on time and got soft slashed, you need to:
If you didn't upgrade your node on time and got soft slashed, you need to:

1) Unstake the full amount
2) Upgrade your node
Expand All @@ -123,7 +125,7 @@ service rusk start
```

#### How can I run a Dusk node on Docker?
We don't support a production-ready Docker image for Rusk. To run Rusk through Docker as ephemeral (non-persistent storage), you can use the following command:
We don't support a production-ready Docker image for Rusk. To run Rusk through Docker as ephemeral (non-persistent storage), you can use the following command:

```bash
docker run -p 9000:9000/udp -p 8080:8080/tcp dusknetwork/node
Expand All @@ -138,7 +140,7 @@ Bootstrapper nodes are used during initial synchronization to help your node joi
If you configure your node to use a different port (e.g., 42069), it’s crucial to ensure that other nodes, including bootstrappers, are aware of and can adapt to this port. Otherwise, they will not route messages to your node.

**With the Node Installer:**
If you are using the Node Installer, it is recommended to specify Kadcast configuration updates in `/opt/dusk/services/rusk.conf.user`. This file takes precedence over `rusk.conf.default` and ensures your changes are retained during updates.
If you are using the Node Installer, it is recommended to specify Kadcast configuration updates in `/opt/dusk/services/rusk.conf.user`. This file takes precedence over `rusk.conf.default` and ensures your changes are retained during updates.

You can add or modify the following section:

Expand Down
82 changes: 80 additions & 2 deletions src/content/docs/operator/archive-node.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Archive nodes
title: Run an archive node
description: Learn about Dusk archive nodes that store and give access to Dusk’s historical data.
---

Expand All @@ -12,7 +12,7 @@ In short, archive nodes:
- Can participate in consensus, by staking DUSK. However, they are not required to.

:::tip[Run an Archive node]
If you want to quickly launch & run an archive node, you can use the <a href="https://github.com/dusk-network/node-installer" target="_blank">node installer</a> by following [the archive guide](/operator/guides/archive-node).
If you want to quickly launch & run an archive node, you can use the <a href="https://github.com/dusk-network/node-installer" target="_blank">node installer</a> by following [the archive guide](/operator/archive-node).
Comment thread
HDauven marked this conversation as resolved.
:::

## Archive Node Specifications
Expand All @@ -22,3 +22,81 @@ Archive nodes store and serve historical data and require large storage capacity
| CPU | RAM | Storage | Network Connection |
| :------------- | :--- | :------ | :----------------- |
| 4 cores; 2 GHz | 8 GB | 500 GB | 100 Mbps |

## Run an archive node
> A step-by-step guide to setting up a Dusk archive node.

The following guide will explain you how to install and setup an archive node on Ubuntu 24.04 through the [node installer](https://github.com/dusk-network/node-installer). This installer will set up Rusk as a service on your server, preconfigure parts of the node, and provide a couple of helper scripts.

Install Rusk with the archive feature enabled by pasting the following command in your server terminal:
```sh
curl --proto '=https' --tlsv1.2 -sSfL https://github.com/dusk-network/node-installer/releases/latest/download/node-installer.sh | sudo bash -s -- --feature archive
```

This will install an archive node with the network being set to mainnet.

## Configure Rusk

You now should have successfully installed Rusk.

A quick check with:

```sh
ruskquery version
```

Should tell you, that you are running the latest installer version.

## Start your node

If you've configured everything correctly, you can now start rusk:
```sh
service rusk start
```

Your node will now start syncing. You can check if it indeed is by running:
```sh
ruskquery block-height
```

It is best to wait until your node is synced up. You can find the latest block height on [the block explorer](https://explorer.dusk.network/). Alternatively, consider [fast-syncing](/operator/guides/fast-sync) for a quicker method.

## Enable http

If you want to serve archive data to the outside world, your node needs to enable the http capabilities. This can be done by adding

```toml
// rusk.toml
[http]
listen = true
listen_address = '0.0.0.0:8080'
```

To your rusk.toml file in your system's `/opt/dusk/conf` folder. That's it.

Now you can query the archive for data with an external client application.

## Test archive endpoint

You can check which graphQL endpoints are available by calling the endpoint with an empty query:
```bash
curl -i -H 'Content-Type: application/json' \
-X POST -d "" https://yournodeIPorDomain.example
```

This should now return a different list than a normal node returns. An example endpoint that is now available is the **checkBlock** endpoint, which returns true or false whether a block height matches a specific block hash, which can also be queried only for finalized blocks.

In order to test this endpoint, you can run the following command.

```bash
curl -i -H 'Content-Type: application/json' \
-X POST -d "query { checkBlock(height: 1, hash: \"abc\", onlyFinalized: true) }" https://yournodeIPorDomain.example
```

which should return `{"checkBlock":false}`

## Stake with archive node

It is possible to stake and participate in consensus while the archive node is running. This is usually not recommended, but is possible since the archive is built on top of a normal provisioner node and therefore has all the capabilities to do so.

You can read the [node wallet guide](/operator/guides/node-wallet-setup) for a step-by-step instruction on setting up the wallet, depending on if you want the archive node to participate in consensus too or not.
Loading