• 区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)


    目的:解决由于区块链过长,导致节点硬盘存不下的问题。

    方法:只需保留交易的哈希值。

    区块链作为分布式账本,原则上网络中的每个节点都应包含整个区块链中全部区块,随着区块链越来越长,节点的硬盘有可能放不下。区块链中引入了默克尔树解决这个问题。

    区块链中,为节省空间,只保存交易的哈希值,不保存交易本身的信息,哈希值对于校验来说足够了。

    默克尔树很简单,具体来说,一个区块中的所有交易都会求取哈希值,得到的哈希值,再两两组合成新文本求取哈希值,以此类推,直到生成最后一个哈希值,即根哈希值,这些哈希值组成的二叉树就是默克尔树。如下图所示:

    图

    区块头现在包含:
    – 前一区块的哈希值
    – 一个Nonce
    – 默克尔树的根哈希值

    由于这个根哈希值包含了区块中所有交易的哈希值,因此可以去除这些交易以节省存储空间。

    现在你的区块链看起来就像下图

    图

    可以看到区块链中,只保存了区块头,这可以大大节省存储空间。这一策略被普通节点使用,普通节点只用于收付款,例如虚拟币钱包。但对于矿工节点,就需要保存区块的完整内容。

  • 相关阅读:
    Selenium使用SauceLab示例
    Pandas读取多个csv文件
    基于BDD的跨语言SDK测试
    使用lxml解析HTML
    PyYAML中自定义tag标签获取环境变量值
    求职指导
    Python中如何理解闭包
    如何理解if __name__ == '__main__'
    Python实现二叉树最近公共祖先节点
    nvidia docker安装
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/13176628.html
Copyright © 2020-2023  润新知