12个版本

新版本 0.3.1 2024年8月26日
0.3.0 2024年1月2日
0.2.0 2023年7月26日
0.1.10 2023年4月18日
0.1.0 2022年9月13日

#8 in #nft

Download history 1520/week @ 2024-05-06 2001/week @ 2024-05-13 1981/week @ 2024-05-20 1977/week @ 2024-05-27 1562/week @ 2024-06-03 1946/week @ 2024-06-10 1307/week @ 2024-06-17 960/week @ 2024-06-24 727/week @ 2024-07-01 682/week @ 2024-07-08 754/week @ 2024-07-15 955/week @ 2024-07-22 933/week @ 2024-07-29 937/week @ 2024-08-05 896/week @ 2024-08-12 594/week @ 2024-08-19

3,388 每月下载次数
用于 19 个crate(14 个直接使用)

Apache-2.0

88KB
1.5K SLoC

Solana

SPL账户压缩Rust SDK

有关账户压缩的更多信息可以在 solana-program-library 仓库 中找到。

spl-account-compression 和此crate的实现旨在支持 Metaplex压缩NFT,可能需要修改。


lib.rs:

SPL账户压缩是一个链上程序,它提供了一个接口来操作SPL ConcurrentMerkleTrees。

一个类似于证明的变更日志的缓冲区存储在链上,允许在同一个slot内成功执行多个基于证明的写入。这是通过根据变更日志中存储的信息快速前进而实现过时的(或可能无效的)证明。请参阅白皮书副本 此处

为了规避由Solana事务大小限制引起的证明大小限制,SPL账户压缩还提供了缓存并发Merkle树最顶层叶子的功能。这被称为“树冠”,存储在ConcurrentMerkleTreeAccount的末尾。更多详细信息可以在初始化指令文档中找到。

虽然SPL并发Merkle树可以通用地存储任意信息,但一个典型的用例是Bubblegum合约,该合约使用SPL-Compression来存储关于NFTs的编码信息。在Bubblegum中使用SPL-Compression可以实现

  • 在一个单独的链上账户中存储多达10亿个NFT(链上成本降低超过10,000倍)
  • 每个槽位最多可进行2048次并发更新

在实际操作中,SPL并发Merkle树必须由链下索引器进行补充,以缓存关于叶子节点信息并支持一个API,该API可以提供最新的证明以允许对树进行更新。所有对SPL并发Merkle树的修改都通过SPL压缩合约的指令在Solana账本上结算。可以在Metaplex程序库中找到一个现成的索引器(Plerkle)

依赖项

约17-27MB
约443K SLoC