EOS智能合约从零到一(1)

一、简介

之前写过关于Solidity的只能合约,但是现在因为公司的业务的原因,我们又要搞eos合约的开发,所以我就开始搞eos只能合约相关的开发,其实之前也是知道使用的是C++写的,但是没有真正看过,这次马上就要开始了。

二、了解EOS

EOS,可以理解为Enterprise Operation System,即为商用分布式应用设计的一款区块链操作系统。EOS是引入的一种新的区块链架构,旨在实现分布式应用的性能扩展。注意,它并不是像比特币和以太坊那样的货币,而是基于EOS软件项目之上发布的代币,被称为区块链3.0。

三、入门介绍

1.开发环境(本文开发环境)

名称版本描述
Ubuntu18.04开发环境支持多种操作系统,但是不支持windows,因为我的电脑是安装的ubuntu/windows的双开发系统,所以无需顾虑
nodeos1.5.0eos本地搭建节点版本
cleos1.5.1eos开发工具
keosd1.5.0eos钱包管理工具
eosio.cdt1.5.0eos只能合约开发工具包(The EOSIO Contract Development Toolkit,CDT for short.)
eosio.contracts1.5.2eos本地智能合约系统使用合约
Sublime Text33.1.1编辑器

这边也支持使用docker,如果你会docker,可以使用docker并使用windows开发,但是eos官方已经从2018年6月不再对docker镜像进行维护,所以我这边还是推荐使用linux和手里有mac的小伙伴去开发。

2.开发技能

  1. 至少需要了解一些区块链相关的知识
  2. 有过开发语言的经验,就好是C/C++.
  3. 熟悉Linux/Mac OS等操作系统。
  4. 有命令行相关知识。

3.可使用编译器

  1. Sublime Text:https://www.sublimetext.com/
  2. Atom Editor:https://atom.io/
  3. CLion:https://www.jetbrains.com/clion/
  4. Eclipse:http://www.eclipse.org/downloads/packages/release/oxygen/1a/eclipse-ide-cc-developers
  5. Visual Studio Code:https://code.visualstudio.com/

我这边使用的是一个编辑器,并没有使用编译器,因为配置环境比较麻烦。
如果有需要我这里有两篇,大家可以借鉴:

  1. Visual Studio Code Setup:https://infinitexlabs.com/setup-ide-for-eos-development/
  2. CLion Setup: https://infinitexlabs.com/setup-ide-for-eos-development/

四、准备环境

1.创建一个开发相关的目录

这里我在当前用户根目录下创建一个eos目录,并在下边创建一个contracts目录存放合约文件。

cd ~
mkdir eos
cd eos
mkdir contracts

eos-1

2.下载和安装

下载和安装eosio
这里我们在下载之前切换到我们创建的eos目录

cd ~/eos
wget https://github.com/eosio/eos/releases/download/v1.5.0/eosio_1.5.0-1-ubuntu-18.04_amd64.deb
sudo apt install ./eosio_1.5.0-1-ubuntu-18.04_amd64.deb

然后启动钱包工具keosd

keosd &

启动成功你可以看到如下输出:
eos-2
然后我们还是在**~/eos**目录下启动我们的本地节点

nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
--data-dir CONTRACTS_DIR/eosio/data \
--config-dir CONTRACTS_DIR/eosio/config \
--access-control-allow-origin='*' \
--contracts-console \
--http-validate-host=false \
--verbose-http-errors \
--filter-on='*' >> nodeos.log 2>&1 &

eos-3
启动节点后我们可以看到当前目录下有一个nodeos.log的文件,这个是本地节点的log输出文件,我们使用tail命令来动态的查看输出

tail -fn 400 nodeos.log

可以看见生产区块的日志
eos-5

有时候我们非关闭电脑,或者节点时,再次使用以上命令就会出现以下错误
eos-4
出现当前问题我们可以加一个参数**–replay-blockchain --hard-replay-blockchain**
也就是使用如下命令来启动

nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::chain_api_plugin --plugin eosio::http_plugin --plugin eosio::history_plugin --plugin eosio::history_api_plugin --data-dir CONTRACTS_DIR/eosio/data --config-dir CONTRACTS_DIR/eosio/config --access-control-allow-origin='*' --contracts-console --http-validate-host=false --verbose-http-errors --filter-on='*' --replay-blockchain --hard-replay-blockchain >> nodeos.log 2>&1 &

通过脚本查看钱包账户的一些信息

cleos wallet list

eos-6

可以看到没有钱包,或者都是非open状态(我们这里是因为没有钱包)

检查eos节点
直接使用浏览器,或者使用命令行

curl http://localhost:8888/v1/chain/get_info

eos-7

安装CDT

cd ~/eos
wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.5.0/eosio.cdt_1.5.0-1_amd64.deb
sudo apt install ./eosio.cdt_1.5.0-1_amd64.deb

卸载(可能不会用到)

sudo apt remove eosio.cdt

安装Sublime Text3
如果有需要的小伙伴可以看看

五、参考文章

  1. 百度百科-EOS:https://baike.baidu.com/item/EOS/20441174?fr=aladdin
  2. 设置eos开发环境ide:https://infinitexlabs.com/setup-ide-for-eos-development/
  3. eos 开发者:https://developers.eos.io/eosio-home/docs/introduction
  4. EOS.GITHUB:https://github.com/EOSIO/eos
  5. Linux install setup
  6. 解决ubuntu下sublime text3不能输入中文问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风华正茂少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值