打字猴:1.703875534e+09
1703875534 区块链项目开发指南 [:1703875247]
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
1703875555 区块链项目开发指南 [:1703875248]
1703875556 区块链项目开发指南 1.1.1 去中心化应用的优点
1703875557
1703875558 中心化应用的一些优点如下:
1703875559
1703875560 ·DApp能容错,没有单点故障,因为它们默认是分布式的。
1703875561
1703875562 ·防止某单一机构的干扰。因为没有一个中心机构,任何第三方机构无法向中心机构施压逼迫其删除一些内容。甚至没有单一机构能关闭应用的域名或者IP地址,因为DApp不是通过一个特定的IP地址或者域名访问的。或许某些机构可以通过IP地址追踪网络中的单个节点并关闭它,但是如果网络很庞大,则几乎不可能关闭应用。
1703875563
1703875564 ·用户容易相信该应用。因为它不是由某个通过欺骗用户来牟利的机构所控制的。
1703875565
1703875566
1703875567
1703875568
1703875569 区块链项目开发指南 [:1703875249]
1703875570 区块链项目开发指南 1.1.2 去中心化应用的缺点
1703875571
1703875572 显然,每个系统都不是完美的。去中心化应用的一些缺点如下:
1703875573
1703875574 ·修改bug或者更新DApp很困难,因为网络中的每一个节点都需要更新其节点软件。
1703875575
1703875576 ·一些应用要求验证用户身份(即KYC),却没有中心化的机构来验证用户身份,开发应用时会遇到问题。
1703875577
1703875578 ·创建去中心化应用比较困难,因为它们应用复杂的协议达成共识,且必须从最开始就自行创建并扩大规模。所以我们不能仅仅实现一个想法,然后不断添加功能,使其规模扩大。
1703875579
1703875580 ·应用通常独立于第三方API,以获取或者存储数据。DApp不能依赖中心化应用API,但是可以依赖其他DApp。因为目前DApp的生态圈还不太大,所以创建起来比较困难。尽管DApp理论上可以依赖其他DApp,但在实践中紧密融合DApp仍比较困难。
1703875581
1703875582
1703875583
[ 上一页 ]  [ :1.703875534e+09 ]  [ 下一页 ]