如何在10分钟内跑起AMA Protocol本地测试网?保姆级教程
【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node
想体验AMA Protocol 本地测试网,却担心区块链节点搭建太复杂?别慌!AMA Protocol 是一个主打隐私的 Layer 1 公链,采用 MatMul 矩阵乘法工作量证明(UPoW)、500ms 出块、支持 WASM 智能合约,代码完全开源。本教程将手把手带你用 Docker 构建节点、一键跑起本地测试网,并在 10 分钟内完成从零到部署智能合约的全过程,全程零基础也能跟上!
🚀 为什么你需要一个本地测试网?
在动手之前,先搞清楚"本地测试网"到底能干什么:
| 使用场景 | 说明 |
|---|---|
| 🧪 智能合约调试 | 免费部署、反复调用,不用花一分钱 Gas |
| 🔧 源码学习 | 观察 500ms 出块、区块状态如何在本地流转 |
| 💻 前端开发 | 本地 RPC 接口对接钱包和 DApp,调试更方便 |
| 📖 协议研究 | 理解 UPoW、BLS12-381 签名、VecPak 序列化等机制 |
本地测试网就是你的"私人沙盒",想怎么折腾都行。
✅ 第一步:环境准备(保姆级清单)
本项目已在 Ubuntu 24.04 + Linux Kernel 6.8 上测试通过,你需要准备:
- 🐧Linux 系统(推荐 Ubuntu 24.04,虚拟机也可以)
- 🐳Docker 或 Podman(用于构建节点二进制)
- 🌐Chrome 浏览器(访问本地 RPC 面板需要特殊参数启动)
- 📦Git(拉取源码)
💡 没有 Docker?也没关系,项目同样支持本地 Elixir 环境构建,详细步骤见 contract_samples/GETTINGSTARTED.md。
📦 第二步:获取源码并构建节点(最快构建方法)
1. 克隆仓库
git clone https://gitcode.com/GitHub_Trending/node95/node2. 构建节点二进制
进入ex/目录,使用 Docker 构建,全程自动化:
cd node/ex/ docker build --tag erlang_builder -f build.Dockerfile ./build.sh构建完成后,目录下会生成一个名为amadeusd的可执行文件,这就是 AMA 协议节点本体。
🔍 想了解节点内部结构?可以翻翻 ex/ex.ex 看启动逻辑,ex/lib/node/node_gen.ex 是核心节点状态机。
🔥 第三步:10 分钟跑起本地测试网(核心步骤)
构建成功后,只需要 3 个小配置 + 1 条命令,就能启动本地测试网:
配置 1:绑定本地域名
把 RPC 地址指向本机:
sudo vim /etc/hosts # 添加一行 127.0.0.1 nodes.amadeus.bot配置 2:开放 80 端口监听权限
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80配置 3:用 Chrome 调试模式打开 RPC 面板
mkdir -p /tmp/chrome_debug google-chrome --user-data-dir="/tmp/chrome_debug" --no-first-run \ --ignore-certificate-errors --disable-web-security \ --unsafely-treat-insecure-origin-as-secure=https://nodes.amadeus.bot启动!一条命令搞定
TESTNET=true WORKFOLDER=/tmp/testnet HTTP_IPV4=127.0.0.1 HTTP_PORT=80 ./amadeusd启动后,节点会自动生成创世区块(genesis)和 10 个随机测试密钥,一个独立的本地测试网就此诞生 🎉
⚙️ 环境变量含义:
TESTNET=true开启测试网模式、WORKFOLDER指定数据目录、HTTP_PORT=80让 RPC 接口监听 80 端口。
🌐 第四步:验证测试网是否正常运行
节点启动后会进入 Elixir 的 REPL(交互式命令行)。最简单的验证方法——在 REPL 里提交一笔转账:
pk = Application.fetch_env!(:ama, :trainer_pk) sk = Application.fetch_env!(:ama, :trainer_sk) Testnet.call(sk, "Coin", "transfer", [pk, "1", "AMA"])看到交易成功返回,说明本地测试网已正常出块、打包、上链!
同时,你也可以用 RPC 接口验证:
curl http://localhost/api/chain/stats返回链的高度、出块信息等数据,RPC 服务(定义见 ex/lib/http/multiserver.ex)正常工作 ✅
🧪 第五步:部署你的第一个 WASM 智能合约
测试网跑起来了,不部署个合约体验一下说不过去!项目自带 4 个 AssemblyScript 合约示例,位于 contract_samples/assemblyscript:
- 🎯
0_counter.ts— 计数器,最简单的入门合约 - 💰
1_deposit.ts— 充值/提现 - 🪙
2_coin.ts— 发行代币 - 🖼️
3_nft.ts— NFT 铸造
编译合约
cd contract_samples/assemblyscript npm install --global assemblyscript asc 0_counter.ts --target release --importMemory \ --memoryBase 65536 --outFile counter.wasm部署并调用
回到节点 REPL 中:
key0 = Application.fetch_env!(:ama, :keys) |> Enum.at(0) Testnet.deploy key0, "counter.wasm" # 部署 Testnet.call key0.seed, key0.pk, "increment", ["1"] # 调用 Testnet.call key0.seed, key0.pk, "get", [] # 查询📖
Testnet模块封装了部署、调用、查询等全部测试操作,完整源码见 ex/lib/misc/testnet.ex;更多合约示例见 contract_samples/README.md。
🧩 进阶玩法:一键启动 5 节点本地网络
单节点不过瘾?项目提供了localnet.sh脚本,一键启动5 节点 / 10 验证人的完整测试网络,还自带网络延迟模拟:
cd ex/ ./localnet.sh # 默认数据目录 /tmp/ama-localnet NET=/my/net ./localnet.sh # 自定义数据目录该脚本会自动完成:生成 10 个验证人密钥 → 创建创世区块 → 分发数据库 → 启动 5 个节点(分别模拟 0/15/30/100/200ms 延迟),日志输出到$NET/n0.log~n4.log。脚本逻辑见 ex/localnet.sh,非常适合研究节点同步与共识机制 👨🔬
🛠️ 常见问题排查(FAQ)
| 问题 | 解决方案 |
|---|---|
| 80 端口无法监听 | 检查是否执行了sysctl -w net.ipv4.ip_unprivileged_port_start=80 |
| 浏览器证书报错 | 必须使用文档中的 Chrome 调试参数启动浏览器 |
| 构建过程报错 | 确认 Docker/Podman 已正确安装,并参考 README.md 的构建说明 |
| 想了解更多协议细节 | 阅读 DOCS.md,包含协议参数与网络资源一览 |
🎓 总结
恭喜!你已经掌握了AMA Protocol 本地测试网的完整搭建流程:Docker 构建节点 → 一键启动 → RPC 验证 → 部署智能合约。整个流程熟练后真的可以10 分钟搞定!
接下来你可以尝试:编译 Rust 合约(见 contract_samples/rust)、对接钱包 SDK、甚至研究 UPoW 共识源码(ex/lib/consensus)。本地测试网就是你探索区块链世界的游乐场,放心大胆地折腾吧!
【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考