
textury/arlocalarlocal是一个本地Arweave网关类服务器,为Arweave开发提供本地测试环境。它允许开发者在本地模拟Arweave网络,进行交易测试、智能合约部署、GraphQL请求验证等开发工作,无需连接真实Arweave主网,大幅降低开发测试成本。
确保已安装NodeJS和NPM环境,通过npx直接运行最新版本:
bashnpx arlocal
默认将在http://localhost:1984启动本地网关服务。
如需指定端口,在命令后添加端口号:
bashnpx arlocal 8080
这将在8080端口启动arlocal服务。
--hidelogs:隐藏arlocal的运行日志输出可将arlocal集成到代码中,确保开发和测试环境一致性。
bash# 使用yarn yarn add arlocal -D # 或使用npm npm install arlocal --save-dev
typescriptimport ArLocal from 'arlocal'; (async () => { // 创建ArLocal实例 const arLocal = new ArLocal(); // 启动服务(异步操作) await arLocal.start(); // 执行测试代码... console.log(`ArLocal running on http://localhost:${arLocal.port}`); // 测试完成后停止服务 await arLocal.stop(); })();
ArLocal类构造函数支持以下可选参数:
typescriptArLocal(port = 1984, showLogs = true, dbPath = '.db', persist = false)
port:服务端口,默认为1984showLogs:是否显示运行日志,默认为truedbPath:数据库临时存储目录,默认为.dbpersist:是否在服务器重启后保留数据,默认为false(不保留)铸造AR代币:向指定***地址铸造AR代币,访问端点/mint/<address>/<balance>(例如http://localhost:1984/mint/your***-address/1000000000000)
创建并发送交易:使用ArweaveJS创建、签名并发送交易,流程与主网网关完全一致
确认交易:通过访问/mine端点确认(挖矿)交易:
http://localhost:1984/minehttp://localhost:1984/mine/{blocks}(如/mine/5挖矿5个区块)bash# 默认配置运行(端口1984,显示日志) docker run -p 1984:1984 node npx arlocal # 自定义端口运行 docker run -p 8080:8080 node npx arlocal 8080 # 隐藏日志运行 docker run -p 1984:1984 node npx arlocal --hidelogs
yamlversion: '3' services: arlocal: image: node:latest container_name: arlocal ports: - "1984:1984" command: npx arlocal # 可选:持久化数据(需设置persist=true) volumes: - ./arlocal-db:/root/.db environment: - NODE_ENV=development restart: unless-stopped
arlocal欢迎社区贡献,帮助完善这一重要开发工具。提交PR前请注意:实现网关路由或现有功能时,需保持与Arweave主网网关相同的路径和默认值(例如/tx路径应保持不变),以减少用户在单元测试与主网交易之间的修改成本。
贡献步骤:
git checkout -b my-featuregit commit -am 'Add some feature'git push origin my-new-featuremanifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务