amadeusprotocol/node
摘要
本文档提供了为Amadeus Protocol构建、测试和部署节点的完整说明,包括测试网设置和systemd服务配置。
查看缓存全文
缓存时间: 2026/08/19 15:46
amadeusprotocol/node
源代码仓库: https://github.com/amadeusprotocol/node
node
测试环境与发行版
Linux 内核 6.8 Ubuntu 24.04
构建
使用 podman 或 docker
podman build --tag erlang_builder -f build.Dockerfile ./build.sh
测试网
# 运行带有 RPC API 的本地测试网
# 将 RPC 端点指向 localhost
vim /etc/hosts
127.0.0.1 nodes.amadeus.bot
# 运行禁用证书验证和 CORS 的 Google Chrome
mkdir -p /tmp/chrome_debug
google-chrome --user-data-dir="/tmp/chrome_debug" --no-first-run --no-default-browser-check \
--ignore-certificate-errors --disable-web-security --unsafely-treat-insecure-origin-as-secure=https://nodes.amadeus.bot
# 允许监听 80 和 443 端口
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80
# 运行本地测试网
TESTNET=true WORKFOLDER=/tmp/testnet HTTP_IPV4=127.0.0.1 HTTP_PORT=80 ./amadeusd
在 REPL 中操作
# 向自身发起转账
pk = Application.fetch_env!(:ama, :trainer_pk)
sk = Application.fetch_env!(:ama, :trainer_sk)
Testnet.call(sk, "Coin", "transfer", [pk,"1","AMA"])
# 部署合约 (默认账户是 :trainer_pk)
pk = Application.fetch_env!(:ama, :trainer_pk)
sk = Application.fetch_env!(:ama, :trainer_sk)
Testnet.deploy "/home/user/project/node/contract_samples/assemblyscript/counter.wasm"
Testnet.call sk, pk, "get", []
Testnet.call sk, pk, "increment", ["2"]
自动更新 + 作为 systemd 服务运行
# 针对 1Gbps 网络优化 UDP 协议栈
cat <<EOF >> /etc/sysctl.conf
net.core.wmem_max = 268435456
net.core.rmem_default = 212992
net.core.rmem_max = 268435456
net.core.netdev_max_backlog = 300000
net.core.optmem_max = 16777216
net.ipv4.udp_mem = 3060432 4080578 6120864
# 对于普通网络:阻止伪造的 UDP 数据包
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
EOF
# 设置系统资源限制
cat <<EOF >> /etc/security/limits.conf
root hard nofile 1048576
root soft nofile 1048576
* hard nofile 1048576
* soft nofile 1048576
root hard nproc unlimited
root soft nproc unlimited
* hard nproc unlimited
* soft nproc unlimited
root hard memlock unlimited
root soft memlock unlimited
* hard memlock unlimited
* soft memlock unlimited
EOF
# 设置 systemd 系统管理器配置
cat <<EOF > /etc/systemd/system.conf
[Manager]
DefaultTasksMax=infinity
DefaultLimitNOFILE=infinity
DefaultLimitNPROC=infinity
DefaultLimitMEMLOCK=infinity
DefaultLimitLOCKS=infinity
EOF
# 设置 systemd 用户管理器配置
cat <<EOF > /etc/systemd/user.conf
[Manager]
DefaultTasksMax=infinity
DefaultLimitNOFILE=infinity
DefaultLimitNPROC=infinity
DefaultLimitMEMLOCK=infinity
DefaultLimitLOCKS=infinity
EOF
# 创建 amadeusd 服务文件
cat <<EOF > /etc/systemd/system/amadeusd.service
[Unit]
Description=AmadeusD
After=network-online.target
[Service]
Type=forking
LimitNOFILE=1048576
KillMode=control-group
Restart=always
RestartSec=3
User=root
WorkingDirectory=/root/
Environment="AUTOUPDATE=true"
ExecStart=/usr/bin/screen -UdmS amadeusd bash -c './amadeusd'
[Install]
WantedBy=default.target
EOF
# 启用并启动服务
systemctl enable amadeusd
systemctl start amadeusd
# 附加到 amadeusd 的 screen 会话
screen -rd amadeusd
对于非 root 用户,请修改以下部分:
WorkingDirectory=/home/youruser
User=youruser
若要作为计算节点自动启动:
Environment="COMPUTOR=true"
若要使计算节点自动启动并成为验证者:
Environment="COMPUTOR=trainer"
免责声明:本项目是一个开源研究项目,仅用于教育和信息共享目的。所有代码、内容及相关材料均按“原样”提供,不作任何明示或暗示的保证。本项目处于实验阶段,可能随时间变化,并可能包含错误。您使用本代码的风险自负。贡献者和维护者对因使用本代码造成的任何损失、损害或法律问题不承担任何责任。您有责任遵守所在地区的所有法律法规。严禁在受制裁国家、个人或组织(例如受美国出口法律或 OFAC 规则限制的实体)中使用本代码。我们不支持也不鼓励本代码的非法或未经授权部署。
相似文章
nodejs/node
Node.js 是一个开源、跨平台的 JavaScript 运行时环境。本仓库包含该项目的源代码、文档、发布类型和贡献指南。
全面的逐步指南,介绍如何部署 Hermes Agent——一个在 VPS 或 Mac Mini 上作为托管服务运行的 Telegram AI 代理,包含完整的可复制代码和配置,以实现始终在线运行。
全面的逐步指南,介绍如何部署 Hermes Agent——一个在 VPS 或 Mac Mini 上作为托管服务运行的 Telegram AI 代理,包含完整的可复制代码和配置,以实现始终在线运行。
amnezia-vpn/amnezia-client
Amnezia VPN 是一个开源 VPN 客户端,允许您轻松部署自己的 VPN 服务器,支持多种协议,包括 WireGuard、OpenVPN 以及混淆协议如 Cloak 和 Shadowsocks。
mikeroyal/Self-Hosting-Guide
全面指南,介绍如何在本地自托管软件应用程序,涵盖云服务、LLM、WireGuard、自动化、Home Assistant 和网络。
@DanKornas: Agent 演示很容易。生产栈才是麻烦的部分。Awesome Production Agentic Systems 是一个精心整理的 GitHub 列表…
一个精心整理的 GitHub 列表,收录了用于部署、监控、扩展和保护生产环境中的 Agentic 系统的开源库,将生态系统组织成实用的板块。