1 个不稳定版本

0.1.0-alpha.02021年6月15日

#57 in #key-management

Apache-2.0

31KB
655 代码行

船长 🧑‍✈️

Crates.io License Build Status Contributors

用于 Solana 程序的版本控制和密钥管理。

  • 基于 Cargo 的程序二进制文件的自动版本控制
  • 部署者和授权密钥分离
  • 按集群配置
  • 可重用和自定义程序地址
  • (可选)Anchor IDL 集成

设置

像这样通过 Cargo 安装

cargo install --git https://github.com/saber-hq/captain --force

然后,在你的根 Cargo.toml 文件所在的目录中,运行以下命令

captain init

用法

Captain 工作流程是这样的

  1. 使用 captain build 命令构建最新的程序
  2. 使用 captain deploy 部署任何新的程序
  3. 使用 captain upgrade 升级任何新的程序

构建

首先,使用以下命令构建你的程序

captain build

此命令将运行 anchor build - 如果你已安装 Anchor,如果没有安装 Anchor,则运行 cargo build-bpf

部署

一旦你的新程序准备好部署到区块链,运行

captain deploy --program <program> --network <network>

其中

  • <network>mainnetdevnettestnetlocalnetdebug 中的一个
  • <program> 是你的程序在 target/deploy/ 目录中的名称。例如,如果你的程序在 target/deploy/my_flash_loan_program.so,则 <program>my_flash_loan_program

这为你做了几件事情

  • 部署程序
  • 将程序的部署者设置为 upgrade_authority,该设置位于您的 Captain.toml 文件中的 <network> 部分
  • 如果已安装 Anchor,则上传 IDL 并设置权限为 upgrade_authority

升级

如果您需要修改您的程序,您可以运行以下命令

captain upgrade --program <program> --network <network>

以下操作将被执行

  • 写入新的程序缓冲区
  • 使用升级权限用这个新缓冲区替换现有的程序缓冲区
  • (正在进行中)如果已安装 Anchor,则上传新的 IDL

支持

有关支持,请加入 Saber Discord:[chat.saber.so](https://chat.saber.so)!

许可证

Apache-2.0

依赖项

~21-33MB
~579K SLoC