强烈建议直接去看EOSIO官网上的教程:https://developers.eos.io/

不要看我的??博文了,以下博文就是我当时随便写写的,现在也没有什么时间详细修改。如果有问题可以提问。

注:由于EOSIO仍在不断更新,所以以下内容的一些步骤可能会在将来某天失效。本开发手册编写时间是在2018.10至2018.11.可能会不断更新。

说一下EOSIO软件和EOS区块链的区别:就行Linux源码和实际跑在机器上Linux操作系统一样。

3 智能合约编写

搬运自EOSIO官网:
第一个智能合约

智能合约就看这个网站:
https://developers.eos.io/eosio-cpp/docs/introduction

要玩转EOS(写Dapp),你需要精通智能合约编写+cleos、nodeos等命令操作。其中第二部分是你对于eos整个体系的运转、实现的了解程度的体现。

总结一下我现在知道的关于智能合约编写的内容:

3.1 是什么

智能合约就是一个区块链意义下的程序,放在区块链节点上的代码(相当于中心化服务器中的程序)。这个程序可以说是一个cpp文件,带有一个类,这个类必须继承contract类。在这个类中写成员变量和成员函数。部分函数会是action。要成为一个action,需要定义宏,比如:

EOSIO_ABI( hello, (hi))

于是最后最后可以被调用。
这个宏起的作用是dispatching,但是也有其他dispatching的方法。
除此之外,这个类中还应该有table类的结构和相关代码用于数据持久化技术。

3.2 怎么用

智能合约写好以后,首先需要编译,使用命令:

eosio-cpp -o hello.wasm hello.cpp –abigen

就可以编译该文件为abi文件+wasm文件。其中abi文件是类Json的传递数据结构、控制信息的文件。但是有的时候abi文件会出错,所以需要手动改。Abi文件十分重要,从智能合约最后一定要写ABI的宏就知道,abi文件有点类似于血管,流通在整个智能合约体系中。
成功得到abi和wasm文件后,就可以部署智能合约了:

cleos set contract hello CONTRACTS_DIR/hello -p hello@active

你必须要把合约和一个account绑定。所以通常你会为每个智能合约创建一个账号。
最后,当合约部署完毕,你就可以使用它了。比如:

cleos push action hello hi '["bob"]' -p bob@active

3.3 数据存储

EOSIO好像不是用数据库来存储数据的,而是用自己创建一个结构体,并且自定义一些函数来完成数据的update /insert等操作,这种数据结构(Schema)成为multi-index(说实话只要只有多属性的数据肯定是多索引的吧…)。这或许是因为eos体系中的账户信息等都是存在内存中的原因吧。

3.4 关于EOS的设置:主要是针对插件–plugin

config.ini的路径前面说过了:

cd ~/Library/Application*Support/eosio/nodeos/config

