1. 智能合约的概念
智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。
智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。
2. 智能合约的优点
与传统合同相比,智能合约有一些显著优点:
- 不需要中间人
- 费用低
- 代码就是规则
- 区块链网络中有多个备份,不用担心丢失
- 避免人工错误
- 无需信任,就可履行协议
- 匿名履行协议
3. 智能合约开发
3.1 支持智能合约的区块链
虽然以太坊(Ethereum)是最流行支持智能合约的区块链平台,但它并不是唯一支持智能合约的平台。
超级账本(Hyperledger) 是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。
另外,还有其他很多区块链平台支持智能合约,可以参考相关资料。
3.2 以太坊智能合约开发工具
通常,开发智能合约需要用到工具:
- Mist – 以太坊节点/钱包。
- Truffle 框架 – 流行的以太坊开发框架,内置了智能合约编译、链接、部署等功能。
- Metamask – Chrome插件方式的以太坊节点/钱包。
- Remix – Remix是一个基于web浏览器的智能合约开发环境(IDE)。
3.3 以太坊智能合约开发语言
目前主要的智能合约开发语言是 Solidity语言,是一种开发以太坊智能合约的静态高级语言,语法类似于JavaScript。
还有另外一些智能合约开发语言:
等等。
4. 智能合约开发环境搭建
4.1 准备工作
为了构建开发智能合约或者dApp,我们需要安装以下模块:
- Node 与 NPM
- Truffle 框架
- Ganache
- Metamask
- VScode 与 Solidity插件
4.2 Node 与 NPM
Truffle 框架依赖Node,需要使用npm安装。
首先需要安装node,npm会同时安装,下载node,按提示安装。
安装完后,可以验证一下node版本:
$ node -v
4.3 Truffle 框架
Truffle框架是流行的以太坊开发框架,内置了智能合约编译、链接、部署等功能。
使用npm安装Truffle框架:
$ npm install -g truffle
验证truffle安装:
$ truffle --version Truffle v5.0.35 - a development framework for Ethereum ...
4.4 Ganache
在实际的以太坊网络上测试、部署Dapp或智能合约,需要消耗Gas。Ganache可以在本地创建区块链网络来测试我们的程序。
可以从Truffle Framework网站下载Ganache来安装。它将创建一个本地区块链网络,给我们分配10个外部账号,每个帐户都有100个假的以太币。
4.5 Metamask
Metamask是一个Chrome插件形式的以太坊节点/钱包。
我们可以使用Metamask连接到本地区块链网络或实际的以太坊网络,并与我们的智能合约交互。
要安装Metamask,请在谷歌Chrome web store中搜索Metamask Chrome插件并安装。一旦安装,请确保打开启用按钮。安装后,你会在Chrome浏览器的右上角看到狐狸图标。
4.6 VS code 与 Solidity插件
推荐使用vs code编辑器编写solidity代码,vs code可以安装一下Solidity插件,以便支持语法高亮功能。