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

By [StarkNet Fans](https://paragraph.com/@566599) · 2023-11-26

---

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

**第一次看教程的可以从第一步开始操作，到私有节点搭建部分时，结合着更新内容一起做，把更新部分做完后，再一起运行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` #这里是上一步生成记录的返回值

`rpcbind=127.0.0.1`

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

`rpcallowip=127.0.0.1`

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

我的配置如图

**新建一个.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并替换现有同名文件

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

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

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

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

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

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

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

5.检查本地节点状态：在浏览器地址栏输入 [http://192.168.31.188:8080](http://192.168.31.188:8080/) ，如果返回 `“success”：true` 则表示节点运行正常，等待区块数据同步后即可正常使用。_（注意这里的IP地址要替换为你得本机IP地址）_

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

---

*Originally published on [StarkNet Fans](https://paragraph.com/@566599/atomicals-js)*
