Cosmovisor
Last updated
Last updated
Cosmovisor 是一个为基于 Cosmos SDK 的区块链设计的进程管理器,简化了二进制(链)升级的管理。本文提供了逐步的说明,帮助您为 Injective 网络节点设置 Cosmovisor。
Note: 这些说明假设您已经拥有现有的链二进制文件(例如 injectived)以及一个正常工作的 Go 环境,如果您选择从源代码安装 Cosmovisor。根据您的具体设置,调整名称和路径。
如果您已安装 Go,可以使用以下命令安装 Cosmovisor:
Tip: 确保您的 Go 二进制安装路径(通常是 $GOPATH/bin 或 $HOME/go/bin)已添加到系统的 PATH 中。您可以通过运行以下命令来验证安装:
设置以下环境变量,以便 Cosmovisor 知道要运行哪个二进制文件以及在哪里找到它:
DAEMON_NAME
您的链二进制文件的名称(例如,injectived
)。
DAEMON_HOME
您的节点的主目录(例如,~/.injectived
)。
您可以在 shell 配置文件中设置这些变量(如 ~/.bashrc
或 ~/.profile
),或者直接在终端会话中导出它们:
Cosmovisor 期望在您的节点主目录中具有特定的文件夹结构:
创建 Genesis 目录 此目录存放初始(genesis)二进制文件。
复制当前二进制文件
将当前的链二进制文件(例如,injectived
)放入 genesis 文件夹中。确保文件名与 DAEMON_NAME
值匹配(见下节)。
不要直接运行链的二进制文件,而是通过执行以下命令启动您的节点:
Cosmovisor 将会:
在 $DAEMON_HOME/cosmovisor/genesis/bin
(或适当的升级文件夹)中查找二进制文件。
使用该二进制文件启动您的节点。
监控任何链上的升级信号,并在需要时自动切换二进制文件。
当链上宣布升级时,准备新二进制文件,以便 Cosmovisor 可以自动切换到它:
创建升级目录
使用链上提供的升级名称(例如,v1.14.0
):
放置新二进制文件
编译或下载新二进制文件,然后将其复制到升级目录中。确保二进制文件名与 DAEMON_NAME
匹配。
TIP: 如果您从 GitHub 下载了
injectived
二进制包,我们会将libwasmvm.x86_64.so
复制到升级 bin 目录。稍后将向 systemd 服务添加一个环境变量,将此目录添加到LD_LIBRARY_PATH
中。
升级过程 当达到升级高度时,Cosmovisor 会检测到计划的升级,并自动切换到相应升级文件夹中的二进制文件。
当链上宣布升级时,准备新二进制文件,以便 Cosmovisor 可以自动切换到它。
在生产环境中,通常将节点作为 systemd
服务运行。以下是一个示例服务文件。
创建服务文件
创建一个文件(例如,/etc/systemd/system/injectived.service
),并添加以下内容。根据实际情况调整路径和 <your_username>
:
启用并启动服务
检查日志
确认您的服务运行顺利: