复制器- Solana对PB级区块链数据存储的解决方案

了解更多关于使Solana成为世界上性能最好的区块链的7项创新之一。 Solana是世界上性能最好的无需许可的区块链。在Solana测试网络的当前迭代中,当使用GPU运行时,由200个不同的物理节点组成的网络支持每秒超过50,000个事务的持续吞吐量。要实现这一目标,需要实施一些优化和应用新的技术,实现网络容量的突破,标志着区块链开发进入了一个新阶段。 有7项关键创新使得Solana网络成为可能: 工作量证明(POH):达成共识前的时序; Tower BFT:PBFT 的 PoH 优化版本; Turbine :区块传播协议; Gulf Stream:快速事务转发协议; Sealevel:并行智能契约运行时; Cloudbreak :水平缩放的帐户数据库;以及 复制器 (Replicators) :分布式账本存储 在这篇博客文章中,我们将探讨复制器(Replicators)—— Solana的分布式账本存储,它用于PB级的区块链数据存储。2017年,Filecoin向我们介绍了复制证明。2018年,我们使用VDF为Solana构建了我们的PoRep版本,并对批量验证进行了优化。 在满负荷运行的情况下,Solana网络每年将生成1gb/s * 365天= 4 PB的数据。如果网络中的每个节点都需要存储所有这些数据,那么它将把网络成员限制在能够维护这种存储能力的少数集中成员中。我们的工作量证明(POH)技术可以通过允许复制证明的快速验证实现和允许在世界各地的数百万复制器节点上快速分发记账来缓解这个问题。复制器不是共识的参与者,并且硬件需求非常低。 在上层,Solana 复制器(Replicator)网络的功能如下:复制器(Replicator)必须向网络发出信号,表明它们有X字节的空间可用来存储数据。以某种间隔,网络将账本历史分成若干块,以达到一定的复制速率(目前我们期望目标速率在100倍左右)和容错性(通过擦除编码实现),这取决于复制器标识的数量和复制器的总可用存储空间。一旦复制器(Replicator)数据分配完成,每个复制器(Replicator)都会从共识验证中下载各自的数据。在某些频率上,复制器将面临证明它们正在存储数据的挑战,此时它们必须完成复制证明(PoRep)。复制器(Replicator)的作用可获得3%左右的增长。 进一步深入的复制证明 复制证明的基本思想是利用通过CBC加密的公共对称密钥来加密数据集,然后哈希加密数据集。在Filecoin的复制证明技术报告中详细解释了这种方法。不幸的是,这种方法的问题是容易受到攻击。 例如,一个不诚实的存储节点可以在哈希的同时进行加密和删除操作。简单的解决方案是在反加密时强制执行哈希,或者以随机顺序执行。这确保了在生成证明期间所有的数据都是存在的,并且它还要求验证器拥有完整的加密数据,以验证每个身份的每个证明。验证所需的空间变为(CBC键的数量)*(数据大小)。 我们改进了这种方法,以比加密更快的速度随机抽样加密块,并将这些样本的哈希记录到PoH账簿中。因此,对于每个PoRep,块保持完全相同的顺序,并且可以在一个批处理中验证所有的证据。这样,我们可以同时验证多个证据,每个都在自己的CUDA核心上。 使用当前的这代显卡,Solana网络可以支持多达每GPU1500个复制身份或对称密钥。验证所需的总空间为(2个CBC块)* (CBC键数),核数等于(CBC键数)。CBC块的大小预计为1MB。 接下来,我们必须在验证器和复制器之间构建一个游戏,以确保复制器正在生成证据,并且保证验证器真正在验证PoReps。 为了开始生成账簿的PoReps, 复制器(Replicator)客户端执行以下操作: 1. 客户端定期签署PoH散列 2. 签名是用来作为选择账簿的一个特定切片的随机度的来源 3.签名用于创建对称的CBC密钥,客户端使用该密钥对账簿的切片进行编码。 由于每个客户端都使用相同的PoH散列,所以签名在所有客户端之间随机分布。然后客户端继续采样加密后的样本: 1. 客户端定期签署PoH散列 2. 签名作为随机度的来源,用于对每1MB的片采样1个字节。 3.样本用SHA256哈希 所有客户端都必须使用与签名相同的PoH散列值。由于签名绑定到PoH,因此生成的样本哈希对于该时间点和特定复制是惟一的。 验证者依次检查客户端的证据: 1. 验证者(Validator)根据GPU内核的数量声明它可以验证多少个PoReps 2. 验证者将定期对PoH散列进行签名 3.签名用于选择要验证的记账的一部分,以及一个用于选择要验证的样本的掩码,直至达到验证器的容量 4. 验证器上载验证失败的证据 客户端可以通过捕获惰性验证器来挑战验证器,以获得失败的验证。为了防止grinding攻击,客户端必须连续使用相同的密钥对标识。为了防止垃圾邮件,协议中的所有消息都会产生tx费用。复制器根据成功提交的证明数量获得奖励。验证者通过验证证据获得权益加权奖励,当fishmen公布伪造证据的证据时,他们会拿一个验证者割开的硬币作为奖励。 Solana利用复制器以及POH、Sealevel和Gulf Stream等创新技术,创造了世界上性能最好的区块链。Solana的测试网络如今是实时的。您可以在https://testnet.solana.com看到它。出于成本考虑,我们只运行少数几个节点。但是,我们已经在许多实例上将它扩展到超过200个物理节点(而不是在共享硬件上),这些节点跨越了AWS、GCE和Azure上的23个数据中心,用于基准测试。 运行时如今运行正常,开发人员现在就可以在testnow上部署代码。开发人员现在可以在C语言中构建智能合约,同时我们正在积极地开发Rust工具链。Rust将成为Solana 智能合约开发的旗舰语言。Rust工具链作为Solana Javascript SDK的一部分公开可用,我们正在进一步迭代软件开发工具包。 Solana将很快推出一个公开测试版,鼓励测试者通过Tour de SOL运行节点——类似于Cosmos的“赌注游戏”——这向公众提出了一个挑战,即在测试Solana网络的极限的同时,还要为此获得令牌。