
用Docker/Podman构建AMA Protocol完整节点的详细步骤【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node想快速搭建一个AMA Protocol 完整节点本文为你提供一套基于 Docker 与 Podman 容器化构建的完整指南。AMA Protocol 是一个面向 AI Agent 场景的隐私 Layer 1 公链采用基于矩阵乘法MatMul的**有用工作量证明UPoW**机制区块时间仅 500ms支持 WASM 智能合约与 BLS12-381 签名。通过容器构建完整节点可以避免本地装 Erlang、Elixir、Rust 和 LLVM 全家桶的繁琐过程让任何人都能轻松上手。认识 AMA Protocol 完整节点在动手构建之前先了解你将要运行的节点到底是什么。AMA 完整节点由 Elixir 编写核心逻辑、Rust 编写高性能原生模块共识、存储、加密最终通过 Bakeware 打包成单个可执行文件amadeusd无需安装任何运行时依赖开箱即跑。协议参数数值区块时间500msEpoch 长度100,000 区块最大供应量10 亿 AMA共识算法MatMul UPoW签名算法BLS12-381智能合约WASM证明结构排序 Merkle Tree序列化格式VecPak 为什么推荐容器化构建因为完整构建需要编译 OpenSSL、OTP、Elixir、Rust 工具链以及 LLVM/Clang本机直接编译耗时且容易踩环境坑。Docker/Podman 镜像一次性封装好所有依赖构建可复现、升级方便。构建前需要准备什么AMA 节点推荐在 Linux 环境下运行官方测试环境为Linux Kernel 6.8Ubuntu 24.04Docker 或 Podman二选一即可命令几乎通用磁盘建议预留 20GB 以上空间内存建议 8GB 起。对于只想体验的用户本机安装 Podman 即可无缝替换 Docker 命令。第一步获取节点源码完整节点的全部源码托管在 GitCode 平台首先克隆仓库git clone https://gitcode.com/GitHub_Trending/node95/node cd node/ex项目核心目录结构说明ex/build.Dockerfile容器构建镜像定义封装全部编译工具链ex/build.sh一键编译脚本产出amadeusd单文件二进制ex/mix.exsElixir 项目配置定义了 Bakeware release 打包方式ex/config/runtime.exs运行时配置所有环境变量在此读取ex/native/rdb/src/consensus/Rust 编写的共识与内置合约源码contract_samples/WASM 智能合约示例AssemblyScript 与 Rust第二步用 Docker 构建 AMA 节点编译镜像在ex/目录下执行 Docker 构建命令生成名为erlang_builder的编译镜像docker build --tag erlang_builder -f build.Dockerfile .如果使用 Podman把命令里的docker换成podman即可podman build --tag erlang_builder -f build.Dockerfile .这一步骤耗时较长因为 build.Dockerfile 需要完成以下工作基于ubuntu:24.04基础镜像安装编译工具链build-essential、clang-19、llvm-19、mold 等从源码编译 OpenSSL 3.6.3并配置弱加密套件支持源码编译 Erlang/OTP 29启用 microstate accounting源码编译 Elixir 1.20 并安装 hex/rebar 工具安装 Rust 工具链rustup 默认配置⏱️ 耐心等待整个镜像构建可能需要 30 分钟到 1 小时取决于网络和机器性能。构建完成后镜像会被缓存后续迭代编译无需重复构建。第三步一键编译生成 amadeusd 完整节点二进制镜像就绪后运行项目自带的编译脚本./build.sh该脚本的核心逻辑位于 build.sh它会以erlang_builder镜像启动临时容器把当前项目挂载进容器内然后依次执行设置MIX_ENVprod生产环境配置 clang-19 编译器和-marchhaswell优化参数通过 Rust 的 mold 链接器加速链接过程执行mix deps.get拉取依赖执行mix release构建 Bakeware 发布包把产物复制为amadeusd单文件二进制并计算 sha256 校验和编译结束后ex/目录下会生成amadeusd文件。可以检查一下文件属性确认构建成功ls -lh amadeusd sha256sum amadeusd 这个amadeusd是自包含可执行文件可以拷贝到任何兼容 Linux 机器上直接运行无需安装 Erlang、Elixir 或 Rust。第四步快速启动本地测试网节点构建完成后最稳妥的验证方式是先跑一个本地测试网节点。把 hosts 指向本地然后启动# 把 RPC 端点指向 localhost sudo vim /etc/hosts # 添加一行 127.0.0.1 nodes.amadeus.bot # 允许非 root 监听 80/443 端口 sudo sysctl -w net.ipv4.ip_unprivileged_port_start80 # 启动本地测试网节点 TESTNETtrue WORKFOLDER/tmp/testnet0 HTTP_IPV4127.0.0.1 HTTP_PORT80 ./amadeusd节点启动后进入 REPL 交互界面可以测试转账和部署智能合约# 转账测试 pk Application.fetch_env!(:ama, :trainer_pk) sk Application.fetch_env!(:ama, :trainer_sk) Testnet.call(sk, Coin, transfer, [pk, 1, AMA])第五步配置关键环境变量运行完整节点正式运行时节点行为由环境变量控制全部在 runtime.exs 中解析。下表列出最常用的配置项环境变量默认值说明WORKFOLDER~/.cache/amadeusd/节点数据目录密钥、数据库HTTP_IPV40.0.0.0HTTP/RPC 监听地址HTTP_PORT80HTTP/RPC 监听端口UDP_IPV40.0.0.0UDP 对等网络监听地址UDP_PORT36969UDP 对等网络端口MAX_PEERS300最大对等节点数SNAPSHOT_HEIGHT77736265快照高度用于快速同步RPC_URL主网 RPC 地址RPC 服务地址ARCHIVALNODE关闭是否运行归档节点HISTORY_KEEP_EPOCHS10保留历史数据的 epoch 数COMPUTOR关闭是否作为 Computor 参与 UPoW 计算AUTOUPDATE关闭是否开启自动更新跟随链运行主网或测试网节点的通用命令示例WORKFOLDER/data/ama-mainnet HTTP_PORT80 ./amadeusd第六步用 systemd 守护节点并开启自动更新长期运行的完整节点推荐注册为 systemd 服务配合自动更新功能保持节点跟随链同步。先调整系统限制把配置写入/etc/security/limits.conf提升文件描述符上限1024 万并放开 memlock。然后创建服务单元文件/etc/systemd/system/amadeusd.service[Unit] DescriptionAmadeusD Afternetwork-online.target [Service] Typeforking LimitNOFILE1048576 KillModecontrol-group Restartalways RestartSec3 Userroot WorkingDirectory/root/ EnvironmentAUTOUPDATEtrue ExecStart/usr/bin/screen -UdmS amadeusd bash -c ./amadeusd [Install] WantedBydefault.target启用并启动服务systemctl enable amadeusd systemctl start amadeusd screen -rd amadeusd如果想让节点同时作为 Computor 参与 UPoW 挖矿计算在服务里追加环境变量# 作为普通 Computor EnvironmentCOMPUTORtrue # 作为验证者trainer EnvironmentCOMPUTORtrainer第七步针对高带宽网络的系统调优AMA 节点通过 UDP 传输对等数据在 1Gbps 网络下建议按以下参数优化内核写入/etc/sysctl.conf# 提升 UDP 协议栈缓冲区 net.core.wmem_max 268435456 net.core.rmem_max 268435456 net.core.netdev_max_backlog 300000 net.ipv4.udp_mem 3060432 4080578 6120864 # 正常网络环境下阻止伪造 UDP 包 net.ipv4.conf.all.rp_filter1 net.ipv4.conf.default.rp_filter1再在/etc/systemd/system.conf中放开任务数与文件描述符限制DefaultTasksMaxinfinity、DefaultLimitNOFILEinfinity等确保节点长时间稳定运行。常见问题排查镜像构建失败多为网络问题导致源码下载失败重试即可也可配置代理加速 GitHub 资源访问。编译内存不足Rust 编译与 OTP 编译都很吃内存建议构建时保证 8GB 以上可用内存。amadeusd无法监听 80 端口非 root 用户需要执行sudo sysctl -w net.ipv4.ip_unprivileged_port_start80或改用HTTP_PORT8080等高位端口。节点无法同步检查时间同步节点启动时会校验系统时间建议启用 systemd-timesyncd 或 chrony。总结借助 Docker/Podman 容器化构建搭建 AMA Protocol 完整节点的核心流程可以浓缩为三步构建编译镜像、运行编译脚本产出amadeusd二进制、按需配置环境变量启动节点。整个过程无需在宿主机安装任何语言运行时非常适合新手快速上手也便于生产环境批量部署与升级。现在就去克隆源码动手构建属于你自己的 AMA 完整节点吧【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考