启迪云-高级开发工程师 严刚
前言
2018年以来,区块链(blockchain)无疑是最火的科技之一,新闻媒体大量报道,宣称它将创造未来。我们该怎样参与?买几个币算不算呢?其实也算。不过,作为技术人,我们还可以更加深入一点,例如DAPP。
什么是DAPP
在了解"DAPP"之前,大家一定都知道APP。APP就是我们手机上经常用的程序,DAPP和APP有点类似,但是又有很大的差别。
DAPP(Decentralized Application) 即去中心化应用。也有人称之为分布式应用。将基于IOS和Android开发的APP放在区块链系统上,结合智能合约,就成了DAPP。
DAPP的特点:
DAPP是完全开源、自治,且没有一个实体控制者。
必须能够根据用户的反馈及技术要求进行升级,且应用升级必须由大部分用户达成共识之后,方可进行。
应用的数据加密后存储在公开的区块链上,所有对基础区块链技术的安全性、稳定性及持续性要求较高。
应用必须拥有Token机制。
DAPP的应用场景
可以把区块链看作是一个无人管理的分布式数据库,为了保证数据的可靠性,区块链也付出了代价。
一是效率,传统的区块链,数据写人至少需要等待十分钟;
二是能耗,新区块的生成需要矿工进行数亿次无意义的运算,非常消耗能源。
所以,DAPP的应用场景,其实非常有限。
不存在所有成员都信任的管理当局;
不要求实时写入数据;
挖矿的收益能弥补自身成本;
如果无法满足上述条件,则传统数据库是更好的解决方案。
图一:DAPP应用场景
以太猫
以太猫(CryptoKitties)是首次在以太坊推出的一款区块链游戏,也是一款典型的DAPP。在游戏中,玩家可以创建、照顾、购买、喂养并出售存储在以太坊区块链中的数码猫。以太猫本身具有虚拟货币的功能,每只猫都是“独特的、交易于区块链的不可变更物体”。
图二:以太猫
与传统游戏不同,没有任何中央管控,游戏不受营运公司影响。假设营运CryptoKitties的工作室关门大吉,玩家的虚拟小猫还是会活在以太坊上,这是区块链游戏与传统游戏最大的不同,也是区块链游戏最吸引人的地方和价值、魅力所在。
开发一个极简版以太狗
大家可能很好奇,以太猫是如何实现的呢?如果没有后端数据库,虚拟小猫该如何存取?如何保持一致性?
其实我也一样好奇,恰好,这里有一个完整的DAPP实例分享给大家(出自tuffle suite),我们暂且把它叫作“以太狗”吧。我会一步一步地操作,帮助理解DAPP中的相关概念与涉及的工具。
应用效果
Pete有一个宠物店,养了16只宠物狗狗,他想开发一个去中心化应用,让大家来领养宠物。
注意:后端没有数据库,也不存在一个大家都信任的管理当局,Pete只负责提供宠物狗,狗狗信息存储在公开的区块链上,大家通过智能合约领养,领养过程真实并可溯源。
图三:Pete的宠物狗店