Dymension 是一个模块化的区块链平台,具有内置的可扩展性汇总技术。该设计不同于以太坊等单体区块链,后者在主链上处理所有关键功能,例如共识和结算,然后为此类链提供单独的第 2 层网络。
Dymension 是一种利用 Cosmos 和 Celestia 技术的模块化区块链。在种子轮融资中从 Big Brain Holdings、Stratos 和其他公司筹集了 670 万美元。
明牌空投:
该项目目前在其推特上明确,参与测试网的用户也有空投:
关注我们社区,获取更多有奖励的节点项目,不定时更新,欢迎交流!
discord:discord.gg/PPhsfActZg
Twitter:@NodeVoyagers
废话不多说,直接上教程:
部署前准备:
目前支持的架构:
darwin/arm64
darwin/x86_64
linux/arm64
linux/x86_64
硬件:
Dymension Hub 验证器和完整节点应准备好满足以下最低推荐硬件要求:
- 双核
- 至少 500GB 的 SSD 磁盘存储
- 至少 16GB 内存 (RAM)
- 至少 100mbps 网络带宽
软件:
安装 Go 是运行 Dymension Hub 全节点的先决条件,GO下载链接:
一、构建Dymension全节点:
1、用于git
检索Dymension Hub:
git clone https://github.com/dymensionxyz/dymension.git --branch v0.2.0-beta
cd dymension
2、构建 Dymension 中心。这会将dymd
可执行文件安装到您的环境变量中。
make install
3、验证 Dymension Hub 完整节点是否已正确安装。
dymd version --long
示例:
name: dymension
server_name: dymd
version: v0.2.0-beta
commit: 987e33407911c0578251f3ace95d2382be7e661d
如果未找到 dymd 命令,则会返回错误消息,请通过运行以下命令确认您的GOPATH已正确配置:
export PATH=$PATH:$(go env GOPATH)/bin
二、节点配置:
以下信息描述了~/.dymension/config/
目录中的重要节点配置设置。建议您使用自己的信息更新这些设置。
~/.dymension/config │– addrbook.json # Registry of peers to connect to │– app.toml # dymd configuration file │– client.toml # Configurations for the cli wallet │– config.toml # Tendermint configuration file │– genesis.json # Gensesis transactions │– node_key.json # Private key used for node authentication in the p2p protocol └– priv_validator_key.json # Key used by the validator to sign blocks
1、初始化与配置
建议将测试网链 ID 保存到您的 Dymension client.toml 中。这样后面不必为每个 CLI 命令手动传递 chain-id 标志。
使用常用可读的名称初始化节点:
dymd init –chain-id 35-C
名字对象只能包含 ASCII 字符。使用 Unicode 字符会使网络中的其他节点无法访问您的节点。
可以通过编辑moniker
中的字段来更新节点的名字对象
dymd init <MONIKER> --chain-id 35-C
2、更新bond denom:
- 打开
~/.dymension/config/genesis.json
- 查找并替换
stake
with的所有实例udym
- 保存并关闭
Genesis.json
3、更新最低的gas价格:
- 打开
~/.dymension/config/app.toml
- 修改
minimum-gas-prices
并设置验证者为验证交易和防止垃圾邮件而接受的最低 gas 价格。
推荐的设置是: minimum-gas-prices = "0.15udym"
示例:
# The minimum gas prices a validator is willing to accept for processing a
# transaction. A transaction's fees must meet the minimum of any denomination
# specified in this config (e.g. 0.25token1;0.0001token2).
minimum-gas-prices = "0.15udym"
4、设置external_address
为了在种子节点中被添加到通讯录中,需要external_address
在config.toml
. 此添加将防止连续重新连接。默认的 P2P_PORT 是26656
.
sed -i -e 's/external_address = ""/external_address = "'$(curl httpbin.org/ip | jq -r .origin)':26656"/g' ~/.dymension/config/config.toml
5、设置seed_mode
在种子模式下,您的节点不断地爬行网络并寻找对等点。如果另一个节点请求地址,它会响应并断开连接。如果禁用对等交换反应器,种子模式将不起作用。如果您想以种子模式运行完整节点,请为您的客户端更改以下配置。
seed_mode = true
6、设置seeds
要手动识别种子节点,请在 中编辑以下设置config.toml
。下面列出的是 Dymension 的 35-C 测试网的 Dymension 核心团队种子节点。对于社区提供的种子节点,请访问测试网的 GitHub 存储库。
# Comma separated list of seed nodes to connect to
seeds = "c6cdcc7f8e1a33f864956a8201c304741411f219@3.214.163.125:26656"
7、设置persistent_peers
如果 persistent_peers_max_dial_period
的值大于零,则在指数退避期间,对每个持久对等体的每次调用之间的停顿不会超过persistent_peers_max_dial_period
,并且自动重拨过程继续。下面是一个示例,相关同行请查看测试网GitHub仓库。
# Comma separated list of nodes to keep persistent connections to.
persistent_peers = "id100000000000000000000000000000000@1.2.3.4:26656,id200000000000000000000000000000000@2.3.4.5:26656"
三、加入网络
设置本地节点
验证者可以设置私有 Dymension Hub 网络,以便在加入公共网络之前熟悉运行完整的 Dymension Hub 节点。
您可以设置的最简单的 Dymension Hub 网络是只有一个节点的本地测试网。在单节点环境中,您只有一个帐户,并且是您专用网络的唯一验证者签名块。
- 初始化Genesis file:
dymd init <Moniker> --chain-id=35-C
- 生成一个 Dymension 帐户。将变量替换为您的帐户名称:
dymd keys add <KEY_NAME_HERE>
- 运行以下命令以添加您的帐户并设置初始余额:
dymd add-genesis-account <ADDRESS_HERE> 600000000000udym
- 通过Genesis file中包含的称为 gentx 的特殊交易声明您的验证器和自我委托:
dymd gentx <KEY_NAME> 500000000000udym --chain-id 35-C
- 将 gentx 添加到Genesis file中:
dymd collect-gentxs
- 运行以下命令以启动您的专用网络:
dymd start
加入公共网络
Genesis file指定了网络开始时的账户余额和参数,以便在重放交易和同步时使用。
- Chain-id: 35-C
- Binaries: https://github.com/dymensionxyz/dymension.git
- Version: v0.2.0-beta
- Git commit: 987e33407911c0578251f3ace95d2382be7e661d
- Genesis: Link here
- Seed nodes: Link here
对于默认dymd
配置,genesis
应该放在~/.dymension/config/genesis.json
.
四、同步节点
1、测试fast-Sync
有时您可能希望通过上述检查加快同步速度。您可以通过在命令中添加以下标志来执行此操作dymd start
。
以下命令只能由非生产环境中的高级用户使用:
dymd start --x-crisis-skip-assert-invariants
2、使用快照
在下载快照之前,某些文件需要不存在或删除。快速同步用自定义快照替换区块链数据。对于大多数用例,“修剪”版本就足够了。修剪后的版本将从存档中删除某些交易以提高节点性能。如果您出于存档目的运行节点,您将需要一个archive
或default
下载。
选择合适的下载类型后,检查您的节点并确保它.dymension/data
是空的。
示例:
12:31PM INF Removed all blockchain history dir=/home/ubuntu/.dymension/data
如果您是验证者,请确保您没有删除您的私钥。
删除的私钥示例:
6:22PM INF Reset private validator file to genesis state keyFile=/home/ubuntu/.dymension/config/priv_validator_key.json stateFile=/home/ubuntu/.dymension/data/priv_validator_state.json
如果您下载了地址簿,您可以保留它。否则,您将需要下载相应的地址簿。
下载地址簿后,运行以下命令:
dymd start
dymd status
# It will take a few seconds for dymd to start.
3、监控Sync
您的节点正在通过重放创世以来的所有交易并在本地重新创建区块链状态来赶上网络。您可以通过检查响应的latest_block_height
in来验证此过程:SyncInfodymd status
{
"SyncInfo": {
"latest_block_height": "42", <-----
"catching_up" : true
},
...
}
4、同步完成
SyncInfo.catching_up
当响应dymd status
返回false
并且latest_block_height
对应于公共网络块高度时,您可以知道您的节点与网络同步。
示例:
{
"SyncInfo": {
"latest_block_height": "7356350",
"catching_up" : false
},
...
}
如果已完成 上面所有步骤,恭喜你已作为全节点运营商成功加入网络。
五、创建验证器
这是设置 Dymension Hub 验证器的分步指南。我们推荐一种生产架构,包括哨兵节点和描述的 Tendermint 密钥管理服务。点击此处跳转。
要学习本教程,您必须将一个完整节点同步到当前网络。请按照前面的说明构建 Dymension Hub 全节点。为测试网选择了有限数量的验证器。如果您是被选中的验证者之一,请联系 Dymension Discord 上的团队,请求自委托代币。
1、取回你的公钥
--pubkey=$(dymd tendermint show-validator)
2、创建一个新的验证器
dymd tx staking create-validator
--amount=500000000000udym
--pubkey=$(dymd tendermint show-validator)
--moniker="<your-moniker>"
--chain-id=35-C \ --from=<key-name>
--commission-rate="0.10"
--commission-max-rate="0.20"
--commission-max-change-rate="0.01"
--min-self-delegation="1"
当您指定佣金参数时,commission-max-change-rate
以 的百分比变化来衡量commission-rate
。例如,从 1% 到 2% 的变化是 100% 的速率增加,但commission-max-change-rate
测量值是 1%。
3、确认你的验证码处于活跃状态
dymd query tendermint-validator-set | grep "$(dymd tendermint show-address)"
寻找文件中的bech32
编码。address~/.dymension/config/priv_validator.json
六、更新
Dymension 网络会定期更新。
1、创建备份
在将节点更新到最新版本之前,您首先需要重置数据。但是,重置数据会影响您的原始数据priv_validator.json
和cargo.toml
文件。
确保创建这两个文件的备份,然后继续下一步。
2、重置数据
删除过时的文件并重置数据:
rm ~/.dymension/config/genesis.json
rm ~/.dymension/config/addrbook.json
dymd unsafe-reset-all
您的节点现在处于干净状态。请注意,原始文件priv_validator.json
和config.toml
文件将受此命令影响。如果您之前设置了任何哨兵节点或完整节点,您的节点仍将尝试连接到它们,但如果它们还没有升级,则可能会失败。
确保每个节点都有一个唯一的priv_validator.json
. 不要priv_validator.json
将旧节点复制到多个新节点。运行两个相同的节点priv_validator.json
将导致您双重签名。
3、软件更新
当你更新软件的时候。转到项目目录并拉取正确的版本。如果您在此步骤遇到问题,请检查您是否安装了兼容版本的 Go (v1.18+)。
七、重置和故障排除
有时,由于数据损坏或配置错误,您可能需要对节点执行完全重置。重置将删除 ~/.dymension/data 中的所有数据和 ~/.dymension/config/addrbook.json 中的地址簿并将节点重置为创世状态。
对您的 dymd 执行完全重置:
dymd tendermint unsafe-reset-all
成功运行此命令将产生以下日志:
[ INF ] Removed existing address book file=/home/user/.dymension/config/addrbook.json [ INF ] Removed all blockchain history dir=/home/user/.dymension/data [ INF ] Reset private validator file to genesis state keyFile=/home/user/.dymension/config/priv_validator_key.json stateFile=/home/user/.dymension/data/priv_validator_state.json
改变Genesis
要更改Genesis版本,请删除~/.dymension/config/genesis.json
. GitHub中为适当的网络提供了 Genesis 文件。
重置个人数据
更改个人数据后,您可能无法使用您的节点及其关联帐户。除非您的节点是一次性的,否则不要执行此操作。
要将您的个人数据更改为原始状态,请同时删除~/.dymension/config/priv_validator_state.json
和~/.dymension/config/node_key.json
。
检查节点是否正常
一个健康的节点将有以下文件并被填充:
- Addressbook
~/.dymension/config/addrbook.json
- Genesis file
~/.dymension/config/genesis.json
- Validator state
~/.dymension/config/priv_validator_state.json
- Node key
~/.dymension/config/node_key.json