深度学习
DApp是一种互联网应用,其后端在去中心化的点对点网络上运行,且其源代码是开源的。网络中不存在能够完全控制DApp的节点。
根据DApp的功能不同,使用不同的数据结构来存储应用数据。例如,比特币DApp使用区块链数据结构。
这些对等节点(peer)可以是网络中的任何计算节点,因此,发现和防止节点对应用数据进行非法篡改或者与其他人分享 错误信息是一个重要挑战,所以需要对等节点之间有一些关于某个节点发布的数据是否正确的共识。在DApp中,没有一个中心服务器来协调节点,或者决定什么 是对、什么是错,因此应对这个挑战确实不容易。一致性协议(concensus protocol)可用于解决这个问题。不同的DApp通常使用不同数据结构类型的共识协议,例如比特币使用工作量证明协议(PoW)来达成共识。
为了让用户()使用DApp,每一个DApp都需要一个客户端(client)。使用DApp时,用户首先需要运行 DApp中自己的节点服务端,然后将客户端连接至节点服务端。DApp的节点只提供应用程序编程接口(Application Programming Interface,API),并允许开发者社区使用API开发多种客户端。一些DApp开发人员会提供一个官方的客户端。DApp客户端应该是开源的, 并可以被下载使用,否则整个去中心化的想法就失败了。
但是建立客户端架构比较麻烦,如果用户不是开发人员,就更麻烦。因此,客户端通常作为服务和/或节点形式出现,以便让使用DApp的过程更容易。
什么是分布式应用?
分布式应用是指应用分布在多个服务端上,而非只有一个服务端。当应用数据和通信量变得巨大,且应用的停机时间难以承受 时,分布式是必要的。在分布式应用中,数据在多个服务端中备份,以具有较高可用性。中心化应用可能是分布式的,也可能不是分布式的,但去中心化应用肯定是 分布式的。例如Google、Facebook、Slack、DropBox等是分布式的,而简单的投资组合网站或者个人微博通常不是分布式的,除非通信 量很大。
1.1.1 去中心化应用的优点
中心化应用的一些优点如下:
·DApp能容错,没有单点故障,因为它们默认是分布式的。
·防止某单一机构的干扰。因为没有一个中心机构,任何第三方机构无法向中心机构施压逼迫其删除一些内容。甚至没有单一 机构能关闭应用的域名或者IP地址,因为DApp不是通过一个特定的IP地址或者域名访问的。或许某些机构可以通过IP地址追踪网络中的单个节点并关闭 它,但是如果网络很庞大,则几乎不可能关闭应用。
·用户容易相信该应用。因为它不是由某个通过欺骗用户来牟利的机构所控制的。
1.1.2 去中心化应用的缺点
显然,每个系统都不是完美的。去中心化应用的一些缺点如下:
·修改bug或者更新DApp很困难,因为网络中的每一个节点都需要更新其节点软件。
·一些应用要求验证用户身份(即KYC),却没有中心化的机构来验证用户身份,开发应用时会遇到问题。
·创建去中心化应用比较困难,因为它们应用复杂的协议达成共识,且必须从最开始就自行创建并扩大规模。所以我们不能仅仅实现一个想法,然后不断添加功能,使其规模扩大。
·应用通常独立于第三方API,以获取或者存储数据。DApp不能依赖中心化应用API,但是可以依赖其他DApp。因为目前DApp的生态圈还不太大,所以创建起来比较困难。尽管DApp理论上可以依赖其他DApp,但在实践中紧密融合DApp仍比较困难。
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=613
微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试
var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!
评论专区