使用 Avail 作为 DA 层部署 Madara 应用链

最新更新

这个任务已经结束了。您必须在排行榜上有积分,才能在节点冲突结束时考虑获得奖励。官方也不再接受新的tickets。

Avail,由Polygon前联合创始人Anurag Arjun创建,是一个专注于数据可用性(DA)的模块化区块链(和celestia同赛道)。

它为下一代去中心化应用和主权级Rollup提供支持,特别强调轻客户端通过对等网络轻松验证数据可用性的能力。Avail的模块化设计使开发人员可以更容易地集成区块链技术,无需担心验证节点集合或代币经济模型。此外,它支持各种执行环境,包括EVM、WASM和新的自定义运行时。

近期Avail 开启了Clash of Nodes激励测试网完成任务有积分。目前有一个Anyone都能参与的任务——使用 Madara 和 Karnot 部署应用链。目前虽然在官方文档显示为暂停状态,但是PR通过后能在排行榜显示,有积分

这是一个所有人都能参与的任务

这是一个所有人都能参与的任务

如何参与—来自官方文档

如何参与—来自官方文档

官方提到了如何参与:

  1. 部署 Madara 应用链:使用 Karnot CLI 进行快速部署。您可以选择自己托管或请求Karnot团队提供托管服务。

  2. 在 Avail Goldberg 测试网上部署:选择将您的链数据发布到 Avail Goldberg 测试网上。

  3. 为您的帐户注入资金:使用 Avail Goldberg 水龙头获取 Goldberg 测试网的代币。

  4. 为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

安装docker

curl -fsSL https://get.docker.com -o install-docker.sh && bash install-docker.sh

安装rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

安装madara cli

git clone https://github.com/karnotxyz/madara-cli
cd madara-cli
cargo build --release
cp ./target/release/madara $HOME/.cargo/bin

初始化应用链

madara init

这里需要输入一个独特的chain name

init

init

注意:由于之后要替换钱包,请不要给这个钱包领水。

替换钱包

下载https://polkadot.js.org/extension/ 插件

新建一个钱包,保存好助记词。

这个助记词也导入到

Avail Block Explorer

 

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

打开

Avail App id generator

A simple app to create an app id in avail turing network

 

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 Id

appid=你刚刚得到的数字
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个endpoints

  1. rpc_urlhttp://你的ip:9944

  2. explorer_urlhttp://你的ip:4000

  3. metrics_endpointhttp://你的ip:9615/metrics

浏览器和metrics endpoint的链接都可以直接在浏览器打开,你可以打开验证一下。(如果打不开,请检查防火墙设置

注 1:对于metrics_endpoint您需要在/metrics前面添加端口号

注 2:请勿在端口号后添加 /

创建PR

1.打开 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 Generator Tool

 

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-listing

Contribute to karnotxyz/avail-campaign-listing development by creating an account on GitHub.

 

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开发东西,增加交互输,可以参考。(非必需)

Getting started with Madara

Getting started with Madara

If you’ve reached here, it probably means you already have your Madara node up and running 🚀

 

mirror.xyz

来自推特大佬@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。

泪水打湿猪脚饭,发誓要挣一百万。