这篇文章详细介绍了简单序列化(SSZ)的实现和功能,包括类型定义、序列化与反序列化过程、Merkle化、以及SSZ与JSON的映射关系。文章结构清晰,逻辑严谨,包含示例代码和表格,适合对区块链数据结构有深入理解的读者。
本文对 Rust 中 Anchor 智能合约的账户大小计算进行了比较,分析了使用 _std::mem::sizeof 与 Anchor 官方空间参考之间的异同。尽管 _std::mem::sizeof 在大多数情况下准确,但在处理某些数据类型,如 Vec 和 Enum 时可能导致不一致的结果,因此建议开发人员根据 Anchor 文档手动计算账户大小。
递归长度前缀(RLP)是一种核心序列化协议,用于在以太坊中编码和解析数据。本文详细探讨了RLP的工作原理,包括编码和解码规则,以及其在以太坊功能中的重要性。通过示例和流程图,解释了RLP如何将不同类型的数据序列化,确保跨客户端的一致性和高效性。
本文深入探讨了简单序列化(SSZ)在以太坊信标链中的应用,以及其与RLP序列化的比较。SSZ旨在提高以太坊共识层的效率、安全性和可扩展性,详细介绍了SSZ的基本类型、向量、列表、位向量、容器等序列化和反序列化过程,并提供了相关示例代码和图示,以帮助读者更好地理解SSZ的操作及其在以太坊中的重要性。
本文主要介绍了作者计划构建一个高性能的SSZ(Simple Serialize) Rust实现,并通过基准测试套件,在真实的区块链数据上对不同的SSZ实现进行比较。目标是优化以太坊协议中的序列化过程,提高编码/解码的效率,并探索锁步编码和哈希等方法以进一步提升性能。同时,作者还计划构建一个SSZ基准测试套件,用于评估各种SSZ实现的性能,并以图表的方式直观地展示它们的性能差异。
该文档详细介绍了在数字结果的 DLC (Discreet Log Contract) 中,如何对赔付曲线进行序列化和反序列化。针对一般的赔付曲线,文档提出了"General Payout Curves"的概念,并详细说明了其序列化方法和函数评估过程。此外,对于特定的双曲线形状的赔付曲线,文档也提供了相应的序列化和评估方法,最后强调了这些设计是为了提高效率和紧凑性,从而更方便地应用到实际场景中。
文章详细介绍了BLS12-381椭圆曲线的参数化和实例化过程,包括如何计算其基础域模数和子群,以及构造效率的双线性配对函数的步骤。尤其关注了适合zk-SNARK使用的结构和性能要求,提供了具体的生成器和序列化形式的实现细节。
本文介绍了 Anchor 框架中 Discriminator 的概念、作用和必要性。Discriminator 作为唯一标识符,用于区分不同类型的数据和账户结构,确保程序在运行时能够正确处理数据,防止类型相关的错误,增强程序的健壮性和安全性。
本文概述了Solana的编程模型,重点介绍了Solana上构建应用程序的关键结构:账户和交易。文章详细介绍了Solana账户的类型、数据序列化以及如何使用web3.js读取链上数据;同时讲解了Solana交易的结构和执行,并通过Anchor框架部署和交互了一个简单的程序。通过学习,开发者可以充分理解Solana的核心组件,并能进行自己的应用程序开发。
该BIP (Bitcoin Improvement Proposal) 定义了用于传播交易和区块的新消息和序列化格式,这些交易和区块提交给隔离见证结构。它详细说明了交易和区块的序列化格式更新,节点如何通过服务位来声明对见证的支持,以及如何计算包含见证数据的新哈希。此外,还定义了新的inv类型,用于在getdata请求中获取见证交易和区块。
本文档详细介绍了在离散日志合约(DLC)中,针对数值结果的赔付曲线序列化方法。主要包括通用赔付曲线(由分段多项式或双曲线组成)以及双曲线赔付曲线的具体序列化和反序列化(评估)过程。通过这些方法,可以更有效地表示和处理各种复杂的赔付曲线,尤其是在合约差价(CFD)等场景下,可以简明扼要地表示赔付规则。
比特币开发系列 - 字节和哈希
比特币开发系列 - 1 序列化
比特币开发系列 - 2 序列化