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