# 🌸樱花色的Taiko Alpha-3节点部署教程啦

By [Nyahunters](https://paragraph.com/@nyahunters) · 2023-07-14

---

> _Taiko是一个去中心化的、等同于以太坊的ZK-Rollup（1类ZK-EVM）。我们正在开发完整的以太坊ZK-EVM，这是以太坊基金会隐私和扩展探索（PSE）团队领导的社区工作的一部分。_

本文将会简单介绍Taiko解决以太坊的扩容方案，提议者（Proposer）、证明者（Prover）在网络架构中的位置与工作原理。同时提供Linux和Windows系统上部署节点的详细教程啦。

目前Taiko处在Alpha 3测试阶段，预计2024年Q1上线主网。

* * *

I 什么是提议者、证明者？
=============

在以太坊L1 的Taiko 合约当中，区块有三种状态：

*   Proposed（被提议的）
    
*   Proved（被证明的）
    
*   Verified（被验证的）
    

如下图所示，三种状态分别以蓝、绿、黄三种颜色表示。

Taiko的用户将交易数据提供给提议者，由提议者将打包着交易数据的区块发布到以太坊网络中，这个区块就会被添加到储存在以太坊Taiko L1的合约上的区块列表中，即图中Ethereum L1 Contract下的格子链。从图中可以看到，最新提议的区块就是链最后面的蓝色区块啦。

![](https://storage.googleapis.com/papyrus_images/86b915ebe0c5918f111e511b1a9eedfc3fa464bc2a5672b39d8989933e871003.webp)

随后证明者在L1链上，平行地，或者说可以不按照顺序地，证明链上存在的被提议的蓝色区块，对比两张图片，这里从左至右第三个区块被某一个证明者证明了。证明过程只需要进行一次，所以第一个证明某一区块的证明者将获得奖励。

![](https://storage.googleapis.com/papyrus_images/184c74e0c10e802db45eac22076c5cefba019d0c007075314e688fcee3bc1ae9.webp)

然而，单独每个区块被证明（prove）了不能保证前一个区块（父区块）被证明（prove），为了使整个链上区块的连接被证明，需要从初始区块（genesis block）开始对每个过渡进行验证（verify）。对比上下两图，左至右第三至第五个绿色区块（被证明的区块）依次被验证，从而使整个链（黄色的链）延申。

![](https://storage.googleapis.com/papyrus_images/9b0bb69801f30cd0d0c80773de1bfa53b9acf92f00dec5945b31296624905dc1.webp)

哈哈，理论就到这里啦。原本还打算写一些关于这种分布Rollup模式如何实现去中心化、安全、无需许可的理念，以及区块层次的证明、区块内交易的证明与筛选的规则细节等等。不过大家应该没有心思看太多，总之，知道我们将要运行的提议者和证明者在整个网络上占据的位置是有帮助哒。

投入与奖励方式：提议者提交区块的同时投入$TTKO，获得$SepoliaETH；证明者证明区块，获得$TTKO。

运行提议者需要的$TTKO源自于前两期活动，证明者的奖励以及社区成员的帮助。所以check一下各位的钱包，再开始叭。

* * *

II 部署整体流程与解释
============

*   VPS/PC，_提供硬件环境_
    
*   Docker，_操作系统层虚拟化容器，用来独立运行程序_
    
*   Taiko Node，_Taiko的节点，记录Taiko网络上的交易活动_
    
*   Sepolia Archive Node，_用来提供RPC endpoint，可以用第三方Alchemy、Infura代替_
    
*   Proposer，_提供交易区块至 Taiko L1 Contract，可选_
    
*   Prover，_验证 L1 Contract上的区块，可选_
    

大致流程：

1.  准备好VPS或PC用来运行节点
    
2.  安装依赖Docker与Git
    
3.  部署Taiko节点
    
4.  使用Alchemy、Infura第三方提供服务或者使用另一台VPS/PC部署Sepolia节点
    
5.  设置变量成为Proposer，或者设置变量成为Prover
    

整个教程将分为Linux与Windows两部分，Linux部分我将在Contabo里租用的服务器上示范，Windows部分将在我个人笔记本电脑上示范，同时Sepolia 节点部署将仅在VPS上进行。准大学生学识有限，难免疏忽，请指正啦~

注意：由于运行Sepolia节点不是必须的，我将放到相对靠后的位置来写（或者直接偷懒咯）（应该不会有谁愿意花几百块钱来优化RPC服务的叭）。

* * *

III Linux
=========

准备VPS，这里仍然采用Contabo的服务商，由于上一篇文章已经讲解地很详细啦，这里就简单讨论一下型号选择的问题哦。（请允许我偷懒！）（待会附上上一篇文章的链接）

如果**只运行Taiko节点或者成为Porposer**那么最低要求是：

*   CPU with 2+ cores
    
*   4GB RAM
    
*   50GB+ free storage space to sync the Mainnet
    
*   8 MBit/sec download Internet service
    

**选择型号S** 5.99EU/mo 的是足够了的，Taiko计划2024年Q1上线主网，所以租期选择1个月、3个月或者更长都是可以哒。

如果打算**成为Prover（可选）**，那么附加要求是：

*   CPU with at least 8/16 cores
    
*   32GB RAM
    

可以**选择型号L或XL**，性能越好证明到区块的概率越大，奖励越多咯。

如果要**运行Sepolia Archive Node（非必须）**，相应的硬盘容量要大，**选择型号M及以上**

*   CPU with 2+ cores
    
*   4GB RAM
    
*   400GB+ free storage space to sync the Mainnet
    
*   8 MBit/sec download Internet service
    

作为教程，我就采用两台M型号Ubuntu 20.04 VPS参与啦。

（其实我用的是本命Debian Bulleye，不过教程写的是Ubuntu的操作方法，如果想用Debian或其他操作系统，需要修改**设置Repository**步骤，修改方法就不放在这啦，可以去Docker官网上看，或者很欢迎来询问我哦）

租用服务器参考的文章地址如下~

[https://mirror.xyz/0x73481089654b72c432071F2DCC0FFFCa6eD35a71/IgOFgzbJ143rbCdkZVQawbjaHsZLTF18T9bwC8nYiBI](https://mirror.xyz/0x73481089654b72c432071F2DCC0FFFCa6eD35a71/IgOFgzbJ143rbCdkZVQawbjaHsZLTF18T9bwC8nYiBI)

* * *

### A 安装Docker

**通过SSH连上VPS（方法见前一篇文章）**

保险起见删除旧版本的Docker

    for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
    

更新源以及安装依赖

    sudo apt-get update -y && sudo apt-get install ca-certificates curl gnupg
    

添加Docker官方GPG Key（没有返回值就对啦）

    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    

设置Repository（也是没有返回值）

    echo \
      "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

更新源并安装Docker引擎（顺便安装git和screen）

    sudo apt-get update
    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin git screen
    

* * *

### B 获得Sepolia L1 Endpoint

三种方法供选择（选一种就可以啦）：

*   Alchemy
    
*   Infura（懒，不演示）
    
*   自己运行Sepolia 节点，获得Endpoint（懒，不演示）
    

#### B.1 Alchemy

这里进:

[https://www.alchemy.com/](https://www.alchemy.com/)

![登录或注册Alchemy账号](https://storage.googleapis.com/papyrus_images/895961d28fbb14c9ecb8c542e51740d5b3e61a4838ee89316bc55a870735fe9e.png)

登录或注册Alchemy账号

![Create App](https://storage.googleapis.com/papyrus_images/022aecc3cece0619e0b9c97caf6c0b96295f646a1074bb2d5fd3b0fd00d58ff7.png)

Create App

命名和描述随意，Chain选择Ethereum，Network选择Ethereum Sepolia

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

![点击View Key](https://storage.googleapis.com/papyrus_images/8da3a5f556d088ec2fe417fabfbf7f0c53614fb15352ba94ea5ddc9ae8283e80.png)

点击View Key

记录这两个地址，一个是HTTPS，一个是WS

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

#### B.2 Infura

在这里在这里：

[https://www.infura.io/](https://www.infura.io/)

和Alchemy创建很像的，注意选择Sepolia Ethereum网络，同样会有那两个链接HTTPS和WS。

#### B.3 Sepolia Archive Node

用相应的服务器（如M型号以上）运行

    git clone https://github.com/eth-educators/eth-docker
    cd eth-docker
    cp default.env .env
    vim .env
    

**ARCHIVE\_NODE参数**设置为

    ARCHIVE_NODE=true
    

vim使用方式见下**C 运行Taiko节点**

    cd ~ && git clone https://github.com/eth-educators/eth-docker.git && cd eth-docker
    ./ethd install #安装
    ./ethd config  #配置
    ./ethd up #启动
    

### C 配置Taiko节点

git clone！

    git clone https://github.com/taikoxyz/simple-taiko-node.git
    cd simple-taiko-node
    

将.env.sample文件复制为新文件.env

    cp .env.sample .env
    

用vim编辑变量（由于懒得解释我最喜欢的vim拥有如何强大的功能，小白请严格遵循步骤，步骤写得很白痴，为的是让大家都可以解决问题啦）

    vim .env
    

**用鼠标滚轮向下滑动**

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

**复制在B板块中得到的HTTPS链接**

**点击第一个“=”**，会发现竖线光标出现在HTTP和=中间

**使用Ctrl+V**

**复制在B板块中得到的WS链接**

**点击第二个“=”**

**使用Ctrl+V**

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

**按ESC键**（键盘左上角的），**输入冒号：**

看到下方有一个冒号：开始的提示符

**输入wq，回车**

ESC直到回车是退出Vim的方法，w表示写入，q表示退出。（我知道这写得很白痴啦，但是但是有人说他们弄不懂，所以就……）

* * *

### D 启用Proposer（Proposer和Prover选其一，或不选）

注意，在Sepolia上要有一些$ETH和$TTKO

进入合约地址

[https://sepolia.etherscan.io/address/0x6375394335f34848b850114b66A49D6F47f2cdA8#writeProxyContract](https://sepolia.etherscan.io/address/0x6375394335f34848b850114b66A49D6F47f2cdA8#writeProxyContract)

**连接钱包，并点击2.depositTaikoToken**

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

**输入你想要质押的$TTKO数量，后面加上八个0**

比我质押了13个$TTKO

随后**点击Write**

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

**SSH连接上服务器（已经连着的不用）**

进入simple-taiko-node文件夹

    cd simple-taiko-node
    

同样修改.env文件（还是不教你们用vim惹）

这次用nano来编辑叭（前面也可以用nano编辑）

    nano .env
    

通过方向键，Ctrl+V之类的

设置ENABLE\_PROPOSER=true

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

L1\_PROPOSER\_PRIVATE\_KEY填写用来质押的钱包**私钥**，Ctrl+V就行\*\*（注意信息安全）\*\*

L2\_SUGGESTED\_FEE\_RECIPIENT填写接收奖励的钱包**公钥**

**输入Ctrl+X，再输入y，回车**（这是nano的保存退出方法）

* * *

### E 启用Prover（Proposer和Prover选其一，或不选）

**SSH连接上服务器（已经连着的不用）**

进入simple-taiko-node文件夹

    cd simple-taiko-node
    

同样修改.env文件

    nano .env
    

设置ENABLE\_PROVER=true

L1\_PROVER\_PRIVATE\_KEY为提供SepoliaETH的钱包**私钥（注意安全）**

* * *

### F 运行Taiko节点

无论前面你是否选择成为Proposer或者Prover，或者单纯运行Taiko节点，下面的步骤都是启动节点的方法。

前台运行

如果想要在后台运行

    docker compose up -d
    

* * *

### G 常用命令

### **停止节点**

这个命令会关闭节点，不过会保留所有记录的卷，因此下次重新启动节点时，它不需要再次从头开始同步啦。

### **删除节点**

这个命令将通过删除每个Docker容器使用的所有卷来完全删除节点：

    docker compose down -vrm -f .env
    

### **更新节点**

更新`simple-taiko-node`Docker 镜像：

### **查看节点的日志**

要查看 Docker 日志，可以运行以下命令：

#### **查看所有日志**

    docker compose logs -f
    

#### **查看提案者图像的日志**

    docker compose logs -f taiko_client_proposer
    

#### **查看验证者镜像的日志**

    docker compose logs -f taiko_client_prover_relayer
    

#### **查看L2执行引擎日志**

    docker compose logs -f l2_execution_engine
    

#### **查看正在运行的容器的实时数据流**

这显示了 CPU/MEM USAGE % 以及机器资源的消耗（添加前缀“ `docker stats -a`”以显示所有容器）

**查看Dashboard**

通过访问（替换为VPS的IP地址） http://<IP Address>:3000/d/L2ExecutionEngine/l2-execution-engine-overview IV Windows Windows上区别不大，不过需要已经配置好WSL，配置WSL方法也见我上一篇文章。 [https://mirror.xyz/0x73481089654b72c432071F2DCC0FFFCa6eD35a71/IgOFgzbJ143rbCdkZVQawbjaHsZLTF18T9bwC8nYiBI](https://mirror.xyz/0x73481089654b72c432071F2DCC0FFFCa6eD35a71/IgOFgzbJ143rbCdkZVQawbjaHsZLTF18T9bwC8nYiBI) 这里安装git： 全点next即可 [https://gitforwindows.org/](https://gitforwindows.org/) 这里安装Docker： [https://docs.docker.com/desktop/install/windows-install/](https://docs.docker.com/desktop/install/windows-install/) **双击安装，重启或注销** (仍然注意，家庭版或学生版，请谷歌“家庭版启动HyperV报错”，将某一段代码保存到文本里，修改后缀为.cmd或.bat，管理员运行，以解决HyperV问题） 若遇到 在powershell（**输入Win+X，点击Windows终端（管理员）**）里输入 wsl --update 在桌面（或者某个文件夹里）按Shift+F10（Win11）（Win10只需要右键） 选择Open Git Bash Here git clone https://github.com/taikoxyz/simple-taiko-node.git cd simple-taiko-node 输入 cp .env.sample .env 在你使用shift+F10的目录里进入simple-taiko-node，用文本编辑器打开.env文件 修改.env文件，或者deposit（成为proposer）之类的参考Linux部分就可以啦。 命令行里使用，来启动节点，其他常用命令同Linux部分啦 docker compose up 好啦，Taiko的节点部署教程到这里就结束啦！！ 有能力和心情的话，也请务必阅读官方文档： [https://taiko.xyz/docs](https://taiko.xyz/docs) 我学识有限，难免出现不周之处，请指正！有任何问题也欢迎提出来，没有问题的话也欢迎来找我玩哦~ [https://twitter.com/nyahunters](https://twitter.com/nyahunters) 关注我叭，一起成为赌喵，nya~ （抽奖活动持续进行中！！！）

---

*Originally published on [Nyahunters](https://paragraph.com/@nyahunters/taiko-alpha-3)*
