EOSIO开发(八)- 智能合约基础概念

本文介绍了EOSIO智能合约的基础概念,包括Action、Transaction以及Inline和Deferred两种交互模式。智能合约是一种在区块链上自动执行和验证的协议,EOSIO的合约可以通过Action进行交互,Transaction则是一组Action的集合。文章还详细解释了Inline实时交互和Deferred延时交互的工作原理。
摘要由CSDN通过智能技术生成

什么是智能合约

智能合约的概念早在上世纪90年代就已经被提出来,自从以太坊将其发扬光大以后,智能合约在各个区块链项目,尤其是公链中得到了广泛应用,EOS也不例外。

用一句话描述智能合约:

智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

例如小张和小王掷骰子,约定谁的点数大,谁就可以从对方那里赢得一块钱。

这个过程可以完全用智能合约来控制。

  1. 小张先掷,合约记录点数。
  2. 小王后掷,合约记录点数。
  3. 合约判断点数大小,并从小点数账户扣除一块钱给大点数账户。

整个过程都由智能合约自动执行,不需要第三方参与,并且一旦结果确认了就不可反悔。

在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代表一次单独的操作,例如:转账、掷

1、玩过EOS的都知道,EOS本身更新迭代非常之快,所以有些知识点可能与最新版有所出入,希望小伙伴理解!此文档适用于EOS-v1.0.5以上版本和v1.1.x版本,目前的v1.2.x可能会有极少部分出入,比如eosiocpp工具看更新说明再不用安装的状态下就能使用,目前还未测试。有兴趣的小伙伴可以留言交流。 2、当前文档目录结构介绍: #思考研究问题 1、如何保证EOS中发布的智能合约不被随意篡改? #玩转EOS智能合约代码 #玩转客户端cleos 1、先玩转与智能合约相关的操作 #使用eosiocpp工具编译智能合约生成abi文件和wast文件 #编译合约(无法通过) #安装build/programs下工具 #重新编译合约 #部署合约到账户 #购买RAM #测试调用部署的合约 #更新\升级已经部署过的智能合约(相对空的合约) #更新添加新的函数接口(action)合约 #有关require_auth的合约测试 2、玩转智能合约与数据库相关操作 #参考资料 #持久化API (Multi-Index) 1、一般来讲,对数据库的操作无外乎增删改查 2、表结构示例详解 3、Multi_index定义,建立数据表 4、实例化multi_index 5、操作数据,增删改查 #玩转table表 1、Table表producers 2、Table表global 3、Table表voters 4、Table表rammarket (获取RAM实时价格) 5、Table表refunds (查看账户退款信息) 6、Table表namebids (罗列参与竞拍的账户信息) 3、启动nodeos节点出现脏数据 4、查看账户抵押资产,抵押token,赎回token #查看账户余额(可用余额) #查看SYS货币信息,eosio.token是经营货币的合约 #查看公钥对应账户 #查看子账户(控制账户) #查看账户信息 #查看账户抵押信息 #钱不够那就转账,随便耍 #get transaction无结果了解一下 #卖出RAM(卖给系统账户eosio.ram),字节bytes #抵押token获取CPU和net资源 #赎回抵押token,默认三天后到账,执行后可查看账户状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值