# Atomicals-JS部署及私有节点搭建

By [burt](https://paragraph.com/@tothemoonfirst) · 2023-12-10

---

**Atomicals-JS部署及私有节点搭建**

E

0xC6CE

November 14th, 2023

2 Collected

Mint

**教程有更新内容，已经全部操作完前面步骤的朋友可以拉到最后看更新部分。**

**第一次看教程的可以从第一步开始操作，到私有节点搭建部分时，结合着更新内容一起做，把更新部分做完后，再一起运行docker。**

**部署Atomicals-JS-Master钱包**
---------------------------

### **1.安装Node.js**

[**Node.js**](https://nodejs.org/en)

[https://nodejs.org/en](https://nodejs.org/en)

[https://nodejs.org/en](https://nodejs.org/en)

在Node.js官网下载最新版本安装文件，按照安装向导进行安装。

安装最新版即可

安装完成后，可以在 `Powershell` 或 `cmd` 命令提示符窗口输入： `node -v` 验证安装是否成功。返回值如果正确显示版本号，即代表安装成功。_（教程中我的版本由于安装的较早，所以跟官网最新版本不一样，我没做升级，大家直接下载最新版即可）_

使用node -v命令验证安装结果

### **2.下载&配置Atomicals-JS-Master**

[**GitHub - atomicals/atomicals-js: Atomicals CLI and Javascript Library**](https://github.com/atomicals/atomicals-js)

[https://github.com/atomicals/atomicals-js](https://github.com/atomicals/atomicals-js)

[https://github.com/atomicals/atomicals-js](https://github.com/atomicals/atomicals-js)

在Atomicals官方Github主页，点击**Code**，在弹出的窗口中选择 `Download ZIP`。

下载程序

解压缩程序到目录，然后切换到该目录，并在资源管理器地址栏输入`cmd`，回车，打开**命令提示符窗口**：

在Atomicals-JS-Master文件夹内打开cmd

依次运行下面命令：

`npm install -g typescript`

npm install -g typescript

`npm run build`

npm run build

`npm install -g yarn`

npm install -g yarn

`yarn install`

yarn install

`yarn cli wallet-init`

yarn cli wallet-init

最后一步是创建钱包，命令运行后，会在文件夹内生成一个`wallet.json`的文件，这里保存着助记词和私钥。

说明：创建钱包后，会自动生成2个地址，`Primary Address`及`Funding Address`，其中Primary是用于接收Atomicals生态资产的，比如ARC20代币、图片NFT等，Funding是用于铸造（挖矿）过程的中转钱包，通常是往Funding地址中存入相应数量的BTC，用于铸造。

至此，部署已经完成，下面是常用的命令：

铸造FT币命令：

`yarn cli mint-dft dmint --satsbyte 30`

#注意这里设置的gas，与**实际上链的gas是1.8~2倍的关系**，比如这里设置30，实际上链gas是54~60sats/vB。

铸造Realm命令：

`yarn cli mint-realm "btc" --satsbyte 30 --satsoutput 1000 --bitworkc 3165`

铸造图片NFT命令：

`yarn cli mint-nft "E:\Crypto\NFT\CryptoPunks\punk0000.png" --satsbyte 30 --satsoutput 1000 --bitworkc 3165`

查询余额命令：

`npm run cli balances`

**搭建私有Atomicals节点（需要本地BTC全节点支持）**
---------------------------------

### **1.安装Docker**

[**Install Docker Desktop on Windows**](https://docs.docker.com/desktop/install/windows-install/)

[https://docs.docker.com/desktop/install/windows-install/](https://docs.docker.com/desktop/install/windows-install/)

[https://docs.docker.com/desktop/install/windows-install/](https://docs.docker.com/desktop/install/windows-install/)

在Docker官网下载最新版本安装文件，按照安装向导进行安装。

点击下载，并安装

根据安装向导进行安装，选择`Use WSL 2 instead of Hyper-V(recommended)`

选择WSL2

等待安装

点击Close and log out注销并重新登录

完成安装后需要注销，并重新登录Windows。

重新登陆后，在弹出的窗口，点击 `Accept` 接受协议。

注册并登录Docker（可以使用Google、Github登录）。

### **2.下载&配置Atomicals-Electrumx-Docker**

[**GitHub - Next-DAO/atomicals-electrumx-docker**](https://github.com/Next-DAO/atomicals-electrumx-docker#atomicals-electrumx-docker)

[https://github.com/Next-DAO/atomicals-electrumx-docker#atomicals-electrumx-docker](https://github.com/Next-DAO/atomicals-electrumx-docker#atomicals-electrumx-docker)

[https://github.com/Next-DAO/atomicals-electrumx-docker#atomicals-electrumx-docker](https://github.com/Next-DAO/atomicals-electrumx-docker#atomicals-electrumx-docker)

在**Next-DAO**的Github页面，下载压缩包，并解压缩到文件夹\*（步骤和方法与安装Atomicals-JS-Master类似，参考上面步骤即可）\*

[**bitcoin/share/rpcauth/rpcauth.py at master · bitcoin/bitcoin**](https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py)

[https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py](https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py)

[https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py](https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py)

在**Bitcoin**的Github页面，下载`rpcauth.py`代码，可以放在刚才atomicals-electrumx-docker的文件夹里。

下载代码

**在文件夹内打开cmd，运行：**

`python rpcauth.py 用户名 密码`

其中，**用户名**和**密码**位置自行修改，运行把返回参数记录下来，等下会用到。

此步骤需要安装Python，这里不再赘述。

记录返回值

**打开Bitcoin Core的conf配置文件，添加如下参数：**

`server=1`

`txindex=1`

`daemon=1`

`rpcuser=用户名` #设置一个用户名

`rpcpassword=密码` #设置一个密码

`rpcauth=electrumx:c7ed296134ebe0035d9ff786dfa102b5$9d40e8e36` #这里是上一步生成记录的返回值

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\***2023.11.30调整-修改部分**\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

rpcbind=127.0.0.1

rpcbind=192.168.31.188 #这里需要自行查看本机的IP地址，可以通过ipconfig命令查看

rpcallowip=127.0.0.1

rpcallowip=192.168.31.188 #这里需要自行查看本机的IP地址，可通过ipconfig命令查看

### **2023.11.30，调整一下这部分内容，因为发现很多人重启电脑后，本机IP会变化（因为大多数人使用了DHCP自动获取IP，每次会开关机后有可能会自动分配不同IP），所以还要再次修改conf文件，现在改为下面的内容后，可以避免这种情况，如果你已经在成功运行，并且没有报错，电脑也不经常关机，那么可以不做修改。**

`rpcallowip=127.0.0.1`

`rpcallowip=172.0.0.0/8`

`rpcallowip=192.168.0.0/16`

`rpcbind=0.0.0.0`

改完后就涵盖了192.168号段的所有IP。

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\***2023.11.30调整-修改部分**\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

我的配置如图（2023.11.30修改前内容）

2023.11.30修改后内容样例

**新建一个.env文件，并在文件内写入：**

DAEMON\_URL=用户名:密码@192.168.31.188:8332

这里的`用户名`和`密码`就是上一步**Bitcoin Core的conf**里设置的`用户名`和`密码`

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

/\***第一次看教程的朋友，从这里往下可以不做，直接去看后面更新部分。**

在Atomicals-Electrumx-Docker文件夹里打开cmd，并运行：

docker-compose pull && docker-compose up -d

配置中。。。

开启服务器

运行命令后，可以关闭cmd窗口了。Docker开始同步节点信息，完全同步至最新区块高度，大约需要90G磁盘空间，需要1天半时间。可以打开Docker APP 来查看同步进度。

在Docker查看

**第一次看教程的朋友，从这里往上到 /\*可以不做，直接去看后面更新部分。**

\*/

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

**全部同步完成后，** **打开atomicals-js-master文件夹里的.env文件，替换原有节点URL为：**

`ELECTRUMX_PROXY_BASE_URL=http://localhost:8080/proxy`

替换节点URL

至此，私有节点就已经搭建完成。

Docker其他相关命令，在cmd中运行下列命令实现对应功能：

检查electrumx是否准备就绪

`docker-compose ps`

使用cmd查看进度

`docker-compose logs -f`

关闭服务器

`docker-compose down`

**2023.11.15晚9点-更新内容**
----------------------

`更新内容是：本地索引服务支持。由于Next-DAO的Github把两个模式的docker-compose配置文件放在不同的页面，所以上一节教程中没有本节内容，需要操作本节内容才能正确开始本地节点服务。不影响之前的同步数据和进度。`

**1.首先停止已经在运行的Docker，并删除旧的Container。**

删除旧的Container

2.在Next-DAO的GitHub页面，下载`docker-compose.yml`文件，并替换文件夹内现有的同名文件：

[**GitHub - Next-DAO/atomicals-electrumx-proxy-docker**](https://github.com/Next-DAO/atomicals-electrumx-proxy-docker)

[https://github.com/Next-DAO/atomicals-electrumx-proxy-docker](https://github.com/Next-DAO/atomicals-electrumx-proxy-docker)

[https://github.com/Next-DAO/atomicals-electrumx-proxy-docker](https://github.com/Next-DAO/atomicals-electrumx-proxy-docker)

下载docker-compose.yml

下载新的docker-compose.yml并替换现有同名文件

docker-compose.yml文件中，需要填写全节点的rpcuser及rpcpassword，`${IP:?}`部分为本机IP，如果之前的步骤正确创建并配置了.ENV文件，这里可以不改，如果没有配置.ENV，则`${IP:?}`改为本机IP即可。

3.把 `data` 文件夹 重命名为： `electrumx-data`

把 data 文件夹 重命名为：electrumx-data

**上面3步操作完成后重启电脑**

4.然后在文件夹内打开cmd命令提示符窗口，并运行：

`docker-compose pull && docker-compose up -d`

如果报错：_&&不是有效语句分隔符_，就分开运行这两段代码即可。

atomicals-js-master文件夹里的`.env`文件配置与上一节教程一样，无需改动。

5.1检查docker同步状态：在浏览器地址栏输入 [http://192.168.31.188:8080](http://192.168.31.188:8080/) ，如果返回 `“success”：true` 则表示节点运行正常，docker会继续同步数据并检索本地atom协议的交易，此过程也要持续数小时。

5.2检查节点状态：在浏览器地址栏输入 [http://192.168.31.188:8080/proxy/health](http://192.168.31.188:8080/proxy/health) ，如果返回 `“success”：true ， “health”：true`则表示节点已经准备就绪，此时就可以用atomicals-js工具连接私有节点正常使用了。

说明：由于Windows系统上docker的效率本身就低，再加上网络等各种不可控原因，docker下的私有节点并不稳定，及时电脑不关机持续运行，也会导致节点莫名其妙丢失状态（双false状态），此时不用管它，docker会自动继续同步，直到再次准备就绪。（如果期间docker卡死，就需要手动去重启docker）。

_（注意这里的IP地址要替换为你得本机IP地址）_

返回 “success”：true 则表示docker运行正常

返回 “success”：true，“health”：true 则表示节准备就绪

---

*Originally published on [burt](https://paragraph.com/@tothemoonfirst/atomicals-js)*
