分布式应用dApp

#区块链 #教程

dApp

app就是我们平时经常提到的app应用的意思。而前面的那个d字母。是表示分布式的意思。因此dApp可以认为是分布式应用。按其定义来说的话,其实只要是运行在分布式系统上,不会因为单个节点的损坏或停止工作导致程序无法运行的分布式应用都可以被称之为dApp。不过,鉴于分布式应用是在区块链的基础上提出的,因此很多时候大家会默认为分布式应用一定是运行在区块链上的。

关于分布式应用这个概念,还非常的新。因此对于它的具体定义,还有不少的争论。现在这里使用主流的观点来看待分布式应用。

深入细节前,我先提一个可能很多人都会误用的概念。分布式应用dApp。在一些场合会被写作ÐApp,即在D这个字母当中加了一个横杠。通常,这除了想表明这个分布式应用是在区块链上的特殊应用之外,它还暗含了这个应用是运行在以太坊这个区块链上的含义。因为这种用法,其定义就来自于以太坊,D加一个横杠的这个字母来自于古英语,其读作/ɛð/。写作字母时,就为eth,正好和以太坊的前三个字母eth完全吻合。因此如果一个分布式应用并非运行在以太坊系统上时。应避免使用带横杠的ÐApp。

基本构成 

一个典型的分布式应用包含界面展现和智能合约两个部分。

相比传统的app应用程序来说。将传统的应用中的服务器部分换成了区块链上的智能合约。另外,他与传统的应用程序还有一些其他的区别。

第一是,数据是分布式存储的。可以防止中心化和单点故障。

第二是,数据是不可篡改的。这样才能确保我们使用的是一种稳定的。确定性的应用。是不会受人操控的。

开发

在开发基于区块链的分布式应用时,应该考虑以下两点。

第一,模块化设计。由于区块链的不可篡改性。分布式应用一旦上线。除非开发者预留后门,否则是不可能修改的。而预留后门的应用,在用户知晓的情况也是不敢用的。因此为了保证系统的可扩展性。及当前上线模块的稳定性。应考虑分模块设计。

第二,商业模式。传统的应用可以由开发商付费。让用户体验。最终让一部分用户付费来支撑整个业务。这主要也是因为,开发商提供体验需要付出的代价并不高。而一个具备持续运营能力的分布式应用。很有可能只能是用户付费的。否则开发商就很容易受到女巫攻击。即黑客节点模仿无上限的虚拟用户体验业务。而用户的付费将会支付给,运行程序的区块链节点,也就是通常意义上的矿工。

基础区块链的选择 

作为分布式应用的基础区块链的选择,通常情况下有以下几种。

第一、选择知名的基础公链。当然需要确保这条公链是能够支持你的分布式应用开发的。

第二、使用定制化的区块链。可以从零开始,也可以在现有的开源系统上进行进一步定制,部署时可以是采用公链,也可以是联盟链的形式。

第三、使用侧链。将应用的高频交易数据都保存在侧链中,交易结束后同时回到公链。

参考资料