# 使用 Avail 作为 DA 层部署 Madara 应用链 **Published by:** [Silent ⚛| validator](https://paragraph.com/@exploring/) **Published on:** 2024-02-04 **URL:** https://paragraph.com/@exploring/avail-da-madara ## Content 最新更新这个任务已经结束了。您必须在排行榜上有积分,才能在节点冲突结束时考虑获得奖励。官方也不再接受新的tickets。 Avail,由Polygon前联合创始人Anurag Arjun创建,是一个专注于数据可用性(DA)的模块化区块链(和celestia同赛道)。 它为下一代去中心化应用和主权级Rollup提供支持,特别强调轻客户端通过对等网络轻松验证数据可用性的能力。Avail的模块化设计使开发人员可以更容易地集成区块链技术,无需担心验证节点集合或代币经济模型。此外,它支持各种执行环境,包括EVM、WASM和新的自定义运行时。 近期Avail 开启了Clash of Nodes激励测试网,完成任务有积分。目前有一个Anyone都能参与的任务——使用 Madara 和 Karnot 部署应用链。目前虽然在官方文档显示为暂停状态,但是PR通过后能在排行榜显示,有积分。这是一个所有人都能参与的任务如何参与—来自官方文档官方提到了如何参与:部署 Madara 应用链:使用 Karnot CLI 进行快速部署。您可以选择自己托管或请求Karnot团队提供托管服务。在 Avail Goldberg 测试网上部署:选择将您的链数据发布到 Avail Goldberg 测试网上。为您的帐户注入资金:使用 Avail Goldberg 水龙头获取 Goldberg 测试网的代币。为Clash of Nodes列出您的应用链:创建一个 PR,按照指定的 JSON 格式在 Karnot CLI 的官方存储库上列出您的应用链。本教程选择自己托管应用链,仅供参考,请以官方教程和karnot给的教程为准。配置要求根据Karnot的mirror文章,由于madara cli目前在本地构建madara镜像,需要一定的配置。官方测试时用了4 vCPU, 16 GB memory and 50 GB storage的实例基础环境配置安装必要的基础环境sudo apt-get update -y sudo apt-get install git jq build-essential pkg-config libssl-dev clang protobuf-compiler screen -y 安装dockercurl -fsSL https://get.docker.com -o install-docker.sh && bash install-docker.sh 安装rustcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" 安装madara cligit clone https://github.com/karnotxyz/madara-cli cd madara-cli cargo build --release cp ./target/release/madara $HOME/.cargo/bin 初始化应用链madara init 这里需要输入一个独特的chain nameinit注意:由于之后要替换钱包,请不要给这个钱包领水。替换钱包下载https://polkadot.js.org/extension/ 插件 新建一个钱包,保存好助记词。 这个助记词也导入到 https://goldberg.avail.tools/#/ 接下来去Avail discord领取测试币,需要验证Gitcoin Passport(具体规则见Avail discord faucet-access频道) 验证完成后,在goldberg-faucet频道发/deposit 你的avail地址 把配置文件里的助记词替换成刚刚创建的m="你的助记词" sed -i "s/\"seed\":\"[^\"]*\"/\"seed\":\"$m\"/" ~/.madara/app-chains/<刚刚的chain name>/da-config.json 把配置文件里的地址也替换成刚刚创建的address="刚刚导入得到的地址" sed -i "s/\"address\":\"[^\"]*\"/\"address\":\"$address\"/" ~/.madara/app-chains/<刚刚的chain name>/da-config.json 检查cat ~/.madara/app-chains/<刚刚的chain name>/da-config.json 生成App Id打开 https://app-id-gen.vercel.app/ 点击Detect extensions按钮,选择你之前创建的账户。 接下来在黑色框中输入你刚刚的app name,然后点击send tx and create app id按钮然后在钱包中确认交易即可。 接下来在Find an App Id下方的框中输入你刚刚的appname,点击Search App id按钮。下方会显示 App found - AppId: xxx, Owner: xxxxxx 其中Appid后面的数字就是我们需要的Appid。替换App Idappid=你刚刚得到的数字 sed -i "s/\"app_id\":\s*[0-9]*/\"app_id\":$appid/" ~/.madara/app-chains/<刚刚的chainname>/da-config.json 检查cat ~/.madara/app-chains/<刚刚的chain name>/da-config.json 启动你的链启动一个screen终端screen -S madara cd madara run 上下键选择你的链,然后按回车。 接下来需要等待较长时间(等待编译,时间取决于你的机器配置)。 编译结束后,会有一个问题。 ? Have you funded your Avail address xxx using the faucet? (Y/n) 输入y按回车即可。正常运行后会这样显示启动浏览器按Ctrl +AD 退出这个screen (他会在后台运行)screen -S explorer 打开一个浏览器的screen终端madara explorer --host=你的ip地址(不需要http或者https,纯ip即可) 正常情况显示🐳 Running docker image: ghcr.io/lambdaclass/stark_compass_explorer:v0.2.34.3-1 🧭 Explorer is running on http://localhost:4000 打开http://你的ip:4000 能看到如下浏览器我们的应用链和浏览器就跑起来了。 按Ctrl +AD 退出这个screen (他会在后台运行) 下面是对我们有用的3个endpointsrpc_url: http://你的ip:9944explorer_url: http://你的ip:4000metrics_endpoint: http://你的ip:9615/metrics浏览器和metrics endpoint的链接都可以直接在浏览器打开,你可以打开验证一下。(如果打不开,请检查防火墙设置) 注 1:对于metrics_endpoint您需要在/metrics前面添加端口号 注 2:请勿在端口号后添加 /创建PR1.打开 https://github.com/karnotxyz/avail-campaign-listing 并点击右上角的fork按钮。如果你以前fork过,打开你自己的库 ( https://github.com/<你的github用户名>/avail-campaign-listing) 点击Sync fork,并点击Update Branch 2. 运行cd && git clone https://github.com/<你的github用户名>/avail-campaign-listing 3. 运行cd avail-campaign-listing/app_chains 4.打开Online UUID GeneratorQuickly and easily generate individual or bulk sets of universally unique identifiers (UUIDs).https://www.uuidgenerator.net生成一个类似d0a850e3-f34f-49cf-a5ee-bf4c9bfbc91b 的id。 5.创建json文件id=刚刚的id touch $id.json 6.填写以下内容到刚刚创建的json中,(可以使用vim等文本编辑器,方法请自行百度或者谷歌){ "name": "<chain name>", "logo": "<logo 链接,比如我的 https://i.imgur.com/0KUHPnZ.png>", "rpc_url": "http://你的ip:9944", "explorer_url": "http://你的ip:4000", "metrics_endpoint": "http://你的ip:9615/metrics", "id": "你刚刚生成的id" } 下面是官方示例,请根据自己情况修改{ "name": "my_app_chain", "logo": "https://placehold.co/400x400", "rpc_url": "https://rpc.mychain.xyz", "explorer_url": "https://explorer.mychain.xyz", "metrics_endpoint": "https://metrics.mychain.xyz", "id": "942ff35e-f048-4d10-ae61-6cb970cad2f0" } 7. 在github添加并提交你的更改。git add . git commit -m "Adding 你的chainname" git push -u origin main 这里需要登陆github并输入密码。然而密码处必须填写你自己设置的access token。 8. 向GitHub - karnotxyz/avail-campaign-listingContribute to karnotxyz/avail-campaign-listing development by creating an account on GitHub.https://github.com提交pull request。 打开你自己的仓库https://github.com/<你的github用户名>/avail-campaign-listing 点击contribute按钮下的Open pull request,提交PR。 更多信息可以自行谷歌或者百度9. 之后,等待PR通过即可。PR合并需要等待较长时间。PR合并后,应用链将出现在排行榜。(也需要一段时间) 至此应用链的运行和注册便完成了。我们只需要保持稳定运行即可。 你可以在上面开发Dapp, 吸引用户来交互,增加自己应用链的TVL,也许能获得更多奖励。 以下是来自Karnot官方的Madara开发教程,大家如果想要在appchain开发东西,增加交互输,可以参考。(非必需) https://mirror.xyz/karnot.eth/6acUc1sKrFjBEHG5UHptNeY2CjiXhgyb-kKZ1zTxoUc 来自推特大佬@skyMetaverse的补充 提交PR等待merge的时候,如果提示json文件的格式要正确。可以使用下面的命令将json文件格式化 ,然后重新提交。npx prettier --write "app_chains/改成自己的UUID.json" 测试币消耗过快,不够用怎么办打开app-chain-builders频道点击 I Agree按钮,可以获得AppChain Builder这个role。之后,在频道发/deposit-rollup 你的avail地址 这将让你每天能领25AVL, 一周最多 200 AVL。如果有问题,可以在Avail discord的 #developer-discussions 频道提问。如果有新的变化,本教程还会持续更新。欢迎关注我的推特 ## 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