1703875498
1703875499
设备环境
1703875500
1703875501
Windows 7 SP1+、Windows 8、Windows 10或者Mac OS X 10.8+。
1703875502
1703875503
读者对象
1703875504
1703875505
本书适合想使用区块链和以太坊创建防篡改数据(和交易)应用的JavaScript开发人员阅读,也适合对密码学及其逻辑以及相关数据库感兴趣的人阅读。
1703875506
1703875507
下载实例代码
1703875508
1703875509
可以从http://www.packtpub.com下载本书的实例代码文件。如果您在其他地方购买了本书,可以访问http://www.hzbook.com注册并下载。
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
[
上一页 ]
[ :1.703875498e+09 ]
[
下一页 ]