1703875756
区块链项目开发指南 1.8.3 超级账本项目
1703875757
1703875758
超级账本(Hyperledger)项目致力于开发创建授权的DApp技术。Hyperledger fabric(或称simply fabric)是Hyperledger项目的一个实现。其他Hyperledger实现还有Intel Sawtooth和R3 Corda等。
1703875759
1703875760
fabric是一个去中心化的授权平台,它允许在其上运行授权的DApp(叫作chaincode,账链代码)。用户需要部署自己的fabric实例,然后在其上部署授权的DApp。网络中的每一个节点都运行一个fabric实例。fabric是即插即用系统,可以方便地即插即用多种共识协议和功能。
1703875761
1703875762
Hyperledger使用区块链数据结构。以Hyperledger为基础的区块链目前可以选择没有共识协议(即NoOps协议),或者使用实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)共识协议。它有一个特殊节点叫作证书颁发机构,该节点用于控制谁能加入网络和它们能做什么。
1703875763
1703875764
1703875765
1703875766
1703875768
区块链项目开发指南 1.8.4 IPFS
1703875769
1703875770
星际文件存储系统(InterPlanetary File System,IPFS)是一个去中心化的文件系统。IPFS使用分布式哈希表(Distributed Hash Table,DHT)和Merkle有向无环图(Directed Acyclic Graph,DAG)数据结构。它使用类似于BitTorrent(比特流)的协议来决定如何在网络中移动数据。IPFS的一个高级功能是它支持文件版本管理。为了实现文件版本管理,它使用了类似于Git的数据结构。
1703875771
1703875772
尽管被称为去中心化的文件系统,IPFS并不遵循文件系统的主要属性,即在文件系统中,所存储的内容会一直保留到被删除之前。IPFS的工作原理不同——每一个节点并不存储全部文件,存储的是需要的文件。如果一个文件不那么受欢迎,许多节点就没有这个文件,那么该文件很有可能从网络中消失。因此,许多人更喜欢把IPFS称为去中心化的、点对点的文件共享应用。或者可以把IPFS当作完全去中心化的BitTorrent,也就是说,它没有追踪器,但有一些高级功能。
1703875773
1703875774
1.工作原理
1703875775
1703875776
当在IPFS中存储一个文件时,它被分成很多小于256KB的数据块(chunk),并生成每个数据块的哈希。网络中的节点在一个哈希表中存储它们需要的IPFS文件及其哈希。
1703875777
1703875778
IPFS文件有4种类型:blob、list、tree和commit。blob代表一个实际存储在IPFS中的文件的数据块。list代表完整的文件,因为它包含blob列表和其他列表。由于列表可以包含其他列表,因此它帮助网络进行数据压缩。tree(树)代表目录,因为它包含blob列表、列表、其他树和commit。commit文件代表其他文件的版本历史中的快照。由于list、tree和commit与其他IPFS文件有连接,于是形成了一个Merkle DAG。
1703875779
1703875780
所以,用户如果想要从网络中下载文件时,只需要IPFS列表文件的哈希。如果想下载目录,则只需要IPFS树文件的哈希。
1703875781
1703875782
因为每个文件都由一个哈希进行标识,所以文件名不容易记住。如果更新文件,就需要与想下载该文件的所有人分享新的哈希。为了解决这个问题,IPFS使用IPNS功能,允许用自行认证的名字或者人性化的名字指向IPFS文件。
1703875783
1703875784
2.Filecoin
1703875785
1703875786
阻碍IPFS成为去中心化文件系统的主要原因是节点只存储了它们需要的文件。Filecoin(文档币)是一个类似于IPFS的去中心化文件系统,其中有内部货币激励节点存储文件,由此提高文件可用性,并使其更像一个文件系统。
1703875787
1703875788
网络中的节点通过赚取文档币来租用磁盘空间,在存储/检索文件时,需要花费文档币。
1703875789
1703875790
与IPFS技术一样,Filecoin使用区块链数据结构和数据可检索证明(Proof-of-Retrievability,PoR)共识协议。
1703875791
1703875792
在写本书之时,Filecoin仍在开发阶段,因此许多事情尚不明确。
1703875793
1703875794
1703875795
1703875796
1703875798
区块链项目开发指南 1.8.5 Namecoin
1703875799
1703875800
Namecoin是一个去中心化的键-值数据库。它也有内部货币,叫作域名币(Namecoin)。Namecoin使用区块链数据结构和工作量证明共识协议。
1703875801
1703875802
在Namecoin中,可以存储数据的键-值对。为了注册键-值对,需要花费域名币。注册之后,需要每35999个区块更新一次,否则与密钥相关的数值将失效。更新也需要花费域名币。不需要更新密钥,也就是说,在注册之后不需要花费任何域名币来存储密钥。
1703875803
1703875804
Namecoin有一个命名空间(namespace)功能,允许用户组织不同种类的密钥。任何人都可以创建命名空间,或者使用现有命名空间组织密钥。
[
上一页 ]
[ :1.703875755e+09 ]
[
下一页 ]