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
57 changes: 12 additions & 45 deletions docs/user/repository/ethereum.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,22 @@
# Ethereum repository

Dappnode uses smart contracts to distribute the dappnode packages available in the Dappstore. The smart contracts are deployed in the Ethereum blockchain and the Dappnode client interacts with them to get the list of available packages and to download them. Your dappnode will need a connection to an Ethereum node in order to read the smart contracts and download the packages. There are two ways to establish this connection:
Dappnode uses smart contracts to distribute Dappnode's packages available in the Dappstore and the Stakers tab. These smart contracts are deployed on the Ethereum blockchain, and the execution client interacts with them to get the list of available packages and download them.

- **Full Node**: By running a Full Node, you host the Ethereum blockchain. This ensures maximum control and independence, but requires syncing and maintaining the blockchain's latest state.

- **Remote Node**: Using a Remote Node means relying on an external Ethereum node. It's less resource-intensive but demands trust in the node operator.
Your Dappnode will therefore need access to an Ethereum node in order to read the smart contracts and fetch the packages.

## How the connection works

:::tip
To configure your dappnode Ethereum repository go to http://my.dappnode/repository/eth
:::
Dappnode automatically manages the connection between **local** and **remote** Ethereum nodes:

## Run your own Ethereum node
- If you have a **healthy Ethereum node** running locally, Dappnode will use it.
- If your local node is **syncing, unavailable, or unhealthy**, Dappnode will automatically fall back to a **remote node** to ensure uninterrupted access to the packages.

When choosing to run your own Ethereum node, you will need to select:
This means you no longer need to manually toggle between local and remote. Dappnode takes care of it for you.

1. **Execution client**
2. **Consensus client**
## Overwrite Dappnode's remote Ethereum node

Moreover, it is **highly recommended to enable** these additional options:
When remote mode is used, by default Dappnode connects to the **official Dappnode Ethereum node**.

3. **Use remote during syncing or errors**: If enabled, this will auto-switch from your Local node to the Dappnode Remote node under certain conditions. For instance, if your Ethereum node is syncing or if it's unavailable for some reason. Activating this option ensures uninterrupted access to the Dappnode smart contracts even if there's an issue with your Local node.

4. **Use checkpointsync**: By enabling this, your consensus client will utilize a checkpoint to fast-track the syncing of the Ethereum blockchain, making the process much quicker.

:::caution
Making changes here will also modify selections in the [Stakers](http://my.dappnode/stakers) tab.
:::

![ethereum-remote-full](/img/repository-eth-full.png)

:::caution
Running your own Ethereum node requires a lot of resources. You will need a powerful machine with a lot of storage and a good internet connection. If you don't have a powerful machine, you can use a remote Ethereum node.
:::

## Use a remote Ethereum node

You can use a remote Ethereum node to connect to the Ethereum network. You will need to trust the node operator.

![ethereum-remote-node](/img/repository-eth-remote.png)

:::note
At the moment, we only support Dappnode official Ethereum node. We are working on a way to allow users to add their own remote Ethereum nodes RPC endpoints. See https://github.com/dappnode/DNP_DAPPMANAGER/issues/1245
:::

<hr />

### Troubleshooting

<details>
<summary><b>Why did my clients change in the Full Node Repository selection?</b></summary>

At the moment, Dappnode only supports running one Ethereum mainnet node. If you change your selection in the [Stakers](http://my.dappnode/stakers/ethereum) menu, it will also change in the [Repository](http://my.dappnode/repository/eth) menu.
</details>
If desired, you can **overwrite the RPC endpoint** by configuring it in the Dappmanager’s package settings:
[http://my.dappnode/packages/system/dappmanager.dnp.dappnode.eth/config](http://my.dappnode/packages/system/dappmanager.dnp.dappnode.eth/config)
![Overwrite remote ethereum RPC](/img/overwrite-remote-eth-rpc.png)
2 changes: 1 addition & 1 deletion docs/user/repository/ipfs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Dappnode leverages IPFS for distributing packages available in the Dappstore. To
- **Use a Remote Node**: This is a convenient option, but it comes with the caveat of needing to trust the remote node operator. It is really useful in case your own IPFS node becomes unreliable or unavailable.

:::tip
To configure your dappnode IPFS repository go to http://my.dappnode/repository/ipfs
To configure your dappnode IPFS repository go to http://my.dappnode/system/ipfs
:::

## Run your own IPFS node
Expand Down
Binary file added static/img/overwrite-remote-eth-rpc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/img/repository-eth-full.png
Binary file not shown.
Binary file removed static/img/repository-eth-remote.png
Binary file not shown.
Binary file modified static/img/repository-ipfs-local.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/img/repository-ipfs-remote.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.