# Quil节点搭建教程

By [b1oc4](https://paragraph.com/@b1oc4) · 2024-03-01

---

这是一篇关于Quil节点搭建的教程，部分内容来源于英文文档，有能力阅读英文推荐对照使用。链接如下：

[https://drive.google.com/file/d/1atQ2Gb8vLzqxiS2cqRAp9ojFNDJup3TU/view?pli=1](https://drive.google.com/file/d/1atQ2Gb8vLzqxiS2cqRAp9ojFNDJup3TU/view?pli=1)

一、服务器购买
-------

这里不在赘述，仅推荐手头有空余服务器的人员搭建，为此单独购买服务器并不划算，因为

1.  项目融资未知、背景未知
    
2.  热度不够
    

但是优点就是3月15号可以Claim代币，无需等待太长时间，因此推荐玩玩。

服务器配置官方要求是8核心，16G内存，250G的SSD存储

但我推荐优先满足内存和存储，我的配置是2核心、16G内存、250G普通硬盘、Ubuntu系统，这样做会导致CPU占用一直是百分百，但是费用会明显下降。

另外开通一个月服务器即可，如有需要则继续续费。

二、登录服务器
-------

在这里我首先推荐使用密钥对的方式登录服务器，但是照顾小白，可以使用另一种方法。

以我自己使用的谷歌云服务器为例，找到**SSH登陆**，其余各家位置可能不同，但**肯定都会提供。**

![](https://storage.googleapis.com/papyrus_images/10aef9c274051bf520b0084ee6a8d582f88e99502f8c52a178af5193fb7c8877.png)

此时弹出网页，自动使用网页的方式链接服务器

![](https://storage.googleapis.com/papyrus_images/9daf4369cefb6d2ebf5bf39ef8adfd9b10d53039e94797edda649a405b774048.png)

三、环境搭建
------

1、拉取代码

`git clone https://github.com/QuilibriumNetwork/ceremonyclient.git`

2、安装1.20.14版本的Golang （#后面是说明，不是命令）

`#卸载旧版本Golang`

`sudo rm -rf /usr/local/go`

`sudo apt-get remove golang`

`sudo apt-get remove golang-go`

`sudo apt-get autoremove`

`#wget下载`

`sudo wget https://golang.google.cn/dl/go1.20.14.linux-amd64.tar.gz`

`#解压文件`

`sudo tar xfz go1.20.14.linux-amd64.tar.gz -C /usr/local`

3、编辑环境变量

`sudo vim /etc/profile`

此时已经使用vim打开了这个文件，使用方向键下键移动到文档最后一行

![](https://storage.googleapis.com/papyrus_images/b054f647410d9bba21791244a6cea6c897e844833b11a06c4b2dc468c715db9e.png)

接着按下键盘上的”**i**”键，此时下方提示**INSERT**，就可以更改了。

![](https://storage.googleapis.com/papyrus_images/cd70197fd43af644797a3b39ebd5ae075395dfc06f2102e18b424e37f074a629.png)

复制下面的内容，**Ctrl+V粘贴**到最后一行

`export GOROOT=/usr/local/go`

`export GOPATH=$HOME/gowork`

`export GOBIN=$GOPATH/bin`

`export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH`

接着按一下“**ESC**”，进入命令模式

再输入 **:wq** ,回车保存并退出👇

![](https://storage.googleapis.com/papyrus_images/1a62d1d1668d2fc4fc82a14b2a026ea0382fe58fdc0fb4cb9cf0a814c802a8a4.png)

`#更新下profile文件`

`source /etc/profile`

`#更新.bashrc文件`

`cd ~`

`sudo vim .bashrc`

`#这里同样是使用vim打开.bashrc并粘贴`

`source /etc/profile`

![](https://storage.googleapis.com/papyrus_images/67c07be881bd3d73be1eb554fa4ec33f7d6a0aa09ef9193ce39f2534c83055a7.png)

四、运行节点
------

第二节中，已经将代码拉取下来了，后续所有的操作都在 **_/root/ceremonyclient/node_** 下操作

![](https://storage.googleapis.com/papyrus_images/d9d735efd23f145fe420e203c11784391f175cac6b6bce000bf3366bc694d582.png)

切换目录

`cd /root/ceremonyclient/node`

运行生成.config目录

`GOEXPERIMENT=arenas go run ./...`

**第一次运行时会自动生成所需要的配置文件，当屏幕开始滚动时，就可以按Ctrl+C停止了**

（这里因为已经搭建完，暂时没有截图）

输入**ll**，会看到目录下生成有一个 **.config** 目录

![](https://storage.googleapis.com/papyrus_images/17a6e3bddec26462eaa5c68c4b7ab9386c501274a15b0ae128aa765b3f18f468.png)

修改.config目录里的config.yml

`vim .config/config.yml`

继续使用下键拉到最后，找到**listenGrpcMultiaddr**配置项并修改

`listenGrpcMultiaddr: "/ip4/127.0.0.1/tcp/8337"`

`listenRESTMultiaddr: "/ip4/127.0.0.1/tcp/8338"`

![](https://storage.googleapis.com/papyrus_images/68ebf4b214748639c3928e73d108755b363c2abecd50dc6013eccf5cc9853499.png)

还是上面提到的vim使用方法，**:wq**保存退出

五、持久化运行
-------

`#安装screen`

`apt install screen -y`

`#在node目录里添加启动脚本`

`vim run.sh`

`#写入`

`#!/bin/bash`

`GOEXPERIMENT=arenas go run ./...`

`#添加重启脚本`

`vim restart.sh`

`#写入`

`#!/bin/bash`

`while true`

`do`

`ps -ef | grep "node" | grep -v "grep"`

`if [ "$?" -eq 1 ]`

`then echo "process has restarting..."`

`./run.sh`

`echo "process has been restarted!"`

`else`

`echo "process already started!"`

`fi`

`sleep 10`

`done`

`#添加权限`

`chmod a+x run.sh`

接下来我们需要让其在后台运行，即使关闭当前标签页也不会停止

安装screen

`apt install screen -y`

`screen -S quil`

此时会重新进入一个终端

在这里运行命令

`bash restart.sh`

节点就开始运行了

最后按住**Crtl A D**

退出Screen

输出**_screen -ls_** 查看当前状态，只要是**Detached**就表示正常运行

![](https://storage.googleapis.com/papyrus_images/642e2e6e69357749d98e218960c82ab3cef442c70d46f61be3cb9f0e8160da95.png)

六、其他问题解答
--------

1、如何进入screen？

screen -x quil

2、查询余额时提示“item not found”？

![](https://storage.googleapis.com/papyrus_images/a4616d32f45c5ef631f30b8ad87a6f8e03c46b257c25c59d74b8b6db55e22325.png)

同步一段时间后重新运行节点，再次查询即可

3、提示refuse

**安全端口没开，不是服务器上的，而是在服务器厂商的控制台中开放，一般默认只会开放几个常用端口**

4、钱包问题

**保存.config目录下的config.yml和keys.yml**

这里提供一个简单的保存方式

`python3 -m http.server 8080`

接着在浏览器输入

`http://你的IP:8080`

进入.config目录，把两个文件下载下来即可

![](https://storage.googleapis.com/papyrus_images/b38d24435cec6fbd7817971acad45234ed34fe702a722de8eb28a3581eb02a0b.png)

**注意用完一定要Ctrl C关闭！**

其他问题欢迎在推下留言，看到有时间的话会回复

---

*Originally published on [b1oc4](https://paragraph.com/@b1oc4/quil)*
