前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发DAPP智能合约系统需要哪几点?以太坊智能合约系统开发

开发DAPP智能合约系统需要哪几点?以太坊智能合约系统开发

原创
作者头像
15660115610
修改2021-07-29 10:52:19
6570
修改2021-07-29 10:52:19
举报
文章被收录于专栏:农场游戏开发

DAPP智能合约系统开发

我们来看一下DAPP应该具备什么样的条件(来自于Oreilly《去中心化应用》):

1. 开源

2. 内部货币

3. 去中心化共识

4. 没有中心失效点

如果一个DAPP的逻辑是通过区块链上的智能合约实现的,那么1、3、4就实现了。因为能被区块链执行的智能合约一定是开源的且不可修改的,且逻辑是被所有参与者认可的。而且只要只要有一台矿机还在运行,这个程序就能一直跑下去。至于内部货币这个事情,如果是运行在以太坊的智能合约,一定需要ETH才能使系统运行,因此内部货币也一定存在。

如果我们用以太坊和智能合约来开发一个DAPP,那么应该顺着这个思路往下走。

我们的DAPP是BS还是CS,如果是CS模式即需要服务端主动推送消息的,以太坊不大适合这个模型,因为无论是DAPP如何频繁去取数据,也只能等每次记账时执行。

后端的数据如何存储问题,如果数据很大,应该考虑存储到IPFS这种区块链上,如果很小可以存在以太坊上。

数据来源的问题,如果有外部数据来源,需要选择一个预言机,或者自己实现一个。简单的话就是自己搭个全节点,通过RPC调用把外部数据送到链上。

前端展示不是什么问题,JS可以直接调用智能合约,返回什么显示什么即可。

以太坊不适合开发交互很频繁的程序,更像早期互联网,开发一些并发量不大的信息展示页面。

怎样实现智能合约?

  实现智能合约就需要“图灵完备”的计算机编程语言。“图灵完备”这个词大家似乎了解的不多,可以简单地理解为能把世间一切可以计算解决的问题都计算出来的,这样的一种虚拟机或者编程语言就叫图灵完备。

  举一个例子说明一下:比如两口做饭的锅,一口锅可以实现一切的烹饪方法煎、炒、蒸、炖、炸、汆、涮、卤等,而另外的一口锅则只能实现蒸和炖,其他的都不能实现,那么前者就是图灵完备的,后者则不是。

  智能合约之所以可以在以太坊上完美应用,就是因为以太坊在其区块链上提供了一种近乎图灵完备的计算环境。只要是编程语言能够实现的计算,其都能支持,这也为智能合约在更加广泛的环境中得以应用坚实了基础。

  DAPP开发只需要掌握以下三种能力就可以了。

  第一,能够正确理解区块链。理解区块链的本质、特点和商业价值,了解分布式、共识机制、密码学、P2P网络的基本概念,对区块链的商业价值和应用场景有一定的认知。

  第二,至少熟悉一种开发语言。比如Javascript、C++、Go、Python等。

  第三,至少熟悉一种区块链的智能合约开发。比如以太坊、超级账本、EOS等。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档