节点升级教程 - 2023/12/06

今天我们发布了新版本的Node镜像,现在你可以尝试升级了。

本次更新内容

本次Node升级主要有两个主要的更新点:

A. 在数据库格式方面,从本次更新开始,我们正式推荐大家使用paritydb版本。
B. 由于上游升级,我们更新了节点的启动参数。

上述两个升级点可以分别进行操作,具体的升级步骤将会在下面逐一介绍

参与升级的人员

只有直接使用docker compose的矿工可以参与此次升级。
使用Solo脚本的矿工, 请耐心等待,我们将在完成Solo脚本升级后再次进行社区公告。

如何升级

A. 数据库格式的升级

Phala节点有两种数据库,RocksdbParitydbRocksdb是一种通用的数据库格式,而Paritydb是Parity团队为了Polkadot生态专门设计的数据库格式。

过去,节点的默认数据库格式是Rocksdb。然而,根据Parity的官方反馈,他们将不再处理Rocksdb的bug,未来只会负责处理与Paritydb有关的事务。因此,我们强烈推荐你在将来适当的时候切换到Paritydb。

请注意,Rocksdb和Paritydb的节点数据无法互换使用——你无法在同一节点上切换数据库格式。当你需要进行更改时,你的唯一选择是从头开始重新同步。

如何确认正在使用的数据库版本?这取决于你正在使用的docker映像。我们根据不同的数据库格式制作了不同的docker映像:

类型 Phala Khala
Paritydb phalanetwork/phala-node-with-launcher:v0.1.26 phalanetwork/khala-node-with-launcher:v0.1.26
Rocksdb phalanetwork/phala-node:v0.1.26 phalanetwork/khala-node:v0.1.26

包含"with-launcher"的docker映像使用的是Paritydb。

此外,我们建议运行Paritydb的设备使用ext4的文件系统,Paritydb 目前已知在btrfs或者zfs的系统中运行的并不良好。请大家调整前注意同步修改文件系统。

B. 节点启动参数的调整

请更改docker image并对端口进行一些调整。以下是节点docker compose的一个示例:

version: "3"
services:
  node:
    image: phalanetwork/phala-node-with-launcher:latest
    container_name: node
    hostname: node
    restart: always
    ports:
     - "9944:9944"
     - "9945:9945"
     - "30333:30333"
     - "30334:30334"
    environment:
     - NODE_NAME=PNODE
     - NODE_ROLE=MINER
     - PARACHAIN_EXTRA_ARGS=--max-runtime-instances 32 --runtime-cache-size 8
     - RELAYCHAIN_EXTRA_ARGS=--max-runtime-instances 32 --runtime-cache-size 8
    volumes:
     - /var/phala/node-data:/root/data

注意:在这个例子中,我们使用的是paritydb。