我们先尽量简单直白的说下什么是EOS链,资源,智能合约,以及之间的关系.

  1. EOS链
    我们可以把EOS链想成一个由多台服务器组成的一个计算机云集群{无意突出此链的中心化}.每台服务器(节点)上都部署着一个EOS节点程序,各个节点彼此链接.这个计算机集群,根据投票排名前21名的节点,可以参与计算任务(出块),并且计算后会有相应的奖励(挖矿).

  2. 资源:RAM,CPU,NET
    我们把EOS链想成云服务器集群,我们购买的EOS账号就相当于在云服务的服务商那购买了个账号,然后给账号购买使用的资源:存储(RAM),算力(CPU)用于计算任务,网络(NET)用于任务与集群传输.我们使用EOS链,就相当于使用云服务器提供商提供的计算和存储服务.

  3. 智能合约
    我们可以把智能合约想成是一个执行脚本,每个合约可以部署到自己的EOS账号下(可以理解成每个账号会有个专门的存储索引,指引存放的合约,每个普通账号只能同时部署一个合约,后面的会把前面的覆盖掉),合约内可以写一些逻辑,以及数据的增删改查,也可以调用其余的合约.我们外部可以用过rpc方法访问EOS链(发起交易),指定运行哪个账号下的合约的某个接口(执行action).

也许举例还不够简单,或者不妥,等之后在完善.
下面我们开始主题

智能合约开发环境搭建

先介绍下智能合约的开发编译工具,在v1.3.0之前使用的是eosiocpp(直接包含在eos项目代码内,整体项目编译完或者安装完二进制包,直接可以使用).之后版本已经弃用(EOSIO 1.3.0 Release Notes),统一使用新版本编译工具 eosio.cdt,并放在单独的仓库管理(需要单独编译,或者下载二进制包安装).如果只开发合约的话,可以只安装eosio.cdt,无需再编译安装eos链项目.
新旧版本合约规则变化较大,目前网络上的文章一部分还停留在旧版本,不建议再参考语法.

安装eosio.cdt

编写此文时 eosio.cdt最新版本 1.6.1, EOSIO v1.7.0
eosio.cdt 可以使用源码编译安装,也可以直接使用官方编译好的二进制安装包

1. 源码编译安装

clone 源代码

git clone https://github.com/EOSIO/eosio.cdt

切换此时最新release分支

cd eosio.cdt
git checkout -b v1.6.1

编译源代码

git submodule update --init --recursive
./build.sh

编译完成之后会显示

然后执行安装

sudo ./install.sh

2.二进制包安装

EOSIO.CDT目前支持Mac OS X brew,Linux x86_64 Debian软件包和Linux x86_64 RPM软件包
如果之前已经用源码等方式安装过,需要先卸载,

Mac OS X Brew

安装

$ brew tap eosio/eosio.cdt
$ brew install eosio.cdt

卸载

$ brew remove eosio.cdt

Ubuntu Debian Package

安装

$ wget https://github.com/eosio/eosio.cdt/releases/download/v1.6.1/eosio.cdt_1.6.1-1_amd64.deb
$ sudo apt install ./eosio.cdt_1.6.1-1_amd64.deb

卸载

    $ sudo apt remove eosio.cdt

Fedora RPM Package

安装

    $ wget https://github.com/eosio/eosio.cdt/releases/download/v1.6.1/eosio.cdt-1.6.1-1.fedora-x86_64.rpm$ sudo yum install ./eosio.cdt-1.6.1-1.fedora-x86_64.rpm

卸载

    $ sudo yum remove eosio.cdt

Centos RPM Package

安装

    $ wget https://github.com/eosio/eosio.cdt/releases/download/v1.6.1/eosio.cdt-1.6.1-1.centos-x86_64.rpm$ sudo yum install ./eosio.cdt-1.6.1-1.centos-x86_64.rpm

卸载

    $ sudo yum remove eosio.cdt

建议

个人还是推荐使用Ubuntu 18.04/16.04系统,目前了解到的bp以及社区其他节点,大都在此系统上运行,相对测试较多,并且查找问题资料相对较多.

常见问题

  1. ubuntu安装完,执行eosio-cpp compile可能会报错误

    libstdc++.so.6 version glibcxx_3.4.21' not found

    解决方式如下

    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install libstdc++6

参考

  1. GitHub - EOSIO/eosio.cdt: EOSIO.CDT (Contract Development Toolkit) is a suite of tools used to build EOSIO contracts
  2. eosio.cdt一键安装_区块链斜杠青年的博客-CSDN博客

后文 《EOS智能合约开发点滴记录-第二篇智能合约编写》

