Atomicals 本地钱包部署及私有节点搭建极简教程

Atomicals 本地钱包部署及私有节点搭建极简教程

Atomicals 协议是一种简单而灵活的协议,用于为比特币等未花费的交易输出 (UTXO) 区块链铸造、传输和更新数字对象(传统上称为不可替代代币)。原子(或“原子”)是一种组织数字对象的创建、传输和更新的方式——它本质上是根据一些简单规则定义的数字所有权链。

atomicals-js 钱包

准备工作

请安装下列软件:

Node.js

Git

VScode

Node.js 是必须的。我只是方便操作选择使用 VS Code,你使用 终端 或 命令行 也可以。安装过程不详细说了基本一路下一步可以搞定。

使用 Git 和 VS Code 的好处是,如果项目有更新等,可以直接通过 源代码管理 - 拉取 即可更新项目。

拉取构建

项目拉取地址:
https://github.com/atomicals/atomicals-js.git

在 VS Code 中 点击 文件 - 新建窗口

点击 源代码管理 - 克隆仓库

粘贴以上链接,Enter

点击 终端 - 新建终端

输入并回车执行

1
npm install -g yarn

注:在此处也可以不使用 yarn,记住“yarn”等于“npm run”即可。为了统一所以我全部使用 yarn。

1
2
yarn install
yarn build

这样 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
2
3
4
txindex=1
server=1
rpcuser=electrumx
rpcpassword=electrumx

Ctrl + S 保存

除了 rpcuser,rpcpassword 请注释掉其它任何 RPC 开头的选项,此处采用极简配置故暂不介绍如何自行加密用户名密码,而都使用electrumx

改动完毕请重新启动全节点。

下载安装 Docker

Windows 版本链接如下:

https://docs.docker.com/desktop/install/windows-install/

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 信息,用户名密码都为 electrumxhost.docker.internal 代表本机地址,8332代表端口。这也是为何我说不需要其他教程配置复杂的 RPC 选项的原因。

请参阅:
Docker 容器如何优雅地访问宿主机网络

点击 终端 - 新建终端

分别执行以下命令

1
2
docker-compose pull
docker-compose up -d

结束镜像请点击 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

1 怎么判断服务是否已经启动?

在终端中运行 docker-compose ps,如果你看到 electrumx 显示 healthy,表示服务已经启动。如果是 unhealthy ,请查看日志,当出现 INFO:DB:closing DBs to re-open for serving 这个 log 的时候,应该很快就能 healthy 了。

2 如何查看日志?

从任务栏图标打开 Docker,查看正在运行的镜像。点击镜像链接即可查看日志。

点击 electrumx-1 可以看到 Atomicals 索引正在下载。

点击 proxy-1 可以看到 electrumx-proxy 正在 8080 端口运行

3.报错 ERROR:Daemon:daemon service refused: Unauthorized. Retrying occasionally…

表示连接失败,请检查 BTC 全节点中 rpcuser 和 rpcpassword 是否正确配置。检查docker-compose.yml 倒数第五行 DAEMON_URL 是否匹配,返回上文查看 拉取并启动镜像

本教程参考 X 用户 @sslisen 所写教程《Atomicals-JS 部署及私有节点搭建》,但针对其中的一些步骤进行简化和修改。

Atomicals 本地钱包部署及私有节点搭建极简教程

https://geekx.top/crypto/btc/Atomicals.html

作者

GeekX

发布于

2023-11-17

更新于

2023-11-17

许可协议

评论