区块链节点中的数据存储和传播如何去改变
扫描二维码
随时随地手机看文章
区块链技术一直在颠复和传播数据的民主化。这促进了它的使用。区块链范式已经从金融用途转向了应用程序开发用途。
在使用区块链技术的应用中,游戏应用是使用区块链技术开发最为广泛的应用。比特币通过共享数据结构或账本提供小原子数据的交易。数据交易的去中心化结构保证了一个高效的系统。
随着区块链技术在物联网(Internet of Things)范式中的应用,出现了一个新的应用领域,称为自主去中心化点对点遥测(ADEPT),
这是设备之间的另一种自通信方法,它消除了中介,与区块链方法非常相似。
这里的问题是,什么是节点?“节点是通过数据块存储和共享数据的节点,这些数据块是用于提高交易处理速度和可伸缩性的批量数据。传统的数据传播是通过网络中的多个节点来进行的。
但是,如果数据量很大,那么块的大小也很大,并且块将数据共享给网络中的每个节点,直到所有节点都有了新信息,这将导致数据传播速度变慢。
这就是Velocity可以创造奇迹并加速数据传播速率的地方。Velocity使用喷泉代码进行高效和细粒度的交易处理,以防止中断通道上的任何传输。它提供了急需的事交易吞吐量。
在进一步讨论之前,让我们首先了解基本的传播过程。
区块链协议和数据传播:
我们都知道,区块链是一个通过若干节点分批共享数据的网络,这些节点中存储着不受信任的参与者,这些参与者通过协商共识算法对相同的数据进行验证。
当这些信息到达节点时,通常称为引导,当这种引导节点用于数据交换时,这种交换称为块传播。
有几种不同的方法来阻止传播:
紧凑的块:
这是一种经过BIP(区块链改进协议)验证的有效载荷降低方法。这种方法的工作原理是假设必要的信息集已经发送给对等节点,并且只需要与节点交换集合的差异。
图像源:高带宽紧凑块传播
图像源:低带宽紧凑块传播
该方法通过高、低带宽提供了一个有效的中继过程。它利用额外的带宽来停止往返时间(RTT)。这种方法减少了有效载荷的大小。但这一方法有两大缺点:
· 需要“短id”来标识丢失的交易,这些交易需要更多的存储空间。
· 每当一个节点处理多个交易时,由于缺少对未知交易的优化,就会出现差异。
Thinblocks (Xthin):
由比特币无限改进协议(BUIP)开发和提出,这种方法使用bloom过滤器来更有效地比较集合差异。它允许更有效地检测未知交易,但它通过编码成员信息增加了传播过程的开销。存在安全问题,因为恶意节点可以发送伪造的过滤器来创建冲突攻击。
图像来源:Xtremethin块传播
石墨烯:
针对Xthin块方法的不足,提出了一种新的改进方法。它重新传输块来接收故障。它利用单个对等点作为关键点,节点一次性发送所有数据,而不是多个节点共享部分数据。这些块仅用于块传播,而不用于节点引导。
分布式哈希表(DHT):
DHT t主要用于对等发现。将DHT作为“初始播种机”的系统——这是一个负责构建整个系统的单个节点,其中引导过程允许多个参与者共享公共DHT。
该方法减少了上述三种方法中出现的问题,利用节点所拥有的部分信息作为新的资源,缓解了未知交易检测的瓶颈或差异。但也有两个重要的缺点:
· 由于工作量证明挖掘协议,企业参与是一个问题,它已经成为移动应用程序开发使用的障碍,涉及协议遵守和收入模型的问题。
· 该系统需要一个通用的中心节点来引导发现,这本身就违反了区块链的去中心化结构。
通过喷泉速度编码
喷泉码——通常被称为无速率擦除码,它提供了一种独特的方式,将信息编码成片段,当片段数量达到阈值时,可以将这些片段重新组装为原始数据。
由于数据的重构是基于段而不是单独的块,因此与DHTs、相比,它能提供更健壮、更平滑的数据传输。虽然喷泉代码的概念在区块链范例中非常有用,但它还没有在区块链领域中使用。
对于区块链应用程序,喷泉代码是理想的,它可以将单个信息分割成大小相等的元素。然后这些元素被编码成特定的“符号”。这些符号是特定于任务的,并传输到一个或多个源,由接收者聚合信息。
这个接收者为每个符号编码一个算法。但是解码算法的可能性几乎为零。可以将Velocity与喷泉代码一起使用。
Velocity使用这些喷泉码的纠错特性来允许来自多个源并具有同步广播的块传播。
通过喷泉代码逐步阻止传播:
1. 在实现新节点时,发送方节点将Inv发送到附近的节点。块被编码为预先确定大小的符号。
2. 接收方接收Inv消息,并使用get_sym请求所有节点的任何未知块。
3. 拥有所请求块信息的对等节点通过sym响应重复提供响应,在符号中对每个块进行编码。
4. 接收器收集所有的符号,并使用块标头id提供的映射形成一类符号对。这个过程确保了块的安全性,因为每个块必须拥有一个头来避免DOS攻击。
5. 接收机有一个预先确定的符号体积阈值,当这些符号达到阈值时,接收机开始重构块。
6. 在执行重构过程时,如果相同的操作失败,则接收方尝试检测不符合的符号对。
7. 如果重构过程成功,则将接收到的消息发送到发送节点,以停止符号的传输。
了解“Velocity”速度使用的收入点:
挖掘池通常使用历史数据来确定收入模型块的最佳大小。有时,交易费用并不能成为孤立块的理由。为了缓解这些问题,并根据交易费用来决定块的大小,我们可以使用两个参数:
符号大小:
块大小和符号大小的比例对于确定符号大小非常重要,因为我们希望在对等通信中聚合符号。
孤立率:
这些是未被接受的孤立块,因为在区块链操作期间问题中的块存在时间延迟。
结论:
使用Velocity可以优化块传播以获得更好的收益,从而利用区块链增强对企业和企业的财务激励。这种方法当然可以改变区块链进程以优化块大小,帮助采矿者在更高的安全性下实现更流畅、更快的交易。