EOS智能合约开发-开发环境搭建相关推荐

  1. 原 EOS智能合约开发入门

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. EOS智能合约的开发需要使用llvm和abigen来生成abi文件. 为此eos提供了一个 名为eosiocpp的工具. ...

  2. EOS智能合约开发与交互

    EOS智能合约的开发.编译.部署与交互. ## 运行示例代码 ### 1.启动节点服务 在1#终端启动nodeos,建议先清除历史数据: ``` ~$ rm -rf ~/.local/share/eo ...

  3. Beosin成都链安发布在线EOS-IDE免费版本 EOS智能合约在线编辑、编译、运行调试、部署一步到位...

    Beosin EOS-IDE产品链接: https://beosin.com/EOS-IDE/index.html#/ (推荐Chrome浏览器) 每一个区块链开发的程序员都需要一个界面友好,操作方便 ...

  4. c++ eos智能合约开发_十分钟教你开发EOS智能合约

    EOS环境搭建和启动节点 下面从EOS入门的环境搭建.编译运行一个智能合约.发送一些Aigsen,给大家做一些展示,希望能让非技术人员也有一些收获. 首先下载EOS环境搭建和启动节点.这一步其实还是比 ...

  5. 十分钟教你开发EOS智能合约

    十分钟教你开发EOS智能合约 在CSDN.柏链道捷(PDJ Education).HelloEOS.中关村区块链产业联盟主办的「EOS入门及最新技术解读」专场沙龙上,柏链道捷(PDJ Educatio ...

  6. c++ eos智能合约开发_TrustBase平台智能合约的开发与实现

    2020年11月,TrustBase团队研究并实现了基于Web的波卡智能合约应用平台.鉴于波卡智能合约开发缺少完善易用的开发工具的支持,TrustBase团队自主开发了基于Substrate框架的全新 ...

  7. EOS智能合约开发(四)EOS智能合约部署及调试(附编程示例)

    EOS的智能合约里面有一个action(动作)和transaction(交易)的概念. 对于我们开发以太坊开发者来说,基本上只有transaction的概念.如果我只要执行一种操作,而且是只读操作,就 ...

  8. EOS智能合约与DApp开发入门教程

    EOS的是Block.One主导研发的一个区块链底层公链系统,它专门为支撑商业去中心化应用(Decentralized Application)而设计,其代码开源. 比特币被称为区块链1.0,因为它开 ...

  9. c++ eos智能合约开发_[EOS智能合约]第二节:用EOS开发一个To-do List小应用

    EOS Asia 本教程原文作者为EOS Asia,亚洲最具技术实力和最国际化的EOS超级节点竞选者.EOS Asia 同时也是EOS Gems和Traffic Exchange Token这两个项目 ...

最新文章

  1. DIOCP (一) DIOCP常见问题。
  2. python3 url 编码 解码
  3. 哪里的草莓质量又好又便宜呢?水果批发市场(前提你买的得多)
  4. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析
  5. 见过的最详强的讲ESP定律脱壳(推荐)
  6. python 有趣的爬虫_Python有趣|微博榜单爬虫,尽知天下事
  7. 海康、大华连接相机失败:未安装USB3驱动或驱动无效
  8. 迷你博客的少年烦恼:Twitter的中国效仿者
  9. 2022-2027年中国股权众筹行业市场调研及未来发展趋势预测报告
  10. html5 safari浏览器 全屏显示 隐藏工具条,HTML5全屏API不IPhone SE Safari浏览器工作,也...
  11. 一个简单好用的磨皮祛斑算法理论和python实现
  12. 什么是IDaaS?IDaaS有什么应用意义?
  13. 在Linux服务器上如何开启安全的SNMP代理
  14. 2021年中山大学计算机专业学硕复试线,2021中山大学研究生分数线一览表(含2019-2020历年复试)...
  15. js写css字体,js如何写出css动画 ?js写css动画的方法(代码)
  16. 探究vite——新一代前端开发与构建工具(一)
  17. 基于 QPlay 的智能无线流媒体传输音箱的设计
  18. 通过emmc分区挂载根文件系统
  19. RVO避开agent
  20. Codeforces841B Godsend

热门文章

  1. 互联网上的“罪恶之城”:40多国联合行动才端掉它
  2. 麓言信息平面设计师自学怎么学-自学平面设计从哪里入手
  3. Angular ng-repeat 单选框默认选中第一个
  4. JNI第一天 JNI基本数据类型
  5. 从vue迁移到react_从AngularJS迁移到React-您如何衡量性能提升?
  6. 带你了解数据库的存储过程
  7. A Robot 3C Assembly Skill Learning Method by Intuitive Human Assembly Demonstration论文解析
  8. 【实习日记】SEO 优化和系统升级弹窗
  9. Python字符串介绍详解
  10. 说说这些年命理上遇到的婚姻情感问题?