核心用法
structsd-install 技能提供两条安装路径,满足生产部署与开发调试的不同需求:
路径 A:预编译版本(推荐)
- 直接从 GitHub Releases 下载对应系统架构的签名二进制包(Linux amd64/macOS ARM64 等)
- 解压后通过
sudo install安装至/usr/local/bin - 无需 Go 工具链,5 分钟内完成部署
路径 B:源码编译(Makefile)
- 依赖 Go 1.23+,通过
make install编译并安装至~/go/bin - 支持未发布分支、本地补丁及跨平台编译(linux/darwin/windows 多架构)
make build生成二进制至./build/而不修改系统路径
关键特性
- 版本管理:
git checkout切换标签或主干,重新make install即可更新 - 开发支持:可选 Ignite CLI 用于本地 devnet(
make serve),主网/测试网节点无需此依赖 - 验证机制:
structsd version确认安装成功,版本信息嵌入 commit hash 与构建标签
显著优点
1. 双路径灵活:生产环境用预编译包追求速度,开发环境用源码编译追求可控性
2. 跨平台覆盖:GoReleaser 自动生成 6+ 平台/架构组合,Makefile 支持自定义交叉编译
3. 依赖精简:主网节点仅需单一 structsd 二进制,Ignite 仅为可选开发工具
4. 权限友好:路径 B 完全用户态安装(~/go/bin),无需 root
潜在局限
- 网络依赖:首次构建需下载 Go 模块,受限网络环境需配置
GOPROXY - Ledger 支持:硬件钱包功能需系统级
gcc工具链,否则需显式禁用LEDGER_ENABLED=false - 版本锁定:Makefile 强制 Go 1.23+,旧版本直接拒绝构建
- Release 命名漂移:GoReleaser 资产命名可能随版本演变,需人工核对 URL
适合人群
| 场景 | 推荐路径 |
|------|---------|
| 快速部署主网/测试网节点 | 路径 A |
| 验证未发布功能或提交补丁 | 路径 B |
| CI/CD 自动化构建 | 路径 B + `make build-linux-amd64` |
| 本地智能合约开发 | 路径 B + Ignite 可选 |
常规风险
- PATH 配置遗漏:
~/go/bin或/usr/local/bin未加入 PATH 导致命令找不到 - 权限冲突:旧版 Go 包管理器(apt)与新装版本冲突,需先卸载
- 构建失败隐蔽性:网络超时可能被误判为编译错误,需检查
go mod tidy阶段 - 二进制来源:虽为官方仓库,但下载阶段仍需 HTTPS 验证与签名检查(文档未显式提及 checksum 验证步骤)