今天带大家来深入探索一下IPFS的核心数据结构Merkle DAG

什么是 Merkle DAG?

Merkle DAG是IPFS系统的核心概念之一,当然Merkle DAG并不是IPFS团队发明的,它来来自于Git数据结构,ipfs团队进行了改造(这一点ipfs团队一直是一个很努力的团队,并不是直接拿来使用,而是在此基础上修改更适合项目的使用)。

Merkle DAG的全称是 Merkle directed acyclic graph(默克有向无环图)。它是在Merkle tree基础上构建的,Merkle tree是由美国计算机学家merkle于1979年申请的专利。Merkle DAG跟Merkle tree很相似,但不完全一样,比如:Merkle DAG不需要进行树的平衡操作,非叶子节点允许包含数据等。

Merkle DAG

Merkle DAG拥有如下的功能:

  • 内容寻址:使用多重哈希来唯一识别一个数据块的内容
  • 防篡改:可以方便的检查哈希值来确认数据是否被篡改
  • 去重:由于内容相同的数据块哈希是相同的,可以很容去掉重复的数据,节省存储空间

IPFS的数据对象格式如下:

type IPFSLink struct {
Name string // link 的名字
Hash Multihash // 数据的加密哈希
Size int // 数据大小
}
Type IPFSObject struct {
links []IPFSLink // link数组
data []byte // 数据内容
}

IPFS让应用可以完全控制对象的数据字段,也就是说应用可以随意定义自己的data类型和结构,甚至可以是一些IPFS系统无法理解的数据结构,灵活度非常的大。

下面以

IPFS: Merkle DAG数据结构相关推荐

  1. IPFS系列 - 默克有向无环图(Merkle DAG)

    Merkle DAG的全称是Merkle Directed Acyclic Graph(默克有向无环图).它是在Merkle Tree的基础上构建的,Merkle Tree由美国计算机学家Merkle ...

  2. Merkle DAG 和 Merkle Tree的区别

    Merkle DAG 和 Merkle Tree的区别 对于IPFS,Merkle DAG 和 Merkle Tree是两个很重要的概念. Merkle DAG是IPFS的存储对象的数据结构, Mer ...

  3. DAG - 数据结构 有向无环图

    DAG - 在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图. 其实就是指一个没有回路的有向图. 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向 ...

  4. IPFS和梅克尔森林

    什么是IPFS? IPFS是InterPlanetary File System的缩写.它是一种点对点的可以使Web更快,更安全,更开放的分布式文件系统.我们需要用IPFS把当前版本的Web切换成分布 ...

  5. IPFS星际文件系统(中文白皮书)

    IPFS - 可快速索引的版本化的点对点文件系统 作者: Juan Benet (juan@benet.ai) 译者: 郭光华(gavin@8btc.com) 摘要 星际文件系统是一种点对点的分布式文 ...

  6. IPFS - 可快速索引的版本化的点对点文件系统(草稿3)

    摘要 星际文件系统是一种点对点的分布式文件系统, 旨在连接所有有相同的文件系统的计算机设备.在某些方面, IPFS类似于web, 但web 是中心化的,而IPFS是一个单一的Bittorrent 群集 ...

  7. IPFS白皮书中文版

    IPFS - 可快速索引的版本化的点对点文件系统 摘要 星际文件系统是一种点对点的分布式文件系统, 旨在连接所有有相同的文件系统的计算机设备.在某些方面, IPFS类似于web, 但web 是中心化的 ...

  8. IPFS(中文白皮书)

    2019独角兽企业重金招聘Python工程师标准>>> IPFS(中文白皮书) 2017-05-28 IPFS - 可快速索引的版本化的点对点文件系统(草稿3) 作者: Juan B ...

  9. 人民云网运用IPFS技术

    近日,人民云网发文称,人民云网的数据中心安全网运用了IPFS技术.原文如下slf00088: " 人民云网是人民网与工信部合资公司--人民数据(国家大数据灾备中心)旗下的区块链分布式存储数据 ...

最新文章

  1. CyberRT使用笔记
  2. 周伯文对话斯坦福教授曼宁:人机对话智能新进展需要新“图灵测试”
  3. 不安全网络中的数据安全传输利器——GnuPG(下)
  4. 几种经典的网络服务器架构模型的分析与比较
  5. frac函数_20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子
  6. 基本套接字TCP和UDP
  7. DDD:架构思想的旧瓶新酒?阿里等大厂却对它趋之若鹜!
  8. 《看聊天记录都学不会C语言?太菜了吧》(5)打了一把游戏我学会了一个编程知识?
  9. Apache安装、配置、卸载
  10. oracle adg维护,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...
  11. 加强大数据应用助推 交通信息服务产业化进程
  12. 泰山游记:为何爬山后大腿前部很酸?
  13. Ubuntu 16.04 LTS Final Beta about JAVA
  14. 聊天软件开发_3_数据库表设计
  15. 斯坦福大学公开课:iOS8开发 第一课:课务,iOS8概述学习笔记
  16. 普惠联接,让人类诗意地栖居在大地上
  17. 手机端rem布局详解(淘宝无限适配)
  18. 在ubuntu上显示 电脑 、垃圾桶、文件夹等图标
  19. android高级开发强化实战,高级Android开发强化实战[PDF][215.59MB]
  20. 程序员转正述职报告_程序员转正工作总结(4篇),转正工作总结

热门文章

  1. 启用不安全的HTTP方法解决方案
  2. iOS开发 贝塞尔曲线UIBezierPath(后记)
  3. 糖尿病(消渴)的中药简见简方(转载)
  4. Delphi 7下使用VT实现树型列表结合控件
  5. 各种Camera,总有一款适合你(二)
  6. iOS UIKit:UITableView
  7. sql语句添加删除外键
  8. PHP5.4.3,有些插件不是你想用就能用的
  9. 边缘提取算子检测比较
  10. mysql约束sex_MySQL笔记--约束