# Dymension rollapp部署教程 **Published by:** [Silent ⚛| validator](https://paragraph.com/@exploring/) **Published on:** 2023-08-23 **URL:** https://paragraph.com/@exploring/dymension-rollapp ## Content 模块化区块链是近期的热点,Dymension是模块化区块链的结算层,开发者能够基于Dymension 构建RollApps。RollApps 能够使用 Dymension Hub 与任何支持 IBC 的链进行交互,因此将成为不断发展的 IBC 生态系统的一部分。 官网:Dymension: The Chain LaunchpadDymension L1 is a decentralized Chain Launchpad, giving creators the power to transform ideas into thriving blockchains.https://dymension.xyz官推:Dymension之前融资了670万美元。近期激励测试网floopyland刚刚上线。1%的DYM代币将分配给测试网参与者。其中,40%奖励分配给验证者(据管理说,验证者已经被选出),40%奖励分配给rollapp部署者,10%的奖励分配给最好的10个Rollapp,10%奖励分配给用户。根据官方博客和公告。只有Discord有RollApp-fam role的人才有资格拿rollapp部署者的奖励。只有在discord有Rollapp-fam role的人才有资格拿rollapp部署者奖励解锁奖励的关键在于部署 RollApp(在 Roller 工具的帮助下变得非常容易),并根据 RollApp 的正常运行时间(RPC 端点可用性的奖励)按比例分配奖励。如果没有RollApp-fam role 怎么办?官方博客中说 如果您没有 RollApp-fam 角色,但您是一名真正的Builder,请联系我们,描述您的经验和 RollApp 想法。 Discord公告中说对于那些没有 RollApp-fam 角色的人,可以构建并部署一个独特的 RollApp,以表明您已经思考并投入了工作。 然后在 ⁠#share-your-rollapp 上分享您的 RollApp 并告诉我们。 同时也可以在Discord多活跃,关注新活动,也有可能拿到这个role。目前团队又更新了版本,请更新到v1.0.6。注:本教程仅供参考,请以官方教程为准。从老版本更新(如果你之前部署过应用,可以迁移。否则建议完全重新搞)安装最新版本rollercurl -L https://dymensionxyz.github.io/roller/install.sh | bash 停止之前的rollersudo systemctl stop relayer sudo systemctl stop sequencer sudo systemctl stop da-light-client 迁移重新启动rollersudo systemctl start da-light-client sudo systemctl start sequencer sudo systemctl start relayer 现在检查版本应该为roller version 💈 Roller version v1.0.6-beta 💈 Build time: 2024-01-18T09:05:45+0000" 💈 Git commit: 21b1b22e96466cc83b051ebacfb513b3a0d99de1 升级后需要重新领celestia 的水。 journalctl -u da-light-client.service -f 看celestia的新地址。部署Rollapp硬件要求2核至少 100GB SSD 磁盘存储至少 16GB RAM至少 100mbps 网络带宽安装rollersudo apt update -y curl -L https://dymensionxyz.github.io/roller/install.sh | bash 安装成功显示如下💈 Installation complete! You can now use roller from your terminal. 验证输出中应该有💈 Roller version v1.0.6-beta 💈 Build time: 2024-01-18T09:05:45+0000" 💈 Git commit: 21b1b22e96466cc83b051ebacfb513b3a0d99de1 初始化RollApp这里我们选择默认的EVM环境,DA层为默认的celestia。 接下来输入roller config init <rollapp-id> <denom> --da Celestia 如果你想使用Avail 作为Da(可选)roller config init <rollapp-id> <denom> --da Avail 其中rollapp-id格式如下仅包含字母字符 例如: berlin,test denom为你的rollapp原生代币的名称。如BTC,PEPE,DYM等,需要3字母以上。 如果成功,会显示如下init这里我们得到了3个地址,需要领水龙头。dym开头的地址去Discord #froopyland-faucet 频道发$request ,celestia开头的去Discord #celestia-faucet 频道发$request 查余额在相应频道发$balance <地址> 领取avail测试币在avail-faucet 输入 /deposit <地址> 领到测试币后,我们可以注册我们的rollapp了。roller tx register 注册成功会显示如下 💈 Rollapp 'test_101-1' has been successfully registered on the hub. 接下来运行我们的rollapp。由于我们的rollapp可能需要运行3个月左右。我们将其配置成服务运行。 输入roller services load 成功后会显示💈 Services 'sequencer', 'da-light-client' and 'relayer' been loaded successfully. To start them, use 'systemctl start '. 接下来输入sudo systemctl enable da-light-client sudo systemctl enable sequencer sudo systemctl enable relayer 和sudo systemctl start da-light-client sudo systemctl start sequencer sudo systemctl start relayer 以启动服务。检查运行状态sudo systemctl status da-light-client sudo systemctl status sequencer sudo systemctl status relayer 正常情况下,3个都应显示为active (running)。查看DA轻节点日志(按ctrl+c退出)sudo journalctl -u da-light-client -f 正常情况应该看到💈 The data availability light node is running on your local machine! 查看sequencer 日志(按ctrl+c退出)sudo journalctl -u sequencer -f 正常情况应该看到💈 The Rollapp sequencer is running on your local machine! 💈 Default endpoints: 💈 EVM RPC: http://0.0.0.0:8545 💈 Node RPC: http://0.0.0.0:26657 💈 Rest API: http://0.0.0.0:1317 💈 Log file path: /Users/USERNAME/.roller/rollapp/rollapp.log 💈 Rollapp root dir: /Users/USERNAME/.roller/rollapp 查看中继器日志(按ctrl+c退出)sudo journalctl -u relayer -f 正常情况应该看到💈 The relayer is running successfully on you local machine on channel channel-0! 注意:中继器(relayer)通常需要较长时间才能启动成功,一般要几小时以上。请耐心等待。 如果一直都没有成功,则通道可能已进入卡住状态。请打开一个新终端并运行roller relayer start --override 以创建新通道。监控请参考官方教程https://docs.dymension.xyz/build/production/monitorIBC 转账如果你的中继器运行成功了,运行roller relayer status 会显示如下💈 Relayer Channels: src, channel-0 <-> channel-1, dst 这时,source channel将是channel-0 如果显示的内容不是上面这样,说明你的relayer还没有运行成功,如果几小时以上还没有成功,请运行以下命令,以创建新通道。roller relayer start --override 可以用这个命令进行ibc transfer (这个命令不是必须的)rollapp_evm tx ibc-transfer transfer transfer <src-channel> <destination-address> 5000000000000000000000000<base-denom> --from rollapp_sequencer --keyring-backend test --home ~/.roller/rollapp --broadcast-mode block 注意这里的 src-channel 就是上面显示的source channel。 而base-denom 是小写字母 u加上你刚刚设置的denon。如utest 这里的数量和以太坊wei 相对于ether一样。1 xxx= 10^18 uxxxx 用户应该预计 IBC 交易提交和目标地址接收之间会有大约 15 -30分钟的延迟。这是为了模拟防欺诈期,只有在防欺诈期过后,资金才会在 Dymension Hub 上可用给水龙头转账如果你的中继器运行成功了,运行roller relayer status 会显示如下💈 Relayer Channels: src, channel-0 <-> channel-1, dst **channel不一定是0,1。**之后我们可以运行以下命令转移部分资金给水龙头。roller tx fund-faucet 等待15-30分钟后,可以去Discord #froopyland-faucet 频道发以下命令查询你的ibc transfer是否成功。$balance dym1g8sf7w4cz5gtupa6y62h3q6a4gjv37pgefnpt5 <你的rollapp-id> 这里的rollapp-id可以通过 roller config show 查看,类似silent_1319141-1 如果成功后,其他用户将可以通过$request <user-address> <rollapp-id> 领取你的rollapp测试币。并与你的rollapp交互。 之后建议使用门户将代币IBC 传输到相应的 RollApp。开发你的rollapp导出私钥运行roller keys list 将显示如下🔑 Addresses: my_celes_key | RollApp Sequencer account on the Celestia network hub_sequencer | RollApp Sequencer account on the Dymension Hub rollapp_sequencer | RollApp Sequencer account on the RollApp relayer-hub-key | IBC relayer account on Dymension Hub relayer-rollapp-key | IBC relayer account on RollApp 目前支持导出 hub_sequencer, rollapp_sequencer and my_celes_key 使用roller keys export rollapp_sequencer 导出你的rollapp_sequencer 私钥,你可以将私钥导入到metamask等其他地方。 使用以下配置连接到你自己的rollapp网络。Network Name: <YOUR-ROLLAPP-NAME> New RPC URL: <RPC-END-POINT> // http:/你的ip:8545 Chain ID: <YOUR-CHAIN-ID> // 你的EIP155 数字 (middle number of RollApp ID,对于test_101-1, 这个数字是101) Currency Symbol (optional): <你rollapp 原生代币,如ETH,DYM> 接下来,你可以想在别的evm链开发一样,开发你自己的app了。可以查看官方教程中的示例。用Remix 部署合约并交互。列出你的RollApp根据官方博客,我们需要列出自己的rollapp。 只有具有RollApp-fam角色的开发人员才有资格在门户上列出他们的 RollApp。 开发人员应在http或https下提供以下端点。这将允许用户能够与您的 RollApp 交互:RollApp RPC 端点(默认端口26657)Rest端点(默认端口1317)JSON RPC 端点(默认端口8545。仅与 EVM RollApps 相关)为了列出您的 RollApp,需要执行下面的步骤按照给水龙头转账部分所述,用您的 rollapp 代币为Discord水龙头提供资金。 可以用下面的命令查询。$balance dym1g8sf7w4cz5gtupa6y62h3q6a4gjv37pgefnpt5 <RollApp-ID> 打开 https://github.com/dymensionxyz/rollapp-registry 并点击右上角的fork按钮。3. 运行git clone https://github.com/<你的github用户名>/rollapp-registry 4. 运行cd rollapp-registry 5. 通过 roller config show 命令找到你的RollappID 。并运行export ROLLAPP_ID=<你看到的RollappID> 6.创建适当的文件和文件夹mkdir -p $ROLLAPP_ID/logos cd $ROLLAPP_ID && touch $ROLLAPP_ID.json 7. 将您的 RollApp 图标添加到该logos文件夹​​中。图标文件名:.. 可以是 SVG、PNG 或 JPG 格式(请确保文件不超过 50KB)。例如silent_1319141-1.jpg。可以使用FTP上传文件到服务器里,具体用法请自行百度或者谷歌。 8. 运行roller config export 并将 JSON 输出复制粘贴到 .json 并填写以下字段(可以使用vim等文本编辑器,方法请自行百度或者谷歌): a. RPC: "http://<你的ip或者域名>:<端口>" (默认端口是26657) b. REST: "http://<你的ip或者域名>:<端口>" (默认端口是1317) c. EVM RPC (仅仅适用于evm rollapp): "http://<你的ip或者域名>:<端口>" (默认端口是8545) d. Logo path: "/logos/." 可选字段: e. chainName: 在门户页面替换 作为你的Rollapp名称 f. description: add "<你的RollApp描述>", 以显示在门户页面里 g. website: add "<你的rollapp的网址>",以显示在门户页面里 示例 (andromeda_2548179-1.json) { "chainId": "andromeda_2548179-1", "chainName": "Andromeda", "rpc": "https://froopy-rollapp-rpc.andromedapool.com", "rest": "https://froopy-rollapp-rest.andromedapool.com", "bech32Prefix": "ethm", "currencies": [ { "displayDenom": "pool", "baseDenom": "upool", "decimals": 18, "logo": "/logos/andromeda_2548179-1.png", "type": "main" } ], "coinType": 60, "faucetUrl": "https://discord.com/channels/956961633165529098/1125047988247593010", "logo": "/logos/andromeda_2548179-1.png", "ibc": { "hubChannel": "channel-5372", "channel": "channel-0", "timeout": 172800000 }, "evm": { "chainId": "0x26e1d3", "rpc": "https://froopy-rollapp-jsonrpc.andromedapool.com" }, "type": "RollApp", "da": "Celestia", "analytics": true, "rewards": true } 9. 在github添加并提交你的更改。 git add . git commit -m "added RollApp" git push -u origin main 这里需要登陆github并输入密码。然而密码处必须填写你自己设置的access token。 10. 向 https://github.com/dymensionXYZ/rollapp-registry 提交pull request。 打开你自己的仓库 https://github.com/<你的github用户名>/rollapp-registry 点击contribute按钮下的Open pull request,提交PR。 更多信息可以自行谷歌或者百度 pr示例 11. 在Discord list-your-rollapp频道发送 $pair Rollapp-Id 然后,社区管理员将在 Discord 中与您开始对话。请您密切关注,以便尽快完成列出流程。 列出RollApp后,我们的任务就完成了。 根据官方博客,奖励将根据 RollApp 的正常运行时间(RPC 端点可用性的奖励)按比例分配奖励,我们只需要保证RollApp正常运行即可。 至于如何成为前10的RollApp。我估计比较优质的,有很多用户的RollApp才有希望。难度比较大。 如果有新的变化,本教程还会持续更新。 欢迎关注我的推特 https://twitter.com/EthExploring ## Publication Information - [Silent ⚛| validator](https://paragraph.com/@exploring/): Publication homepage - [All Posts](https://paragraph.com/@exploring/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@exploring): Subscribe to updates - [Twitter](https://twitter.com/EthExploring): Follow on Twitter