Cudos网络是一种特殊用途的区块链,旨在为所有人提供高性能,无信任,无权限的云计算。

您要开始验证 CUDOS 吗? 那么您来对地方了! 以下是有关如何在 CUDOS 中设置您自己的验证程序的详细分步指南。

在这一点上,我们将偏离官方文档,使用 CentOS。

环境设置应在 所有 主机上完成。 硬件要求可以
在这里
找到。 启动主机后,请按照以下步骤操作。

如果您刚刚开始学习本教程,请先启动验证器计算机。

首先,我们需要安装几个工具。

# Install Docker, Git and jQuery via the yum package manager.
$ sudo yum install docker git jq -y# Start the Docker daemon.
$ sudo service docker start# Install docker-compose by downloading the binary from the GitHub download archive.
$ curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# Make docker-compose executable for the current user.
$ chmod +x /usr/local/bin/docker-compose

现在,让我们在 $HOME 目录中创建一个工作区,然后 cd 到其中。

$ mkdir ~/cudos
$ cd ~/cudos

Next,我们需要克隆CudosNode,CudosBuilders和CudosGravityBridge。

$ git clone --depth 1 --branch v0.2 https://github.com/CudoVentures/cudos-node.git CudosNode
$ git clone --depth 1 --branch v0.3  https://github.com/CudoVentures/cudos-builders.git CudosBuilders
$ git clone --depth 1 --branch v0.2 https://github.com/CudoVentures/cosmos-gravity-bridge.git CudosGravityBridge

为 CudosBuilders 构建 docker 映像。

$ cd ~/cudos/docker/binary-builder
$ sudo docker-compose --env-file binary-builder.arg -f binary-builder.yml -p cudos-binary-builder up --build --detach

好了,是时候开始了解细节了。 验证器设置需要设置三个组件:

  • CUDOS 验证器,它通过对区块进行投票和提议来参与链上共识,并且被业务流程协调程序用来对 CUDOS 链进行调用
  • Gravity Bridge Orchestrator,它管理CUDOS和以太坊之间的令牌流
  • 一个 以太坊完整节点,由业务流程协调程序用来对以太坊进行调用

1.1) 以太坊全节点设置

首先,启动一台新的主机(参见”以太坊节点”硬件要求)。

或者,您也可以使用自己的以太坊完整节点,在这种情况下,您可以跳到1.2)。 只要确保不要使用Infura。

提醒:在继续执行以下步骤之前,请先完成”0)环境设置“。

运行以太坊节点非常简单。

$ cd ~/cudos/CudosBuilders/docker/ethereum
$ sudo docker-compose -f ethereum-full.yml -p ethereum up --build --detach

请注意,同步Rinkeby区块链可能需要数小时/数天。 您可以通过运行以下命令来查看日志。

$ sudo docker logs -f ethereum

1.2) CUDOS 验证器节点设置

首先,启动新的主机(请参阅”验证程序节点”硬件要求)。 我们将在其上初始化一个 CUDOS 完整节点,稍后将将其配置为验证程序。

提醒:在继续执行以下步骤之前,请先完成”0)环境设置“。

# Navigate to the full-node directory of CudosBuilders.
$ cd ~/cudos/CudosBuilders/docker/full-node# Make a copy of the example full-node env file and open it with a text editor of your choice.
$ cp full-node.env.example full-node.client.testnet.public01.env
$ nano full-node.client.testnet.public01.env# Add the following contents to the file. Once you're done, save the changes and close the file.
MONIKER=<Insert your validator moniker here>
SHOULD_USER_GLOBAL_PEERS=false# Initialize the full node.
$ sudo docker-compose --env-file full-node.client.testnet.public01.arg -f init-full-node.yml -p cudos-init-full-node-client-testnet-public-01 up --build

如果一切顺利,应该有一个 ~/cudos/CudosData 目录。

$ ls ~/cudos
CudosBuilders  CudosData  CudosGravityBridge  CudosNode
                   /\
                   ||
     This directory should be there.

我们还将确保所有文件都已正确生成。

$ ls ~/cudos/CudosData/cudos-data-full-node-client-testnet-public-01
config  data  tendermint.nodeid

将节点 ID 复制并粘贴到本地计算机上的文本文件中。 您很快就会需要它。

$ cat ~/cudos/CudosData/cudos-data-full-node-client-testnet-public-01/tendermint.nodeid