EOS区块链技术开发(二)智能合约相关推荐

  1. EOS区块链技术开发(〇)起源

    EOS区块链技术开发(〇)起源 1 Why 1.1 EOS区块链 1.2 CSDN 2 How 3 What 参考资料 1 Why 1.1 EOS区块链 为什么选择EOS呢?自然是因为性能.ETH的性 ...

  2. EOS区块链技术开发(一)环境搭建

    强烈建议直接去看EOSIO官网上的教程:https://developers.eos.io/ 不要看我的??博文了,以下博文就是我当时随便写写的,现在也没有什么时间详细修改.如果有问题可以提问. 注: ...

  3. 区块链技术必杀技之——智能合约

    区块链技术智能合约 1.1 什么是智能合约 虽然在法律范畴上来说,智能合约是否是一个真正意义上的合约还有待研究确认,但在计算机科学领域,智能合约是指一种计算机协议,这类协议一旦制定和部署就能实现自我执 ...

  4. 区块链应用开发(智能合约的开发和WeBASE合约IDE的使用)

    文章目录 四.智能合约的开发和WeBASE合约IDE的使用 一.实验概述 二.实验目标 三.实验环境及建议 四.实验步骤 4.1 启动Webase 4.2 智能合约开发 4.2.1 合约功能设计 4. ...

  5. 【区块链技术开发】ganache-cli指令与Windows10桌面版的ganache区别

    专栏:[区块链技术开发] 前期文章: [区块链技术开发]智能合约与图像存储在外部存储器IPFS(InterPlanetary File System) [区块链技术开发]十个比较流行的以太坊智能合约开 ...

  6. 【区块链技术开发】剖析区块链Ganache模拟器工具及其智能合约部署区块链的查询方式

    专栏:[区块链技术开发] 前期文章: [区块链技术开发]基于Web3.js以太坊网络上的智能合约的交互及其应用 [区块链技术开发]OpenZeppelin智能合约库:提高智能合约的安全性和可靠性,加速 ...

  7. 【区块链技术开发】 Solidity使用Truffle Box工具实现预构建模板、自动化部署、创建智能合约示例代码

    专栏:区块链技术开发 目录 1.介绍Truffle Box 2.Truffle Box功能方法 3.Truffle Box模板案例 truffle Box预构建模板的示例代码 运行构建模板的示例代码 ...

  8. 蚂蚁区块链投票案例(二)---投票合约设计开发

    文章目录 摘要 背景 案例场景 用例分析 系统管理员注册 添加小区.添加房屋 编辑房屋 发起投票 统计投票 业主注册 业主实名认证 客房关系认证 投票 合约设计 设计原则 合约设计 合约开发 命名规则 ...

  9. 不容错过 | 超干货免费公开课「EOS区块链应用开发入门实战」,文末送书!

    扫码报名,观看直播课 区块链的发展,被认为是新一代互联网WEB 3.0.从原则上讲,要真正借鉴互联网成功发展几十年的经验,而不是简单照搬 web 1.0 的方式各种炒作.今后的正确发展方向是把互联网成 ...

最新文章

  1. LabVIEW图像特征与机器视觉概念(理论篇—4)
  2. Scala Trait详解
  3. 苹果发布首款 Mac 自研芯片 M1,贯通生态快人一步!
  4. 用python画xy散点图-使用python绘制散点图并标示密度
  5. HDU2204 Eddy's爱好(容斥原理)
  6. Spring5-IOC底层原理
  7. win7无损扩大c盘空间_无损网络导航的空间模型
  8. 面向小姐姐的编程——JAVA面向对象之继承(三)
  9. 详解Nacos的高可用特性(转载)
  10. 哪些Mac快捷键可以精准定位光标位置
  11. 2022年版中国电子信息产业趋势预测及投资战略规划分析报告
  12. 加权平均数的例子_什么是加权平均数(加权平均数公式例子)
  13. 华为服务器设置raid0为系统盘,服务器设置raid0
  14. Apache主机如何强制HTTP重定向到HTTPS WorldPress
  15. surface哪些可以升级win11
  16. 三级面包屑的页面跳转到二级面包屑页面时,报错:Rendered fewer hooks than expected.
  17. 全国应用计算机水平考试,全国计算机应用水平考试
  18. 程序基石系列之C++多态的前提条件
  19. 《计算机网络技术》第四章课后习题答案(全)
  20. 什么是 PKI? 公钥基础设施的定义和指南

热门文章

  1. 23种设计模式 -----Day01:简单工厂模式
  2. Debian下安装Mosquitto
  3. python 英语翻译 excel_python批量将excel内容进行翻译、写入
  4. SpringCloud微服务之间使用Feign调用不通情况举例
  5. JavaBase 求 个位,十位,百位,千位
  6. seo常用工具,seo常用工具搜行者SEO
  7. 我们数学中常用的自然常数e代表什么?看完长知识了!
  8. Java知识点笔记(一):how2j.cn的学习(一)
  9. 帕卡贝尔的D大调卡农之由来
  10. 请回答数据结构【二叉搜索树】