Atomicals 本地钱包部署及私有节点搭建极简教程
Atomicals 协议是一种简单而灵活的协议,用于为比特币等未花费的交易输出 (UTXO) 区块链铸造、传输和更新数字对象(传统上称为不可替代代币)。原子(或“原子”)是一种组织数字对象的创建、传输和更新的方式——它本质上是根据一些简单规则定义的数字所有权链。
atomicals-js 钱包
准备工作
请安装下列软件:
Node.js
Git
VScode
Node.js 是必须的。我只是方便操作选择使用 VS Code,你使用 终端 或 命令行 也可以。安装过程不详细说了基本一路下一步可以搞定。
使用 Git 和 VS Code 的好处是,如果项目有更新等,可以直接通过 源代码管理 - 拉取 即可更新项目。
拉取构建
在 VS Code 中 点击 文件 - 新建窗口
点击 源代码管理 - 克隆仓库
粘贴以上链接,Enter
点击 终端 - 新建终端
输入并回车执行
1 | npm install -g yarn |
注:在此处也可以不使用 yarn,记住“yarn”等于“npm run”即可。为了统一所以我全部使用 yarn。
1 | yarn install |
这样 atomicals-js 初始化就完成了。
创建钱包
1 | yarn cli wallet-init |
执行以上命令即可初始化钱包,命令运行后,会在文件夹内生成一个 wallet.json 的文件,这里保存着助记词和私钥。
常用命令
注:可以查看 dist 目录下 cli.js 文件从第 167 行开始,是所有支持的命令,以及所需参数。
铸造 FT 币命令:
1 | yarn cli mint-dft dmint --satsbyte 30 |
#注意这里设置的 gas,与实际上链的 gas 是 1.82 倍的关系,比如这里设置 30,实际上链 gas 是 5460sats/vB。
铸造 Realm 命令:
1 | yarn cli mint-realm "btc" --satsbyte 30 --satsoutput 1000 --bitworkc 3165 |
铸造图片 NFT 命令:
1 | yarn cli mint-nft "E:\Crypto\NFT\CryptoPunks\punk0000.png" --satsbyte 30 --satsoutput 1000 --bitworkc 3165 |
查询余额命令:
1 | yarn cli balances |
Atomicals 私有节点
前提是你已经安装并同步好 BTC 全节点。将放在另一篇进行介绍。//todo
配置全节点
打开 Bitcoin Core,点击 设置-选项
点击底部 打开配置文件 bitcoin.conf
确保添加以下代码段:
1 | txindex=1 |
Ctrl + S 保存
除了 rpcuser,rpcpassword 请注释掉其它任何 RPC 开头的选项,此处采用极简配置故暂不介绍如何自行加密用户名密码,而都使用electrumx。
改动完毕请重新启动全节点。
下载安装 Docker
Windows 版本链接如下:
Mac 版本请选择 Install on Mac 进行下载。
下载完成后打开进行安装,选择 **Use WSL 2 instead of Hyper-V(recommended)**,完成安装后需要注销,并重新登录 Windows。重新登录后,在弹出的窗口,点击 Accept 接受协议,注册并登录 Docker(可以使用 Google、Github 等登录)。
拉取并启动镜像
确保 Docker 已启动并运行。
这里我直接使用以下镜像,包含了 atomics-electrumx-proxy 服务器和 atomics-electrumx 服务。
https://github.com/Next-DAO/atomicals-electrumx-proxy-docker
在 VS Code 中 点击 文件 - 新建窗口
点击 源代码管理 - 克隆仓库
粘贴以上链接,Enter
修改文件 docker-compose.yml
倒数第五行 DAEMON_URL 为以下代码:
1 | DAEMON_URL=electrumx:electrumx@host.docker.internal:8332 |
Ctrl + S 保存
顾名思义此处即为我们之前配置的 BTC 全节点的 RPC 信息,用户名密码都为 electrumx 。host.docker.internal 代表本机地址,8332代表端口。这也是为何我说不需要其他教程配置复杂的 RPC 选项的原因。
点击 终端 - 新建终端
分别执行以下命令
1 | docker-compose pull |
结束镜像请点击 Actions 下方的 结束 ■ 按钮,下次直接从 Docker 中启动。无需再执行命令。
也可以在 终端 中执行 docker-compose down
来结束任务。
BT 下载索引
使用 FDM,qbittorrent Enhanced Edition 或 Aria2 等工具下载下列以下磁力链接数据。
magnet:?xt=urn:btih:7KW5OXSWUQ2EFF57URE42GBRL2XCN5AI
使用 bandizip 解压后得到 electrumx-data,放入 atomicals-electrumx-proxy-docker 目录下。
再次启动 Docker 镜像。查看日志,还需要一段时间同步至新高度。
atomical-js 连接本地节点
此时回到 atomical-js 项目的 VS Code 窗口,点击.env 文件
将 ELECTRUMX_PROXY_BASE_URL 选项注释(前面加 # 号)并复制一行修改为以下代码:
1 | ELECTRUMX_PROXY_BASE_URL=http://localhost:8080/proxy |
Ctrl + S 保存
同理,即指定 atomicals-js 连接 8080 端口的本地节点。
如果没有 .env
文件,请复制一份 .env.example
,改名为 .env
FAQ
在终端中运行 docker-compose ps
,如果你看到 electrumx 显示 healthy,表示服务已经启动。如果是 unhealthy ,请查看日志,当出现 INFO:DB:closing DBs to re-open for serving 这个 log 的时候,应该很快就能 healthy 了。
从任务栏图标打开 Docker,查看正在运行的镜像。点击镜像链接即可查看日志。
点击 electrumx-1 可以看到 Atomicals 索引正在下载。
点击 proxy-1 可以看到 electrumx-proxy 正在 8080 端口运行
表示连接失败,请检查 BTC 全节点中 rpcuser 和 rpcpassword 是否正确配置。检查docker-compose.yml
倒数第五行 DAEMON_URL 是否匹配,返回上文查看 拉取并启动镜像。
本教程参考 X 用户 @sslisen 所写教程《Atomicals-JS 部署及私有节点搭建》,但针对其中的一些步骤进行简化和修改。
Atomicals 本地钱包部署及私有节点搭建极简教程