1703875510
1703875511
1703875512
1703875513
1703875515
区块链项目开发指南 第1章 去中心化应用
1703875516
1703875517
我们以前用过的所有互联网应用几乎都是中心化的,即每个应用的服务端由一个特定企业或个人所有。长期以来,开发人员创建中心化应用,用户使用中心化应用。但是中心化应用存在一些问题,包括不透明、有单点故障、不能防止网络审查等,导致几乎不可能创建某些特定类型的应用。为了解决这些问题,一项新的技术诞生了,它创建以网络为基础的去中心化应用(DApp)。在本章中,我们将学习去中心化应用。
1703875518
1703875519
在本章中,我们将讲解以下内容:
1703875520
1703875521
·什么是DApp。
1703875522
1703875523
·去中心化、中心化和分布式应用之间的区别。
1703875524
1703875525
·中心化和去中心化应用的优点和缺点。
1703875526
1703875527
·概述一些最热门的DApp所使用的数据结构、算法和协议。
1703875528
1703875529
·学习一些创建在其他DApp之上的流行DApp。
1703875530
1703875531
1703875532
1703875533
1703875535
区块链项目开发指南 1.1 什么是DApp
1703875536
1703875537
DApp是一种互联网应用,其后端在去中心化的点对点网络上运行,且其源代码是开源的。网络中不存在能够完全控制DApp的节点。
1703875538
1703875539
根据DApp的功能不同,使用不同的数据结构来存储应用数据。例如,比特币DApp使用区块链数据结构。
1703875540
1703875541
这些对等节点(peer)可以是网络中的任何计算节点,因此,发现和防止节点对应用数据进行非法篡改或者与其他人分享错误信息是一个重要挑战,所以需要对等节点之间有一些关于某个节点发布的数据是否正确的共识。在DApp中,没有一个中心服务器来协调节点,或者决定什么是对、什么是错,因此应对这个挑战确实不容易。一致性协议(concensus protocol)可用于解决这个问题。不同的DApp通常使用不同数据结构类型的共识协议,例如比特币使用工作量证明协议(PoW)来达成共识。
1703875542
1703875543
为了让用户()使用DApp,每一个DApp都需要一个客户端(client)。使用DApp时,用户首先需要运行DApp中自己的节点服务端,然后将客户端连接至节点服务端。DApp的节点只提供应用程序编程接口(Application Programming Interface,API),并允许开发者社区使用API开发多种客户端。一些DApp开发人员会提供一个官方的客户端。DApp客户端应该是开源的,并可以被下载使用,否则整个去中心化的想法就失败了。
1703875544
1703875545
但是建立客户端架构比较麻烦,如果用户不是开发人员,就更麻烦。因此,客户端通常作为服务和/或节点形式出现,以便让使用DApp的过程更容易。
1703875546
1703875547
1703875548
什么是分布式应用?
1703875549
1703875550
分布式应用是指应用分布在多个服务端上,而非只有一个服务端。当应用数据和通信量变得巨大,且应用的停机时间难以承受时,分布式是必要的。在分布式应用中,数据在多个服务端中备份,以具有较高可用性。中心化应用可能是分布式的,也可能不是分布式的,但去中心化应用肯定是分布式的。例如Google、Facebook、Slack、DropBox等是分布式的,而简单的投资组合网站或者个人微博通常不是分布式的,除非通信量很大。
1703875551
1703875552
1703875553
1703875554
1703875556
区块链项目开发指南 1.1.1 去中心化应用的优点
1703875557
1703875558
中心化应用的一些优点如下:
1703875559
[
上一页 ]
[ :1.70387551e+09 ]
[
下一页 ]