如何在比特元上开发一个DAPP?

论坛 期权论坛 期权     
比特元公链   2020-3-28 03:06   1284   0


公链的爆发依赖于链上生态应用的建设与繁荣,通过链上应用将直接链接用户与区块链,最直接体现区块链公链价值。


链上应用就是我们通常所说的DAPP(Decentralize application)去中心化应用。



那什么样的应用,能被称之为DAPP呢?其实在计算机新生之后有限的几十年里,App(应用程序)本身就经历好几代演变与发展。






初代,单机应用


一个应用程序的所有元素都存放在一个独立的例程内部,在无需网络情况下也可独立执行。举个很简单的例子,小伙伴小时候玩过的插卡红白机如超级玛丽、魂斗罗就是经典的单机应用程序。






交互,网络应用


随着互联网的发展,应用程序可以通过客户端 - 服务器的模式,进行协同交互,应用体验和程序能力爆发式提高。代表应用如CS,红色警戒这类传统的网络游戏






稳定,分散应用


互联网进一步发展,网民用户也呈指数级增长,需要保证App在较高服务的同时,满足程序本身的稳定性、安全性。此时分散应用程序发展起来,应用程序的组成元素不再依赖单一节点而是分散到N个节点,这样即使在少数节点挂掉的情况下也不影响App的正常使用;如微信,淘宝等国民级应用。






共享,P2P应用


基于P2P网络构建运行的应用,App的组成分散到N个节点,节点与节点之间直接通信,数据存储、业务执行由各个节点协作执行,目前常见的有BitTorrent下载,区块链应用等模式。






应用类型的优劣特点对比:






DApp的定义


透过App的发展历程,我们可以知道DApp就是P2P应用的一种,其本质就是基于区块链网络的“智能合约”,只需要在其外层包装一层接口,就可以让用户通过客户端使用。


传统App组成可以简单理解为:
App= Frontend + Server,前端界面+中心化网络服务


那么DApp则可以简单理解为:
DApp = Frontend + Contracts,前端界面+区块链智能合约


传统App的Server可以是单节点/分布式/云中的服务节点,它的特点是集中控制,由特定的一个或多个公司/组织/个人所有,属于集权模式,它的所有者可以控制应用的整个逻辑,所以被称为“中心化应用”。


而DApp中的Contracts(智能合约)则是部署在区块链网络中的程序逻辑,它运行在区块链网络中的所有节点内,各节点逻辑完全相同,而且节点所有者可以是任何人,一旦合约部署完成,它的行为不受任何特定的人控制,所以被称为“去中心化应用”。【想知道智能合约更多详情点击蓝字跳转】


[h1]在比特元如何实现一个DApp 设计和开发[/h1]

[h1]一个典型的DApp组成如下:[/h1]





前端:
用户端,可以是手机端App,也可以是网页,甚至可以是命令行,一般是直连区块链节点的RPC服务接口。


服务端(可选):
类似中心化应用的服务节点,这里主要是封装DApp自己的服务接口,下层对接区块链,上层对接用户端,为了更好的用户体验,也可能会做一些数据状态缓存。


区块链端:
常规区块链节点,对前端或服务端提供区块链的操作接口服务,如发送交易、调用合约、查询结果等动作。


而一个常规的DApp开发流程如下图所示:


流程主要包含前端和合约两部分内容的开发,合约最终是部署在区块链网络上的,DApp的执行通过链上虚拟机执行,结果链上存证,前端为用户交互界面。


不通过用户前端,使用区块链的命令行接口依然可以调用合约,实现DApp的完整逻辑。但是用户门槛太高,所以,一般正式的DApp都会提供前端供用户交互。


比特元DApp开放的扩展性


比特元DApp开发兼容多种开发语言EVM 兼容以太坊智能合约、WASM兼容EOS智能合约、JSVM兼容Javascript智能合约,其他公链DApp可无碍移植到比特元区块链网络运行。



点击 “阅读原文” 查看更多比特元技术文档
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:2
帖子:4
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP