用途:说明 Midnight 链上存储的分层结构与状态持久化方式,涵盖运行时执行、状态层与持久化层。
主要能力:
- ParityDB 作为默认键值数据库后端,存储全部链上状态,针对区块导入与状态提交的高写入吞吐优化。
- Patricia-Merkle 前缀树作为状态承诺的数据结构,提供每块可防篡改的状态根、高效的包含证明(可验证合约状态与余额)以及仅重算变更路径的增量更新。
- twoxhash 生成树内存储键:非加密哈希,用于快速内部键值查找,追求速度与低碰撞率;不用于安全敏感哈希(此类场景使用 Blake2-256)。
状态提交流程:每块中运行时执行交易并更新 pallet 存储;计算变更的树节点并导出状态根;Midnight Ledger 承诺随标准 Substrate 状态(pallet-midnight)一同持久化;ParityDB 持久化更新后的树后备存储。
查询存储:state_getStorage(RPC)读取原始存储键;midnight_contractState(RPC)读取合约专属状态;Indexer GraphQL 提供面向应用的合约与事件查询。
限制:资料未提供性能数值、配置参数、部署要求及具体使用示例;twoxhash 不适合安全敏感哈希。