EOS智能合约开发-开发环境搭建
Posted 跨链技术践行者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS智能合约开发-开发环境搭建相关的知识,希望对你有一定的参考价值。
我们先尽量简单直白的说下什么是EOS链,资源,智能合约,以及之间的关系.
-
EOS链
我们可以把EOS链想成一个由多台服务器组成的一个计算机云集群无意突出此链的中心化.每台服务器(节点)上都部署着一个EOS节点程序,各个节点彼此链接.这个计算机集群,根据投票排名前21名的节点,可以参与计算任务(出块),并且计算后会有相应的奖励(挖矿). -
资源:RAM,CPU,NET
我们把EOS链想成云服务器集群,我们购买的EOS账号就相当于在云服务的服务商那购买了个账号,然后给账号购买使用的资源:存储(RAM),算力(CPU)用于计算任务,网络(NET)用于任务与集群传输.我们使用EOS链,就相当于使用云服务器提供商提供的计算和存储服务. -
智能合约
我们可以把智能合约想成是一个执行脚本,每个合约可以部署到自己的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以及社区其他节点,大都在此系统上运行,相对测试较多,并且查找问题资料相对较多.
常见问题
- 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
参考
- GitHub - EOSIO/eosio.cdt: EOSIO.CDT (Contract Development Toolkit) is a suite of tools used to build EOSIO contracts
- eosio.cdt一键安装_区块链斜杠青年的博客-CSDN博客
以上是关于EOS智能合约开发-开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章