
Linera 开发工具链安装指南从依赖准备、crates.io 发布版到源码编译与 Nix 可复现环境【免费下载链接】linera-protocolMain repository for the Linera protocol项目地址: https://gitcode.com/GitHub_Trending/li/linera-protocol本篇技术指南完整介绍 Linera 协议开发工具链linera-sdk、linera-service、linera-storage-service的安装方法覆盖 Linux/macOS 下的环境前置依赖准备、从 crates.io 安装 Testnet 发布版本、从源码仓库编译安装当前 release 分支以及使用 Nix 构建可复现开发环境。读完本文你将掌握搭建一套可用的 Linera 本地开发环境含 CLI 钱包客户端与本地测试网络所需的存储服务的完整流程。一、Linera 工具链由哪些组件构成Linera 的开发者工具链并不是一个单体程序而是由若干 Rust crate 组成的集合其中三个最核心Crate作用linera-sdk用 Rust 编写 Linera 应用Wasm 应用的核心库提供合约contract、服务service、视图views等开发框架linera-service定义了一系列二进制程序其中最核心的是linera—— 用于操作开发者钱包、启动本地测试网络的主客户端工具linera-storage-service提供一个简单的数据库服务用于在测试和开发场景下运行本地验证者节点这一分工可以从仓库的 workspace 配置中得到印证根目录的 Cargo.toml 将linera-service、linera-storage-service、linera-sdk等约 30 个 crate 组织在同一个 workspace 中且三者都位于默认成员default-members列表内。其中linera-service并不只产出linera一个二进制。查看 linera-service/Cargo.toml 的[[bin]]声明可以发现它实际打包了 5 个可执行程序linera—— 客户端主工具对应src/cli/main.rs即文档中所说的主客户端工具linera-server—— 验证者节点服务器linera-proxy—— 验证者前端代理linera-schema-export—— GraphQL schema 导出工具linera-benchmark—— 基准测试工具。而linera-storage-service在 linera-storage-service/Cargo.toml 中产出一个二进制linera-storage-server。安装完成后这些二进制都会进入你的~/.cargo/bin可以随时调用。二、支持的平台与系统要求Linera 工具链当前支持的平台可以概括如下表源自 docs/developers/getting_started/installation.mdLinux x86 64 位Mac OSM1 / M2Mac OSx86Windows✓ 主平台✓ 可用✓ 可用未测试需要特别说明的是Linux x86_64 是官方的主开发平台文档中的安装步骤、测试流程均以 Linux 为主Windows 属于未测试状态。仓库根目录的 INSTALL.md 明确建议 Windows 用户使用 WSLWindows Subsystem for Linux并遵循 Linux 的安装步骤由于 Rust 编译开销较大INSTALL.md 特别提醒确保有足够的磁盘空间用于 Rust 编译。安装 Linera 工具链的三大前置条件分别是Rust、Wasmwasm32-unknown-unknown 编译目标和ProtocProtocol Buffers 编译器。三、环境前置依赖准备Linux3.1 Rust 与 Wasm 编译目标curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup target add wasm32-unknown-unknown第一步安装 rustup 与 Rust 工具链第二步为 Rust 添加wasm32-unknown-unknown目标。这个目标至关重要Linera 应用以 Wasm 字节码形式部署运行没有该目标就无法将 Rust 合约编译为 Linera 运行所需的 Wasm 模块。3.2 ProtocLinera 的 RPC 层linera-rpc、linera-storage-service基于 gRPC/Protocol Buffers构建时需要 Protoc 编译器。在 Linux 上安装 protoc 21.11# 从 protocolbuffers/protobuf 的 v21.11 Release 下载对应平台的 protoc 压缩包此处为 linux-x86_64 curl -LO protoc-21.11-linux-x86_64 下载地址 # 解压到用户目录 unzip protoc-21.11-linux-x86_64.zip -d $HOME/.local # 若 ~/.local/bin 不在 PATH 中请手动加入 export PATH$HOME/.local/bin:$PATH注意把export PATH追加到你的 shell 配置文件如~/.bashrc或~/.zshrc否则新终端会话中依然找不到protoc。3.3 Linux 系统开发包在部分 Linux 发行版上还需要安装g、libclang-dev、libssl-dev等开发包它们是 Rust 依赖编译尤其是一些原生依赖所必需的。例如 Debian/Ubuntu 系可通过apt-get安装。3.4 本手册验证使用的 Rust 工具链仓库根目录的 rust-toolchain.toml 固定了项目使用的 Rust 工具链版本[toolchain] channel 1.95.0 components [ clippy, rustfmt, rust-src ] targets [ wasm32-unknown-unknown ] profile minimal也就是说官方手册基于Rust 1.95.0验证且工具链已内建wasm32-unknown-unknown目标并带有clippy、rustfmt、rust-src组件。当你在仓库目录内执行cargo命令时rustup 会自动切换到该版本。四、macOS 环境的差异化安装macOSIntel / M1 / M2用户可参考 INSTALL.md 中更完整的分步指引核心差异如下Xcode 命令行工具xcode-select --installHomebrew建议安装在用户目录下例如$HOME/git/homebrewRustbrew install rustup-init随后同样执行rustup target add wasm32-unknown-unknownClang/LLVMbrew install llvm18并按提示更新PATHProtocbrew install protobuf在 macOS 上protoc、llvm等均由 Homebrew 管理无需手动解压。五、方式一从 crates.io 安装 Testnet 发布版本如果你只是想快速使用 Linera 开发应用最直接的方式是从 crates.io 安装发布版二进制cargo install --locked linera-storage-service0.16.0 cargo install --locked linera-service0.16.0--locked表示使用 crate 发布时锁定的依赖版本保证可复现性版本号0.16.0来自 docs/RELEASE_VERSION对应当前 Linera Testnet 版本。如果你要用linera-sdk编写 Linera Wasm 应用则在你的应用 crate 中以库依赖方式引入cargo add linera-sdk0.16.0关于版本号官方文档特别说明0.16.0对应 Linera 当前的 Testnetminor 版本号最后一位可能会频繁更新但通常不会引入破坏性变更。因此升级同系列 minor 版本一般是安全的。六、方式二从源码仓库编译安装对于需要跟进最新开发进度、参与协议本身开发或调试的场景推荐从源码编译。6.1 克隆仓库并切换到当前 release 分支git clone 本仓库 git 地址 cd linera-protocol git checkout -t origin/testnet_conway # 当前 release 分支其中testnet_conway来自 docs/RELEASE_BRANCH是当前仓库的 release 分支名。6.2 从源码安装工具链cargo install --locked --path linera-storage-service cargo install --locked --path linera-service这两条命令会在当前 workspace 内分别编译linera-storage-service和linera-service两个 crate并把全部二进制安装到~/.cargo/bin。6.3 开发调试模式直接使用 debug 二进制cargo install会以 release 模式编译耗时较长。如果你在开发 Linera 协议本身、需要反复迭代调试可以直接使用 workspace 内编译出的 debug 版本二进制export PATH$PWD/target/debug:$PATH之后在当前仓库目录下执行cargo buildlinera、linera-server等二进制会生成在target/debug/下将其加入PATH即可直接调用省去反复cargo install的开销。官方手册正是基于仓库1996bc5067e19cbde2b036120cea9e22dc57e51c见 docs/RELEASE_HASH这一提交验证的。从 workspace 配置来看根目录 Cargo.toml 的default-members已把linera-service、linera-storage-service、linera-sdk全部包含在内因此在仓库根目录直接执行cargo build即可一次性构建整套工具链。七、进阶使用 Nix 构建可复现开发环境除了手工安装依赖仓库还提供了实验性的 Nix 支持见 flake.nix可以在 Nix 启用的系统Linux包括 WSL 下的 Linux以及 macOS上准备一个可复现的开发环境nix develop执行后即进入一个已经配好 Rust、Protoc 等全部依赖的开发环境之后正常执行cargo build或cargo install即可无需手工安装各前置依赖。如果安装了 direnv甚至无需手动执行nix develop在项目目录执行direnv allow后进入目录时会自动落入构建环境。八、验证安装与后续使用安装完成后可以通过以下方式确认工具链就绪linera --help # 查看 linera 客户端支持的子命令 linera-storage-server --help # 查看本地存储服务用法从 linera-service/Cargo.toml 可以确认linera二进制的入口为src/cli/main.rs它是你日常操作钱包、启动本地测试网络的主要入口。安装好工具链后下一步即可参考 docs/developers/getting_started 目录下的入门文档开始你的第一个 Linera 应用。8.1 运行完整测试所需的额外工具如果你不仅要使用工具链还要参与协议本身开发、运行完整测试集INSTALL.md 还列出了额外工具jqJSON 处理、cargo-rdme、taplo-cli、cargo-all-features、cargo-macheteRust 相关辅助工具以及 Docker部分集成测试依赖容器环境。8.2 遇到安装问题怎么办如果安装失败可以到官方社区渠道向团队反馈问题以获得排障帮助或在本仓库的 Issues 中提交 issue附上你的操作系统版本、Rust 版本与完整错误输出有助于快速定位。核心排障思路包括确认protoc在PATH中且版本正确、确认wasm32-unknown-unknown目标已安装、确认系统开发包g/libclang-dev/libssl-dev齐全。【免费下载链接】linera-protocolMain repository for the Linera protocol项目地址: https://gitcode.com/GitHub_Trending/li/linera-protocol创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考