到目前为止看起来不错。 现在,为了获得对等节点,最佳做法是在另一台主机上启动哨兵节点。

  • 在哨兵节点上重复“0) 环境设置“步骤。
  • 按照官方哨 兵设置指南进行操作
    对于步骤 6,需要上述文本文件中验证程序的节点 ID,以及验证程序的公共 IP 地址。 确保端口 26656 已为入站和出站连接打开。 现在,您不必输入验证者以外的任何其他对等地址。
  • 获取哨兵的节点 ID,将其复制并粘贴到本地计算机上的文本文件中。 您很快就会需要它。
$ cat ~/cudos/CudosData/cudos-data-sentry-node-client-testnet-public-01/tendermint.nodeid
  • 理想情况下,您需要设置至少两个哨兵节点才能获得有效的 DDoS 保护。 只需在另一台主机上重复上述三个步骤即可。

可选:设置 种子节点。 不过,我们将在本指南中跳过此步骤。

现在我们已经设置了哨兵,我们需要将它们作为对等体添加到我们的验证器节点。

$ cd ~/cudos/CudosBuilders/docker/full-node
$ nano full-node.client.testnet.public01.env# Add the following contents to the file. Once you're done, save the changes and close the file.
PERSISTENT_PEERS=<sentry1-node-id>@<sentry1-public.ip>:26656,<sentry2-node-id>@<sentry2-public.ip>:26656

好了,是时候启动整个节点了。

# Set the configuration.
$ sudo docker-compose --env-file full-node.client.testnet.public01.arg -f config-full-node.yml -p cudos-config-full-node-client-testnet-public-01 up --build# Start the full node.
sudo docker-compose --env-file full-node.client.testnet.public01.arg -f start-full-node.yml -p cudos-start-full-node-client-testnet-public-01 up --build --detach# Logs can be viewed by running the following command.
$ sudo docker logs -f cudos-start-full-node-client-testnet-public-01

在这一点上,由于我们刚才才开始完整节点,它仍然会同步区块链。 根据您的硬件和区块链的大小,这可能需要数小时/数天。 您可以使用以下命令检查同步状态。

# Wait for the output of this command to be 'false'.
$ sudo docker exec -ti cudos-start-full-node-client-testnet-public-01 cudos-noded status | jq '.SyncInfo.catching_up'# Check the progress by comparing the block height from the output of this command with the latest block height from the official block explorer.
$ sudo docker exec -ti cudos-start-full-node-client-testnet-public-01 cudos-noded status | jq '.SyncInfo.latest_block_height'

同时,我们可以创建一个帐户,该帐户需要与区块链进行交互。 我们将使用Web扩展Keplr创建一个。 请遵循 本指南

不要忘记备份助记词并将其存储在安全的地方!

一旦节点赶上,我们就可以导入刚刚在Keplr中创建的验证器帐户。 为此,我们需要访问验证器的容器外壳。

$ sudo docker exec -it cudos-start-full-node-client-testnet-public-01 bash

然后,请执行以下命令,该命令将要求您输入助记词短语。

$ cudos-noded keys add validator --recover --keyring-backend file

若要检查密钥是否已成功添加,请使用以下命令,该命令应列出”验证程序”密钥。

$ cudos-noded keys list --keyring-backend file

在我们可以在链上创建验证器之前,它需要一些可以自我抵押的令牌,因此它实际上可以成为验证器并参与共识。

一旦您拥有了一些令牌,我们现在可以使用以下命令在链上创建验证器。

$ cudos-noded tx staking create-validator \
  --amount <STAKE> \
  --from validator \
  --pubkey $(cudos-noded tendermint show-validator) \
  --moniker <YOUR_MONIKER> \
  --chain-id <CHAIN_ID> \
  --commission-rate <COM_RATE> \
  --commission-max-rate <COM_MAX_RATE> \
  --commission-max-change-rate <COM_MAX_CHANGE_RATE> \
  --min-self-delegation 1 \
  --gas auto \
  --gas-prices 0.025acudos \
  --gas-adjustment 1.80 \
  --keyring-backend file \
  -y
  • <STAKE > 必须至少为 10000000000000000000000acudos (=1 CUDOS)
  • <YOUR_MONIKER > 必须与您在~/cudos/CudosBuilders/docker/full-node/full-node.client.testnet.public01.env中提供的同名名称相同
  • <CHAIN_ID > 应为测试网的 cudos-testnet-public(主网为 TBD)
  • <COM_RATE > 是您希望从所有奖励中获得的佣金百分比,即0.10表示您将获得所有奖励的10%
  • <COM_MAX_RATE > 是您承诺的最高佣金率,即0.40意味着您永远不会超过所有产生的奖励的40%
  • <COM_MAX_CHANGE_RATE > 是百分比的最大利率,您可以更改每天的佣金率,即0.20意味着每天,您可以将佣金增加或减少20% 的顶部

