Remove in-development docs for sidechains and EVM sidechains (#1863)

* Remove in-development docs for EVM sidechain and now obsolete content for federated sidechains dev preview

* Remove disclaimer note about EVM sidechain

* Remove references to sidechains which are in development

* Add redirects to deleted pages

* Incorporate feedback to comment out Issue Fields

* Fix broken links
This commit is contained in:
Amarantha Kulkarni
2023-04-10 07:25:07 -07:00
committed by GitHub
parent aa2809ac5e
commit 87178f3fcb
36 changed files with 76 additions and 866 deletions

View File

@@ -1,50 +0,0 @@
---
html: connect-metamask-to-xrpl-evm-sidechain.html
parent: get-started-evm-sidechain.html
blurb: Learn how to connect MetaMask wallet to the EVM Sidechain for the XRP Ledger.
labels:
- Development, Interoperability
status: not_enabled
---
# Connect MetaMask to XRP Ledger Sidechain
{% include '_snippets/evmsc-disclaimer.md' %}
MetaMask is an extension for accessing Harmony-enabled distributed applications (_dapps_) from your browser. The extension injects the XRP Ledger EVM sidechain Web3 API into every website's Javascript context, so that Web3 applications can read from the blockchain. <!-- SPELLING_IGNORE: dapps -->
This tutorial walks through the process of installing MetaMask, configuring it on the XRP Ledger EVM sidechain network, and importing an existing account using a previously generated private key.
## 1. Installing MetaMask
Install the MetaMask extension on your browser from **[https://metamask.io/download/](https://metamask.io/download/)**. The extension supports most desktop browsers.
## 2. Create an Account on MetaMask
To create a new account on MetaMask:
1. Click the MetaMask icon.
![Create an account on MetaMask](img/evm-sidechain-create-metamask-account.png "Create an account on MetaMask")
2. Choose **Create Account**.
3. Enter the Account Name.
4. Click **Create**.
### 3. Adding XRP Ledger EVM Sidechain to MetaMask
To add XRP Ledger EVM Sidechain to MetaMask:
1. Open the MetaMask extension.
2. Use the drop-down menu to choose **Add Network**.
![Add the EVM Sidechain network to MetaMask](img/evm-sidechain-add-metamask-network.png "Add the EVM Sidechain network to MetaMask")
3. Enter the XRP Ledger Devnet endpoint information.
* **Network Name**: XRP Ledger EVM Sidechain
* **New RPC URL**: https://rpc-evm-sidechain.xrpl.org
* **Chain ID**: 1440001
* **Currency Symbol**: XRP
* **Block Explorer**: https://evm-sidechain.xrpl.org

View File

@@ -1,110 +0,0 @@
---
html: evm-sidechain-run-a-validator-node.html
parent: evm-sidechains.html
blurb: Learn how to run a validator node on the EVM Sidechain Devnet.
labels:
- Development, Interoperability
status: not_enabled
---
# Run a Validator Node on an EVM Sidechain
{% include '_snippets/evmsc-disclaimer.md' %}
## Create Your Validator
Use your node consensus public key (`exrpvalconspub...`) to create a new validator by staking XRP tokens. You can find your validator public key by running:
```bash
exrpd tendermint show-validator
```
To create your validator on Devnet, use the following command:
```bash
exrpd tx staking create-validator \
--amount=1000000000000000000000axrp \
--pubkey=$(exrpd tendermint show-validator) \
--moniker="<your_custom_moniker>" \
--chain-id=<chain_id> \
--commission-rate="0.05" \
--commission-max-rate="0.10" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025aphoton" \
--from=<key_name>
```
**Note** When specifying commission parameters, the `commission-max-change-rate` is used to measure % *point* change over the `commission-rate`. For example, 1% to 2% is a 100% rate increase, but only 1 percentage point.
**Note** `Min-self-delegation` is a strictly positive integer that represents the minimum amount of self-delegated voting power your validator must always have. A `min-self-delegation` of `1000000` means your validator will never have a self-delegation lower than `1 axrp`. <!-- STYLE_OVERRIDE: will -->
You can confirm that you are in the validator set by using a third-party explorer.
## Edit Validator Description
You can edit your validator's public description. This info identifies your validator, and _delegators_ use it when they decide to stake XRP tokens to a particular validator. Make sure to provide input for every flag below. If a flag is not included in the command, the field defaults to empty (`--moniker` defaults to the machine name), if the field has never been set, or remains the same, if it has been set in the past. <!-- SPELLING_IGNORE: delegators --><!-- STYLE_OVERRIDE: defaults to -->
The <key_name> specifies which validator you are editing. If you choose to not include certain flags, remember that the --from flag must be included to identify the validator to update.
The `--identity` can be used as to verify identity with systems like Keybase or UPort. When using with Keybase `--identity` must be populated with a 16-digit string that is generated with a [keybase.io](https://keybase.io/) account. It is a cryptographically secure method of verifying your identity across multiple online networks. The Keybase API allows us to retrieve your Keybase avatar. This is how you can add a logo to your validator profile. <!-- SPELLING_IGNORE: uport -->
```bash
exrpd tx staking edit-validator
--moniker="<your_custom_moniker>" \
--website="https://xrpl.org" \
--identity=6A0D65E29A4CBC8E \
--details="<your_validator_description>" \
--chain-id=<chain_id> \
--gas="auto" \
--gas-prices="0.025axrp" \
--from=<key_name> \
--commission-rate="0.10"
```
Note that the `commission-rate` value must adhere to the following invariants:
* Must be between 0 and the validator's `commission-max-rate`
* Must not exceed the validator's `commission-max-change-rate` which is the maximum % point change rate **per day**. In other words, a validator can only change its commission once per day and within `commission-max-change-rate` bounds.
## View Validator Description
View the validator's information with this command:
```bash
exrpd query staking validator <account>
```
## Track Validator Signing Information
To track a validator's signatures from past transactions use the `signing-info` command.
```bash
exrpd query slashing signing-info <validator-pubkey> --chain-id=<chain_id>
```
## Unjail Validator
<!-- SPELLING_IGNORE: unjail -->
When a validator is "jailed" for downtime, you must submit an `Unjail` transaction from the operator account to restore block proposer awards (depending on the zone fee distribution).
```bash
exrpd tx slashing unjail --from=<key_name> --chain-id=<chain_id>
```
## Confirm Your Validator is Running
Your validator is active if the following command returns anything:
```bash
exrpd query tendermint-validator-set | grep "$(exrpd tendermint show-address)"
```
You should now see your validator in one of the Exrp explorers. You are looking for the `bech32` encoded `address` in the `~/.exprd/config/priv_validator.json` file. <!-- SPELLING_IGNORE: exrp -->
**Note** To be in the validator set, you must have more total voting power than the 100th validator.
## Halting Your Validator
When attempting to perform routine maintenance or planning for an upcoming coordinated upgrade, it can be useful to have your validator systematically and gracefully halt. Set the `halt-height` to the height at which you want your node to shut down, or pass the `--halt-height` flag to `exrpd`. The node shuts down with a 0 exit code at that given height after committing the block.

View File

@@ -1,67 +0,0 @@
---
html: evm-sidechain-validator-security.html
parent: join-evm-sidechain-devnet.html
blurb: Learn how to join the XRP Ledger EVM Sidechain Devnet.
labels:
- Development, Interoperability
status: not_enabled
---
# EVM Sidechain Validator Security
{% include '_snippets/evmsc-disclaimer.md' %}
Each validator candidate is encouraged to run its operations independently, as diverse setups increase the resilience of the network. Validator candidates should begin their setup phase now, to be on time for launch.
## Horcrux
Horcrux is a [multi-party-computation (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation) signing service for Tendermint nodes.
- Composed of a cluster of signer nodes in place of the [remote signer](https://docs.tendermint.com/master/nodes/remote-signer.html), thereby enabling High Availability (HA) for block signing through fault tolerance.
- Secures your validator private key by splitting it across multiple private signer nodes using threshold Ed25519 signatures.
- Adds security and availability without sacrificing block sign performance.
For information on how to upgrade your validator infrastructure with Horcrux, refer to the [documentation](https://github.com/strangelove-ventures/horcrux/blob/main/docs/migrating.md).
## Tendermint KMS
Tendermint KMS is a signature service with support for Hardware Security Modules (HSMs), such as YubiHSM 2 and Ledger Nano. It is intended to be run alongside XRP Ledger EVM Sidechain validators, ideally on separate physical hosts, providing defense-in-depth for online validator signing keys, double signing protection, and a central signing service that can be used when running multiple validators in several zones. <!-- SPELLING_IGNORE: kms, hsms, yubihsm, yubikey -->
## Hardware Security Modules (HSM)
You must ensure that an attacker cannot steal a validator's key. Otherwise, the entire stake delegated to the compromised validator at risk. Hardware security modules (HSM) help mitigate this risk.
HSMs must support **`ed25519` signatures for Evmos**. The [YubiHSM 2](https://www.yubico.com/products/hardware-security-module/) supports `ed25519` and can be used with this YubiKey [library](https://github.com/iqlusioninc/yubihsm.rs). <!-- SPELLING_IGNORE: evmos -->
**IMPORTANT**: The YubiHSM can protect a private key but **cannot ensure** in a secure setting that it will not sign the same block twice. <!-- STYLE_OVERRIDE: will -->
## Sentry Nodes (DDOS Protection)
Validators are responsible for ensuring that the network can sustain denial of service attacks.
One recommended way to mitigate these risks is for validators to carefully structure their network topology in a sentry node architecture.
Validator nodes should only connect to full-nodes they trust; either they run these nodes themselves, or the nodes are run by other validator administrators they know personally. A validator node typically runs in a data center. Most data centers provide direct links to the networks of major cloud providers. The validator can use those links to connect to sentry nodes in the cloud. This shifts the burden of denial-of-service from the validator's node directly to its sentry nodes, and might require new sentry nodes be spun up or activated to mitigate attacks on existing ones.
Sentry nodes can be quickly spun up or change their IP addresses. Because the links to the sentry nodes are in private IP space, an internet-based attacked cannot disturb them directly. This ensures that the validator's block proposals and votes always make it to the rest of the network.
To set up your sentry node architecture:
1. Edit your validator node's `config.toml` file:
```sql
#Comma separated list of nodes to keep persistent connections to
#Do not add private peers to this list if you don't want them advertised
persistent_peers =[list of sentry nodes]
# Set true to enable the peer-exchange reactor
pex = false
```
2. Edit your sentry node's `config.toml` file:
```sql
#Comma separated list of peer IDs to keep private (will not be gossiped to other peers)
#Example ID: 3e16af0cead27979e1fc3dac57d03df3c7a77acc@3.87.179.235:26656
private_peer_ids = "node_ids_of_private_peers"
```

View File

@@ -1,120 +0,0 @@
---
html: get-started-evm-sidechain.html
parent: evm-sidechains.html
blurb: Get started with the EVM compatible sidechain for the XRP Ledger.
labels:
- Development, Interoperability
status: not_enabled
---
# Get Started with the EVM Sidechain
{% include '_snippets/evmsc-disclaimer.md' %}
This getting started tutorial walks you through the steps to set up your account and submit a transaction using the EVM sidechain bridge.
## 1. Create an Account Using an EVM Compatible Wallet
<!-- STYLE_OVERRIDE: wallet -->
In order to interact with the network, you need to create an account in the EVM sidechain. To create and manage this account you can use any EVM compatible wallet such as MetaMask.
For instructions on how to install and create an account using MetaMask, see [Connect MetaMask to XRP Ledger EVM Sidechain](connect-metamask-to-xrpl-evm-sidechain.html).
## 2. Assign your XRP Ledger Devnet Tokens to the EVM Sidechain
Before you can start interacting with the EVM blockchain, you need to assign some of your XRP Ledger Devnet Tokens to the EVM Sidechain.
To generate tokens in the XRP Ledger Devnet, go to the [XRP Faucets](xrp-testnet-faucet.html) page and click *Generate Devnet credentials* to generate a new Devnet account with some test XRP in it.
![Generate XRP Ledger Devnet credentials](img/evm-sidechain-xrpl-devnet-faucet.png "Generate XRP Ledger Devnet credentials")
Note the address and secret associated with your Devnet address. You need this information to set up your preferred XRP Ledger wallet.
## 3. Submit a Transaction Using the EVM Sidechain Bridge
Once you have your accounts set up and test fund allocated, submit a transaction to assign some of your test tokens from the XRP Ledger Devnet to the EVM Sidechain using the EVM Sidechain bridge.
The EVM Sidechain bridge is a tool that enables transactions between chains in a fast and secure way.
To start using the bridge, go to [https://bridge.devnet.xrpl.org](https://bridge.devnet.xrpl.org/)
### 1. Connect Both Wallets
**Connect Xumm Wallet**
Use your Xumm wallet to interact with the XRP Ledger Devnet chain.
Ensure that you have created an account on the public XRP Ledger Devnet as described in Step 1.
To connect a Xumm wallet to the bridge, go to the [EVM Sidechain bridge](https://bridge.devnet.xrpl.org) and click “Connect with Xumm Wallet”.
![Connect XUMM Wallet](img/evm-sidechain-connect-xumm-wallet.png "Connect XUMM wallet")
**Note:** Ensure that you are connected to XRP Ledger Devnet and that the application that you are connecting with is the correct one.
Follow the instructions on screen to scan the QR code using the Xumm app. The Xumm wallet app displays a confirmation page.
![Connect to XRP Ledger Devnet](img/evm-sidechain-bridge-sign-in.jpg "Connect to XRP Ledger Devnet")
**Connect MetaMask Wallet**
Use your MetaMask wallet to interact with the XRP Ledger EVM Sidechain.
Ensure that you have created a MetaMask account and connected to the public XRP Ledger Devnet as described in [Connect MetaMask to XRP Ledger EVM Sidechain](connect-metamask-to-xrpl-evm-sidechain.html).
To connect a MetaMask wallet to the bridge, go to the [EVM Sidechain bridge](https://bridge.devnet.xrpl.org) and click “Connect with Metamask Wallet”.
![Connect MetaMask Wallet](img/evm-sidechain-connect-metamask.png "Connect MetaMask wallet")
### 2. Start the Transaction
Now that both Xumm and MetaMask wallets are connected to the bridge, you can select the direction of the bridge, the amount, and the address to fund.
- **Direction of the bridge**: The direction can be either EVM sidechain → XRP Ledger Devnet or XRP Ledger Devnet → EVM sidechain. Use the “Switch Network” button to switch the direction.
- **From Amount**: This is the transaction amount. Note that there is a fee to use the bridge.
- Network fees: The fees required by the network for your transactions.
- Commission: The bridge applies a commission for every transaction completed. This is to prevent spam and distributed denial of service attacks (DDOS).
- **To Address**: The address on the chain where you want the funds.
![Start the transaction](img/evm-sidechain-initiate-transfer.png "Start the transaction")
Enter the details for your transaction and click **Transfer**. Review the details of the transaction carefully before accepting the transaction in the corresponding wallet.
![Approve the transaction](img/evm-sidechain-approve-transaction.png "Approve the transaction")
Depending on the direction of the transaction, you need to approve the transaction in the Xumm Wallet or in the Metamask.
**XRP Ledger Devnet → EVM sidechain**
For this direction you must approve the transaction in your Xumm Wallet. Before doing so, please check that the details are correct:
- Destination address has to be: `radjmEZTb4zsyNUJGV4gcVPXrFTJAuskKa`
- Memo has to be the same address that you entered in the destination field
![Review the transaction](img/evm-sidechain-review-transaction.jpg)
**EVM sidechain → XRP Ledger Devnet**
If this is the case, then you must approve the transaction in your Metamask. Before doing so, please check the details are correct:
- Destination address has to be: `0x8cDE56336E289c028C8f7CF5c20283fF02272182`
![Review the transaction in MetaMask](img/evm-sidechain-metamask-confirmation.png "Review the transaction in MetaMask")
Once you approve the transaction either in Xumm wallet or in Metamask, a loading screen displays. This process can take up to a few minutes.
![Transaction in progress](img/evm-sidechain-transfer-in-progress.png "Transaction in progress")
### 3. Receive the Funds
Following a few minutes of transaction processing time, you are redirected to the **Transaction Confirmation** screen where you can verify the details of the bridge transaction.
- **Origin transaction hash**: Hash of the transaction in the origin chain.
- **Destination transaction hash**: Hash of the transaction in the destination chain.
- **From address**: Address on the origin chain.
- **To address**: Address on the destination chain.
- **Receive**: The amount received in the destination address.
![Transaction confirmation](img/evm-sidechain-transaction-confirmation.png "Transaction confirmation")
Your transaction has completed successfully and the test XRP tokens are now available in the other chain.

View File

@@ -1,121 +0,0 @@
---
html: join-evm-sidechain-devnet.html
parent: evm-sidechains.html
blurb: Learn how to join the XRP Ledger EVM Sidechain Devnet.
labels:
- Development, Interoperability
status: not_enabled
---
# Join the XRP Ledger EVM Sidechain Devnet
{% include '_snippets/evmsc-disclaimer.md' %}
This tutorial walks you through the steps to join the existing **XRP Ledger EVM Sidechain Devnet**.
For ease of use, create an alias, `exprd`, to run all commands inside your Docker container.
## Pre-requisites
Before proceeding to initialize the node, ensure that the following pre-requisites are installed and running:
* Docker 19+
* Create an alias to run all commands in this tutorial inside a Docker container:
```bash
alias exrpd="docker run -it --rm -v ~/.exrpd:/root/.exrpd peersyst/xrp-evm-client:latest exrpd"
```
## Initialize Node
The first task is to initialize the node, which creates the necessary validator and node configuration files.
1. Initialize the chain parameters using the following command:
```bash
exrpd config chain-id exrp_1440001-1
```
2. Create or add a key to your node. For this tutorial, we use the `test` keyring:
```bash
exrpd keys add <key_name> --keyring-backend test
```
Note the `key_name` you enter as you need to reference it in subsequent steps.
**Note** For more information on a more secure setup for your validator, refer to [cosmos-sdk keys and keyrings](https://docs.cosmos.network/v0.46/run-node/keyring.html) and [validator security](evm-sidechain-validator-security.html).
3. Initialize the node using the following command:
```bash
exrpd init <your_custom_moniker> --chain-id exrp_1440001-1
```
Monikers can contain only ASCII characters. Using Unicode characters renders your node unreachable.
All these commands create your `~/.exrpd` (i.e `$HOME`) directory with subfolders `config/` and `data/`. In the `config` directory, the most important files for configuration are `app.toml` and `config.toml`.
## Genesis & Seeds
1. Copy the Genesis File.
Download the `genesis.json` file from here and copy it to the `config` directory: `~/.exrpd/config/genesis.json`. This is a genesis file with the chain-id and genesis accounts balances.
```bash
wget [https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/genesis.json](https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/genesis.json) ~/.exrpd/config/
```
Verify the genesis configuration file:
```bash
exrpd validate-genesis
```
2. Add Persistent Peer Nodes
Set the [`persistent_peer`](https://docs.tendermint.com/master/tendermint-core/using-tendermint.html#persistent-peer)s field in `~/.exrpd/config/config.toml` to specify peers with which your node maintains persistent connections. You can retrieve them from the list of available peers on the archive repo ([https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/peers.txt](https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/peers.txt)).
To get a list of entries from the `peers.txt` file in the `PEERS` variable, run the following command:
```bash
PEERS=`curl -sL https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -`
```
Use `sed` to include them in the configuration. You can also add them manually:
```bash
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.exrpd/config/config.toml
```
## Run a Devnet Validator Node
Run the Devnet validator node using following command:
```bash
exrpd tx staking create-validator \
--amount=1000000000000axrp \
--pubkey=$(exrpd tendermint show-validator) \
--moniker="<your_custom_moniker>" \
--chain-id=<chain_id> \
--commission-rate="0.05" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025axrp" \
--from=<key_name>
```
**Note** For more information on running a validator note, see [Run a validator](evm-sidechain-run-a-validator-node.html)
## Start the Node
Start the node.
```bash
exrpd start
```
Once enough voting power (+2/3) from the genesis validators is up-and-running, the node starts producing blocks.

View File

@@ -82,7 +82,7 @@ Edit your `rippled.cfg` file.
<!-- MULTICODE_BLOCK_END -->
For sidechains and custom networks, everyone who connects to the network should use a value unique to that network. When creating a new network, choose a network ID at random from the integers 11 to 4,294,967,295.
For custom networks, everyone who connects to the network should use a value unique to that network. When creating a new network, choose a network ID at random from the integers 11 to 4,294,967,295.
**Note:** This setting helps your server find peers who are on the same network, but it is not a hard control on what network your server follows. The UNL / trusted validator settings (in the next step) are what actually define what network the server follows.