amadeusprotocol/node

GitHub Trending (daily) 工具

摘要

本文档提供了为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

GitHub Trending (daily)

Node.js 是一个开源、跨平台的 JavaScript 运行时环境。本仓库包含该项目的源代码、文档、发布类型和贡献指南。

amnezia-vpn/amnezia-client

GitHub Trending (daily)

Amnezia VPN 是一个开源 VPN 客户端,允许您轻松部署自己的 VPN 服务器,支持多种协议,包括 WireGuard、OpenVPN 以及混淆协议如 Cloak 和 Shadowsocks。

mikeroyal/Self-Hosting-Guide

GitHub Trending (daily)

全面指南,介绍如何在本地自托管软件应用程序,涵盖云服务、LLM、WireGuard、自动化、Home Assistant 和网络。