IPFS 原理与实践 (27):IPFS 底层基础 2.4.2

阅读数:30 2019 年 12 月 21 日 18:57

IPFS原理与实践(27):IPFS底层基础 2.4.2

(自验证文件路径)

内容简介
这是一部从实现原理和工程实践两个维度深入讲解 IPFS 和 Filecoin 的著作。作者是中文社区内非常有影响力的三位 IPFS/Filecoin 布道者,本书得到了 IPFS&FileCoin 创始人以及 IPFS 官方(协议实验室)的高度认可和强烈推荐。
为 * 大化满足读者需求,书中不仅介绍 IPFS 技术细节、区块链相关知识、Filecoin 项目技术细节,还加入了大量作者们在开发中的经验和技巧。为了适配当下及未来较长时间内读者的实际使用环境,书中所有案例都是基于生态链中较新的软件开发工具和前沿的软件开发技术编写的。
本书分为三大部分:
第一部分 基础篇(第 1 章)
全面介绍了 IPFS 的源起,概念、优势和应用领域,旨在帮助读者了解 IPFS 相关基础背景知识,从宏观层面认识 IPFS 技术所具有的创新性。
第二部分 原理篇(第 2~5 章)
旨在帮助读者深入理解 IPFS 和 Filecoin 的运行原理与工作机制。首先深入分析了分布式哈希表、块交换协议、版本控制、自验证文件系统 Merkle DAG 和 Merkle Tree 等底层基础知识,然后对 IPFS 协议栈中包含的 7 层子协议了进行了剖析,接着解析了 Multi-Format、libp2p、IPLD 三大 IPFS 核心模块,最后用了一整章的篇幅详细剖析了 Filecoin 项目。
第三部分 实战篇(第 6~8 章)
以工程化的方式,从基础至进阶,介绍了 IPFS 技术的实际使用,包括安装、配置、交互、入网、API、内容发布、数据保存、私网搭建等内容,之后通过两个不同风格的实际项目案例向读者展示了基于不同语言所实现的 IPFS 协议栈的使用方法。

自验证文件系统的一个重要的特性,就是在不依赖任何外部信息的条件下,利用加解密来控制权限。这是因为,如果 SFS 使用本地配置文件,那么显然这与全局文件系统的设计相悖;如果使用一个中心化服务器来辅助连接,用户可能产生不信任。那么,如何在不依赖外部信息的情况下,来安全地获取文件数据呢?SFS 提出了一种新的方式,即通过可以自我证明身份的路径名实现。

SFS 路径中包含了构成与指定服务器构建连接的需要的全部信息,例如网络地址和公钥。SFS 文件路径包含 3 部分:

(1)服务器位置

告知 SFS 客户端文件系统服务器的地址,它可以是 IP 地址或者 DNS 主机名。

(2)HostID

告知 SFS 如何与服务器构建安全的连接通道。为了确保连接的安全性,每个 SFS 客户端都有一个公钥,而 Host ID 通常设置为主机名与公钥的哈希。通常情况下,SFS 会按照 SHA-1 函数计算。

复制代码
HostID = SHA-1 (“HostInfo”, Location, PublicKey, “HostInfo”, Location, PublicKey)

使用 SHA-1 主要考虑了计算的简易性,以及一个能接受的安全等级。SHA-1 的输出是固定的 20 字节,它比公钥短得多。同时 SHA-1 能为 SFS 提供足够的密码学保护,找到一对合法的服务器位置与公钥对来满足要求,它的构造难度非常大。

(3)在远程服务器上文件的地址

前面两个信息是为了找到目标服务器并构建安全连接,最后只需要提供文件的位置、定位需求的文件即可。整个自验证文件路径的形式如下:

复制代码
Location │ HostID │ path
---------------------------------------------------------------------
/sfs/sfs.lcs.mit.edu:│vefvsv5wd4hz9isc3rb2x648ish742h│/pub/links/sfscvs

即给定一个 IP 地址或域名作为位置,给定一个公钥 / 私钥对,确定相应的 Host ID,运行 SFS 服务器软件,任何一个服务器都能通过客户端将自己加入 SFS 中,而无须进行任何的注册过程。

IPFS原理与实践(27):IPFS底层基础 2.4.2

购书地址 https://item.jd.com/12665074.html?dist=jd

评论

发布