1.什么是李嘉图合约
- 李嘉图合约是一种特殊的结构化文本,主要用作交易中明确双方的意图,是做交易之前查看的要遵循的规则
- 以后正式合法的合约都要有李嘉图合约
- EOS白皮书中所提到的,所有的交易,都会是基于对宪法同意的基础之上进行的,这就意味着,EOS启动后,用户所有的链上行为,都会涉及到李嘉图合约
- 简单说,李嘉图合约是一个文件,定义了通过互联网发行的某种类型的价值,标识发行人和签署人,将发行人认为合适的期限和条款加入其中,从而让该文件成为合约
2.李嘉图合约可以解决什么问题
- 智能合约存在一个普遍问题:涉及到交易双方意图类型的问题时,仅靠代码本身,无法良好解决
- 对于一些概念的理解,类似现实世界之中的交易合同的约定,有时仅靠智能合约是无法做到的,这时,具有法律效应的文本合约,结合依赖区块链技术开发的智能合约,会带来更多的准确性
3.李嘉图合约在哪
- EOS智能合约abi文件由5部分组成
{
"types":[...], //定义类型的别名
"structs":[...], //各个类型的数据结构
"actions":[...], //智能合约的action
"tables":[...], //数据结构体,表
"ricardian_clauses":[...] //李嘉图条款
}
4.Action
- 一个智能合约可以定义多个Action,每个Action代表一次单独的操作
- 映射到代码中,可以将Action理解成类中的函数,函数中定义了调用Action时需要执行的操作
- 智能合约与账户通过Action的方式进行通信,Action可以单独执行,也可以和其他Action一起作为一个整体执行
- 例如:账户小王执行了[还钱]Action,[还钱]Action通知账户工商银行,执行[转账]Action,[转账]Action又通知账户[小李],执行[短信通知]Action
5.Transaction
- 是一个或多个Action的集合,一个Transaction中的Action要么全部成功,要么全部失败,与数据库事务很像
- 前面例子中,[还钱]Action、[转账]Action、[短信通知]Action可以被包含在一个事务中