本文档是Solana项目的更新日志,记录了从1.17.0版本到2.2.0版本的重要变更。
此项目的全部显著变更都将记录在此文件中。
请在进行更改时遵循本文档底部的指南 格式基于 Keep a Changelog。 此项目遵循 语义化版本 并遵循 向后兼容性策略
发布渠道有各自的变更日志副本:
<a name="edge-channel"></a>
cargo-build-sbf 和 cargo-build-bpf 已经弃用两年了,现在已经完全移除。
请使用 cargo-build-sbf 和 cargo-test-sbf 代替。redelegate 指令处理器和 CLI 命令 (#2213)&self 代替 &mut self (#2591)agave-validator:--rocksdb-shred-compaction 中已弃用的 fifo 值 (#3451)respan 宏。这被标记为“仅供内部使用”,并且不再在内部使用。entrypoint_no_alloc!,一个性能更高的程序入口点,避免分配,每个唯一帐户节省 20-30 个 CUcargo-build-sbf: 工作区或包级别的 Cargo.toml 可以指定 tools-version,以便在构建链上程序时覆盖默认的平台工具版本。例如:
[package.metadata.solana]
tools-version = "1.43"
或
[workspace.metadata.solana]
tools-version = "1.43"
所选工具版本的优先级顺序为:--tools-version 参数、包版本、工作区版本,最后是默认版本。
package-metadata: 在 Cargo.toml 中指定程序的 id,以便下游用户和工具使用 solana-package-metadata 轻松使用 (#1806)。例如:
[package.metadata.solana]
program-id = "MyProgram1111111111111111111111111111111111"
可以在程序 crate 中使用:
solana_package_metadata::declare_id_with_package_metadata!("solana.program-id");
这相当于编写:
solana_pubkey::declare_id!("MyProgram1111111111111111111111111111111111");agave-validator: 更新 PoH 速度检查,以与来自 Bank 的当前哈希率进行比较 (#2447)solana-test-validator: 添加 --clone-feature-set 标志,以模拟目标集群的功能 (#2480)solana-genesis: --cluster-type 参数现在从目标集群克隆功能集 (#2587)unified-scheduler 作为 --block-verification-method 的默认选项 (#2653)--block-production-method 的 thread-local-multi-iterator 选项已弃用 (#3113)--block-production-method 添加新的变体 central-scheduler-greedy。这是一个简化的调度器,比更严格的 central-scheduler 变体具有更好的性能。Copy 不再在 Rent 和 EpochSchedule 上派生,请切换到使用 clone() (solana-labs#32767)solana-sdk: 移除已弃用的符号solana-program: 移除已弃用的符号RpcClient 和 RpcClient::nonblocking 中移除已弃用的方法solana-client: 移除已弃用的重新导出;请直接导入 solana-connection-cache、solana-quic-client 或 solana-udp-clientagave-validator 中移除已弃用的参数:--enable-rpc-obsolete_v1_7 (#1886)--accounts-db-caching-enabled (#2063)--accounts-db-index-hashing (#2063)--no-accounts-db-index-hashing (#2063)--incremental-snapshots (#2148)--halt-on-known-validators-accounts-hash-mismatch (#2157)central-scheduler 作为 --block-production-method 的默认选项 (#34891)solana-rpc-client-api: RpcFilterError 依赖于 base64 版本 0.22,因此用户可能需要升级到 base64 版本 0.22--health-check-slot-distance 的默认值从 150 更改为 128--with-compute-unit-price、--max-sign-attempts 和 --use-rpcreplaceRecentBlockhash config 参数为 true 时,RPC 的 simulateTransaction 现在在响应中返回额外的 replacementBlockhash 字段 (#380)cargo test-sbf 接受 --tools-version,就像 build-sbf 一样 (#1359)--full-snapshot-archive-path (#1631)amountToUiAmount 指令将金额解析为字符串而不是数字 (#1737)epoch_rewards_status (#1274)--block-verification-method 的 unified-scheduler 选项 (#1668)--rocksdb-shred-compaction 的 fifo 选项 (#1882)fifo 将在 v2.0 中继续支持,并计划在 v2.1 中完全移除changelog 标签--use-snapshot-archives-at-startup 的默认值现在是 when-newest (#33883)solana-ledger-tool 的默认值仍然是 always (#34228)--block-production-method 的 central-scheduler 选项 (#33890)getSignaturesForAddress 始终按 block-inclusion 顺序返回签名simulateTransaction 现在以 json/jsonParsed 形式返回 innerInstructions (#34313)。entries 表中--signer CLI 标志的多个值,强制用户指定多个 --signer 出现,每个签名一个solana program extend 扩展它们,然后再进行升级。gossip_service::get_client() 的接口已更改。gossip_service::get_multi_client() 已被移除。--with-compute-unit-price、--max-sign-attempts 和 --use-rpcsolana-program 和 solana-sdk 默认支持 Borsh v1,对 v0.10 和 v0.9 具有有限的向后兼容性。请升级到 Borsh v1。entries 表--use-snapshot-archives-at-startup,以便更快地重启验证器vx.y+1.0 - UnreleasedUnreleased 注释。vx.y.z 部分删除 Unreleased 注释vx.y.z+1 - Unreleased
- 原文链接: github.com/anza-xyz/agav...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!