什么是智能合约
智能合约的概念早在上世纪90年代就已经被提出来,自从以太坊将其发扬光大以后,智能合约在各个区块链项目,尤其是公链中得到了广泛应用,EOS也不例外。
用一句话描述智能合约:
智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
例如小张和小王掷骰子,约定谁的点数大,谁就可以从对方那里赢得一块钱。
这个过程可以完全用智能合约来控制。
- 小张先掷,合约记录点数。
- 小王后掷,合约记录点数。
- 合约判断点数大小,并从小点数账户扣除一块钱给大点数账户。
整个过程都由智能合约自动执行,不需要第三方参与,并且一旦结果确认了就不可反悔。
在EOS的合约样例代码中,已经实现了这个掷骰子的合约,有兴趣的同学可以先下载下来看看。
https://github.com/EOSIO/eos/tree/master/contracts/dice
需要掌握的背景知识
-
C++
虽然C++学起来很麻烦,但是没办法,谁让BM对C++这么青睐呢。好在开发EOSIO并不需要掌握所有的C++知识,因此我的建议是快速学习,够用就行。推荐两本书。一本是《C++语言导学》,让程序员在短时间内快速学习C++的核心知识点。另一本是《C++标准库》,可以拿来做参考书用。
-
Linux / Mac OS
EOSIO目前只能运行在Linux 或者Mac OS操作系统上。 -
命令行基础知识
EOSIO提供的一些工具需要通过命令行操作,比如前面文章中经常用到的cleos。
基础概念
Action
一个智能合约可以定义多个Action,每个Action代表一次单独的操作,例如:转账、掷