执行命令并等待其处理。 如果您看到交易哈希而没有收到错误,则表示您已成功创建了验证程序帐户! 您可以复制交易哈希并在 区块浏览器中查看它。

此外,您应该能够在以下命令打印出来的列表中找到您的验证器(搜索您的绰号)。

$ cudos-noded q staking validators

请不要退出容器 shell 会话,因为我们将在下一步中继续处理验证程序。

1.3) 业务流程协调程序设置

对于业务流程协调程序,我们需要验证程序计算机上的另一个帐户。 在开普勒中创建一个,备份助记词并将其存储在安全的地方。 然后,使用以下命令导入业务流程协调程序帐户,这将要求您输入业务流程协调程序帐户的助记词组。

$ cudos-noded keys add orchestrator --recover --keyring-backend file

若要检查密钥是否已成功添加,请使用以下命令,该命令应列出”验证程序”密钥和新添加的”业务流程协调程序”密钥。

$ cudos-noded keys list --keyring-backend file

对于后续步骤,您将需要一个以太坊帐户。 请按照 本指南 了解如何安装和设置 Metamask,并创建一个帐户。 一旦你有了以太坊地址,我们就可以注册业务流程协调器了。

$ cudos-noded tx gravity set-orchestrator-address <VALIDATOR_ADDRESS> <ORCH_ADDRESS> <ETH_ADDRESS>
  • <VALIDATOR_ADDRESS > 是验证者的操作员地址(cudosvaloper…)。 可以使用以下命令检索它。
$ cudos-noded keys show validator --bech val --keyring-backend file
  • <ORCH_ADDRESS > 是业务流程协调程序地址(cudos…)。 可以使用以下命令检索它。
$ cudos-noded keys show orchestrator --keyring-backend file
  • <ETH_ADDRESS > 是您在Metamask(0x…)中创建的以太坊地址。

注册业务流程协调程序后,我们需要对其进行配置。

$ cd ~/cudos/CudosBuilders/docker/orchestrator
$ cp orchestrator.env.example orchestrator.client.testnet.public01.env
$ nano orchestrator.client.testnet.public01.env# Add the following contents to the file. Once you're done, save the changes and close the file.
ADDRESS_PREFIX="cudos"
FEES="<FEES>"
GRPC="http://<CUDOS_NODE_IP>:9090"
ETHRPC="http://<ETH_NODE_IP>:8545"
CONTRACT_ADDR="0xb22F2A4c231e69703FC524Eb2E3eb7B83C316F42"
COSMOS_ORCH_MNEMONIC="<ORCH_MNEMONIC>"
ETH_PRIV_KEY_HEX="<HEX_PRIV_KEY>"
  • <费用 > 是您必须为每笔过桥交易支付的费用,例如100acudos。
  • <CUDOS_NODE_IP > 是 CUDOS 验证程序节点的公共 IP 地址。
  • <ETH_NODE_IP > 是以太坊完整节点的公共IP地址。
  • <ORCH_MNEMONIC > 是业务流程协调程序帐户的助记词。
  • <ETH_PRIV_KEY_HEX > 是十六进制表示,如果以太坊账户的私钥,没有前导”0x”。 请按照 本指南 从 Metamask 导出私钥。

最后,运行业务流程协调程序。

$ sudo docker-compose --env-file orchestrator.client.testnet.public01.arg -f orchestrator.release.yml -p cudos-orchestrator-client-testnet-public-01-release up --build --detach

您可以使用以下命令查看日志。

$ sudo docker logs -f cudos-orchestrator-client-testnet-public-01-release

这几乎结束了它! 您现在正在CUDOS区块链上运行一个验证器节点和一个业务流程协调程序,用于桥接Cosmos和以太坊之间的令牌传输!

我们希望本指南对您有所帮助,并给我们鼓掌!

直到下次!

了解更多信息:

网站推特电报YouTube不和谐媒体播客