EOS智能合约开发-开发环境搭建

Posted 跨链技术践行者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS智能合约开发-开发环境搭建相关的知识,希望对你有一定的参考价值。

我们先尽量简单直白的说下什么是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智能合约开发-开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

eos开发指南

EOS基础全家桶智能合约IDE-EOS_Studio

EOS基础全家桶智能合约IDE-EOS_Studio

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

EOS智能合约开发-智能合约编写

EOS智能合约案例解析