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
3,388 每月下载次数
用于 19 个crate(14 个直接使用)
88KB
1.5K SLoC
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