Golang打造下一代互联网-IPFS全解析

对比web,IPFS在存储上切分为Chunk可以去重,需要宽带资源少,可以保留多版本,去中心化更开放。详细介绍IPFS DESIGN (恒等式、网络、路由、交换、物体、文件夹、命名 )
展开查看详情

1.Golang打造下⼀一代互联⽹网 IPFS全解析

2.IPFS

3. IPFS和⽬目前WEB现状对⽐比 WEB IPFS 存储 存在⼤大量量重复内容 切分为Chunk可以去重 带宽 需要带宽资源多 需要带宽资源少 历史资源 很容易易丢失 可以保留留多版本 开放程度 中⼼心化,掌握在少数机构⼿手中 去中⼼心化,更更开放

4.• Distributed Hash Tables (S/ Kademlia DHT) • Block Exchanges (BitSwap) • Version Control Systems (git) • Self-Certified Filesystems (SFS)

5. IPFS DESIGN • Identities • Network • Routing • Exchange • Objects • Files • Naming

6. Identities 为了了应对⽹网络中的Sybil attack,IPFS的node在创建NodeID时,采 ⽤用了了S/Kademlia 论⽂文中提出的基于加密⼯工作量量的⽅方式增加创建 NodeID的难度,来增加攻击的成本

7. Network IPFS使⽤用了了多种技术来促使整个⽹网络⾼高效可靠通信,其中: • 传输层: IPFS可以使⽤用任何传输层协议,最好符合WebRTC DataChannels或者uTP。 • 可靠性: IPFS所依赖的底层⽹网络不不能保证的可靠性的话,便便使⽤用uTP或 者SCTP 来保证可靠性。 • 连通性: IPFS同样使⽤用ICE NAT遍历技术。 • 完整性: 提供使⽤用哈希校验和来检验消息的完整性。 • 确定性: 提供使⽤用发送者公钥的HMAC来核查消息的真实性。

8. Network IPFS可以使⽤用任何⽹网络,包括 overlay ⽹网络。 IPFS Peer Address 使⽤用 multiaddr 格式。

9. Route Kademlia DHT K Bucket

10. Route Kademlia DHT • log2(N)寻址性能,⼀一千万节点最多20跳就可以查到。 • Message⽐比较精简 • 安全,可以抵挡多种攻击,⽐比如拒绝服务攻击。 Coral DHT • 记录节点中保存的数据HASH,更更⾼高查询性能 • ⽀支持Region,优先就近查找。 S/Kademlia DHT • PoW⽣生成NodeID,消息需要私钥签名 • 在⼀一半恶意节点的⽹网络中保证85%的正确率

11. Exchange * BitSwap 交换 have_list 和 want_list 获取数据产⽣生债务 发送数据偿还债务 节点之间对账防⽌止恶意节点

12. Exchange 负债率公式 发送率 当节点的负债率超过已建⽴立信⽤用额度的两倍时,发送率迅速降低。

13.Exchange ⽹网络更更⾼高效 防⽌止⾃自私节点 防⽌止攻击

14.File System Merkle Tree

15.Merkle Tree

16. File System * IPLD (Merkel DAG) 1. 内容寻址: 所有的内容都通过它的multihash校验和唯⼀一标识,包括links。 2. 防⽌止篡改。 3. 重复删除: 所有的对象内容完全相同便便会只存储⼀一份。

17. File System Small Data < 256K

18.

19. Naming SFS⾃自命名⽅方案 1. IPFS中: NodeId = hash(node.PubKey) 2. 我们给每⼀一个⽤用户分配了了⼀一个可变的命名空间: `/ipns/<NodeId>` 3. ⼀一个⽤用户可以通过附上它的私钥签名发布⼀一个对象到这个路路径上, ⽐比如:`/ipns/XLF2ipQ4jD3UdeX5xp1KBgeHRhemUtaA8Vm/` 4. 当别的⽤用户检索这个对象时, 他们可以检查这个签名是否匹配公钥 和NodeId。这将验证⽤用户发布对象的真实性,获取可变状态的查 询。

20. Naming Inter Planetary Name Space(IPNS) 1. 域名访问 # this DNS TXT record ipfs.benet.ai. TXT "ipfs=XLF2ipQ4jD3U ..." # behaves as symlink ln -s /ipns/XLF2ipQ4jD3U /ipns/fs.benet.ai 2. Proquint可发⾳音⽅方案 /ipns/dahih-dolij-sozuk-vosah-luvar-fuluh 3. 短地址 /ipns/shorten.er/foobar

21.Q&A