以太坊Dapp开发

名词:

  1. DApp:去中心化的应用程序。以太坊社区把基于智能合约的应用称为去中心化的应用程序 (Decentralized App)。如果我们把区块链理解为一个不可篡改的数据库,智能合约理解为和数据库打交道的程序,那就很容易理解 DApp 了,一个 DApp 不单单有智能合约(相当于应用的后台),比如还需要有一个友好的用户界面。
  2. 区块链可以分为:公有链、联盟链和私有链。
  3. 联盟链:本质仍然是一种私有链,只不过它要比小组织开发的私有链更大,但是却没有公有链这么大的规模,可以理解为它是介于公有链和私有链的一种区块链。
  4. 联盟链的特点:
  • 交易速度快:其节点少于公有链,而且只要当网络上 2/3 的节点达成共识,就可以完成交易,交易速度自然也就快很多。
  • 数据默认不会公开:联盟链上的信息并不是所有有访问条件的人就可以访问的,联盟链的数据只限于联盟里的机构及其用户才有权限进行访问。
  • 部分去中心化:联盟链某种程度上只属于联盟内部的所有成员所有,且很容易达成共识,因为其节点数毕竟是有限的。
  1. 联盟链项目
  • R3:由 40 多加银行参与的区块链联盟 R3,包括世界著名的银行(如摩根大通、高盛、瑞信、伯克莱、汇丰银行等),IT 巨头(如 IBM、微软)。
  • 超级账本(Hyperledger): 由 Linux 基金会在 2015 年 12 月主导发起该项目, 成员包括金融,银行,物联网,供应链,制造和科技行业的领头羊。
  1. Fabric 介绍

Fabric 是一个面向企业应用的区块链框架。

以太坊主要是公有链,其实对企业应用来说并不是特别合适,而且本身并没有权限控制功能,面向企业的,主要还是 HyperLedger Fabric,当然还有 R3 的 Corda。

  1. EVM

EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。Solidity 之于 EVM,就像之于跟 JVM 的关系一样。EVM是一个隔离的环境,外部无法接触到在 EVM 内部运行的代码。

而 EVM 运行在以太坊节点上,当我们把合约部署到以太坊网络上之后,合约就可以在以太坊网络中运行了。

  1. Gas

和云计算相似,占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)同样需要付出相应的费用。

以太坊上用 Gas 机制来计费,Gas 也可以认为是一个工作量单位,智能合约越复杂(计算步骤的数量和类型,占用的内存等),用来完成运行就需要越多 Gas。

  1. Testnet

以太网专用测试网络。我们可以很容易在该网络中获得免费的以太币,缺点是需要花很长时间初始化节点。

工具

  1. Truffle 是一个非常流行 DApp 开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码 - 编译 - 部署 - 测试 - 打包 DApp 这个流程。
  2. Geth 是一个以太坊客户端,也可以用来创建自己的以太币私有测试网络(通常也称为私有链)。我们可以用它来作为一个测试环境,来开发、调试和测试智能合约。
  3.  Remix -Solidity IDE  Remix是一个基于浏览器的 Solidity,就可以不用安装 Solidity。作用是将solidity编码转换成区块链中世纪执行的字节码,相当于编译器。
  4.  Ganache 用来模拟区块链环境,它在本地使用内存模拟的一个以太坊区块链环境,更方便快捷。进行合约开发时,可以在 Ganache 中测试通过后,再部署到 Geth 节点中去。
  5. truffle suite:类似Android studio。包含了truffle,Ganache以及drizzle(界面,相当于前端)
  6. 注意:可以用5也可以用2+3来开发,目前社区比较推荐5.

总结:

以太坊是图灵完备的平台,它让我们方便的使用区块链技术开发去中心化的应用,在这个应用中,使用 Solidity 来编写和区块链交互的智能合约,合约编写好后之后,我们需要用以太坊客户端用一个有余额的账户去部署及运行合约(使用 Truffle 框架可以更好的帮助我们做这些事情了)。为了开发方便,我们可以用 Geth 或 Ganache 来搭建一个测试网络。

发布了3 篇原创文章 · 获赞 1 · 访问量 198

猜你喜欢

转载自blog.csdn.net/George_Clancy/article/details/104758187