红茶
Trie教程详解【澳门威尼克斯人网站(MACAU)】
本文摘要:本文讲解了Node.js中Merkle Tree和Patricia Trie的构建,还讲解了这两种数据结构的一些理论方面。
本文讲解了Node.js中Merkle Tree和Patricia Trie的构建,还讲解了这两种数据结构的一些理论方面。介 绍Merkle和Patricia是以太坊区块链中用于的两种最热门的数据结构,其背后的Bloom Filters十分相似。在本文中,我将讲解以下内容:1. 关于Merkle和Patricia尝试2. 算法3. 在Node.js中构建默克尔树Merkle Tree默克尔树Merkle Tree不是计算机科学中的新概念,它早已不存在了数十年,源于密码学领域。
简而言之,默克尔树Merkle Tree本质上是一种树根数据结构,其中数据存储在叶节点中,非叶节点存储数据散列,每个非叶节点是其下两个节点的人组哈希值。从数学上谈,它可以回应为例如:等价一个字母表列表,借此创立一个默克尔树merkel tree。
默克尔树merkel tree的最底层将包括所有字母作为叶节点。上面的层包括其哈希值。第二层之后的层中的节点包括子节点的哈希值。一般来说我们从第二层提供两个节点,并将它们拆分以构成另一个节点。
我们也可以使用两个以上的节点,但是二叉默克尔树merkel tree是所有节点中最简单的,减少节点的程度只不会减少计算出来和算法的复杂性。如果节点数为偶数,则所取两个倒数的节点并构成父层。但是如果节点数为奇数,我们将用于两个倒数的节点,直到只剩一个以构成父层为止,然后通过将哈希值读取父层来反复剩下的节点。
第3层具备第2层的2个倒数节点的值的哈希值,如果我们在一层中有奇数个节点,则最后一个节点将被反复类似于地,用于第三层的值构成第四层。第四层由第2层的2个倒数节点的值的散列构成默克尔树merkel tree的最后一层或根由保有在最顶层的最后两个节点的哈希值构成。在任何情况下,奇数或偶数叶节点,我们一直在最顶层具备两个节点。数据检验默克尔树merkel tree的重要性在于其高效检验数据的能力。
在等价列表中的任何数据,我们可以在O(h)时间复杂度中检验此数据否有效地。而且我们不必须整个列表展开检验。默克尔树merkel tree的一种更加非常简单形式展现出是哈希链或只是一个区块链,其中每个节点都具备前一个节点值的哈希值。如果我们伪造中间的任何节点,则可以在O(n)时间内确认该节点否被伪造。
哈希链中的检验可以通过计算出来所有节点的哈希值(从所辩论的节点开始以后完结)来继续执行。在必须检验多个节点的情况下,我们从所有怀疑节点中的第一个节点开始,然后计算出来最后一个节点的哈希。现在我们有了最后一个节点的哈希,可以较为并检查此哈希否给定。
哈希链看上去很非常简单,但对于大型数据对象而言并不是一个有效地的自由选择。由于我们必须物理上不存在的整个链来检验数据,因此这也不会使哈希链空间效率低落。默克尔树merkel tree的检验情况并非如此。
为了解释检验过程,请求考虑到下面的示例。假设我从另一台服务器接到了数据C。可以说道这是C’。
我们要检验C’否并未被伪造。我们没列表中所有数据的默克尔树merkel tree。如果是哈希链,我们将必须整个数据列表来检验C’是准确的。
在默克尔树merkel tree中,我们只必须哈希才可。右图说明了如何在没其他能用数据对象的情况下检验C'。
本文关键词:澳门威尼克斯人网站(MACAU),澳门威尼克斯人网站正式版,澳门最新网站游戏
本文来源:澳门威尼克斯人网站(MACAU)-www.xjsongshi.com