ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Linux 节点测试全攻略:从本地测试网搭建到自动更新及多场景配置

Linux 节点测试全攻略:从本地测试网搭建到自动更新及多场景配置 节点测试-测试的发行版/环境Linux Kernel 6.8、Ubuntu 24.04。-构建方式可使用 podman 或 docker 进行构建。使用 podman 构建的命令为 podman build --tag erlang_builder -f build.Dockerfile ./build.sh。运行本地测试网并使用 RPC API1.配置 RPC 端点需将 RPC 端点指向本地主机具体操作是编辑 /etc/hosts 文件添加 127.0.0.1 nodes.amadeus.bot。2.运行 Chrome 浏览器要禁用证书验证和 CORS跨源资源共享。先创建临时目录 mkdir -p /tmp/chrome_debug然后使用以下命令启动 Chromegoogle-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-securehttps://nodes.amadeus.bot3.允许监听 80 和 443 端口使用 sudo sysctl -w net.ipv4.ip_unprivileged_port_start80 命令。4.运行本地测试网设置环境变量 TESTNETtrue、WORKFOLDER/tmp/testnet、HTTP_IPV4127.0.0.1、HTTP_PORT80然后执行 ./amadeusd。在 REPL 中操作1.向自己转账先获取公钥和私钥命令为 pk Application.fetch_env!(:ama, :trainer_pk)、sk Application.fetch_env!(:ama, :trainer_sk)再调用 Testnet.call(sk, Coin, transfer, [pk,1,AMA])。2.部署合约同样获取公钥和私钥 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。3.调用合约方法调用 get 方法使用 Testnet.call sk, pk, get, []调用 increment 方法使用 Testnet.call sk, pk, increment, [2]。自动更新及作为 systemd 服务运行1.优化 UDP 栈编辑 /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 net.ipv4.conf.all.rp_filter1 net.ipv4.conf.default.rp_filter12.设置系统限制编辑 /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 unlimited3.修改 systemd 配置编辑 /etc/systemd/system.conf 和 /etc/systemd/user.conf添加以下内容[Manager] DefaultTasksMaxinfinity DefaultLimitNOFILEinfinity DefaultLimitNPROCinfinity DefaultLimitMEMLOCKinfinity DefaultLimitLOCKSinfinity4.创建 amadeusd 服务配置编辑 /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.target5.启用并启动服务执行 systemctl enable amadeusd 和 systemctl start amadeusd使用 screen -rd amadeusd 恢复会话。非 root 用户配置若使用非 root 用户需修改 WorkingDirectory/home/youruser 和 Useryouruser。计算机自动启动配置- 若要实现计算机自动启动设置 EnvironmentCOMPUTORtrue。- 若要使计算机自动启动成为验证器设置 EnvironmentCOMPUTORtrainer。免责声明这是一个开源研究项目仅用于教育和信息目的。所有代码、内容及相关材料均“按原样”提供不提供任何保证或担保。该项目处于实验阶段可能会随时间变化且可能存在错误。你需自行承担使用此代码的风险。贡献者和维护者不对因使用该代码而导致的任何损失、损害或法律问题负责。你有责任遵守当地的所有法律法规。严禁在受制裁的国家、个人或组织中使用例如受美国出口法律或 OFAC 规则限制的情况。我们不支持或鼓励非法或未经授权地部署此代码。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进