这里说的是以太坊开发基础知识。其实呢!开发以太坊,你还需要知道比特币、虚拟货币等基础、原理等等。这样才能更好的开发以太坊智能合约。
一些概念
什么是以太坊
可以这么理解。做过开发的同学都知道,目前大部分程序员所做的开发都是基于框架或者平台的。这么做的好处是什么呢?基于平台或者框架开发效率高、程序健壮性好(框架经过很多验证了)、开发门槛低。。。
其实呢,以太坊就是一个平台,有了这个平台之后,你就可以基于这个平台,开发很多区块链的程序。
什么是智能合约
智能合约可以理解为:
简单来说:一个在区块链平台部署的,在特定条件下触发并执行的特定的计算机代码程序。
用区块链术语来说:是运行在区块链平台上的由外部账号发送消息而触发的一些交易(例如:转账) 的计算机代码。
Solidity
开发智能合约的编程语言之一。
Browser-Solidity是一个基于浏览器的Solidity IDE。
以太坊虚拟机
类比java,Java源代码最终被编译成了class字节码。运行在JVM迅疾上。智能合约本质上最后被编译为了以太坊字节码,运行在evm(以太坊虚拟机)上。
以太坊账户
- 外部账户
这类账户一般是人们使用的地址。没有和任何代码有关联。 - 合约账户
这类账户是专门用来部署合约的。
账户关系
外部账户通过自己的私钥签名消息,可以把消息发送给外部账户或者合约账户。
外部账户之间的消息互发交易是价值转移过程。
外部交易给合约账户发送消息交易,会触发智能合约执行。
合约部署
外部账户把合约代码通过消息交易的形式部署到以太坊网络。旷工去挖矿(处理这个交易),之后才成功。
DApp
全称应该是:Decentralized App。
区块链是存储不可变交易的数据库,通过,刚才我们知道智能合约根据外部账户发送的交易执行相关合约代码的程序,这段程序最终操作的是区块链数据库。
DAPP就是集合了智能合约以及一些GUI页面的方便用户和区块链数据库打交道的一个app。
类比:
区块链比作mysql是数据库
solidity比作sql,操作数控的语句
智能合约比作php或者java写的使用sql语句访问时间的程序
WEB应用程序是集合了智能合约以及其他功能的方便用户操作区块链数据库的APP.