EOSIO的入门知识包括以下内容:
- 安装EOSIO.CDT
- 使用keosd作为本地开发用的钱包
- 启动nodeos守护进程
- 创建EOS账户
- EOSIO智能合约基础
- 通证
- 内联Action
- 自定义权限
- 使用EOSIO notify声明Payable Action
在学习这些知识前,可以先通过EOSIO Quickstart Web IDE尝试EOSIO系统的使用。
在浏览器中使用EOSIO
- 项目地址:EOSIO Quickstart Web IDE
- Github地址:EOSIO/eosio-web-ide
EOSIO Quickstart Web IDE项目托管在Gitpod上,Gitpod是一款基于VSCode Web版的IDE,可使用Github账号登录:
登陆后会在Gitpod中创建一个EOSIO/eosio-web-ide项目的工作区:
点击“Open”进入Web IDE界面:
Web界面和本地的VSCode界面类似,不同的是EOSIO Web IDE还增加了很多内容。
控制台滚动显示正在生产的区块信息,EOSIO Web IDE通过Docker集成了一个云端运行环境,可以直接编译和部署EOS智能合约。
通过README文档可以学习EOSIO Web IDE的使用方法。
EOSIO Quickstart Web IDE
EOSIO Quickstart Web IDE使开发人员可以在几分钟内开始构建全栈EOSIO应用程序。
在Gitpod.io和Docker的支持下,为开发人员提供了用于开发和测试的单节点EOSIO区块链,无需进行高级本地环境设置。这里还包括一个示例应用程序,该应用程序具有智能合约和Web前端,已连接到区块链,开发人员还可以直接使用cleos和eosio.cdt之类的EOSIO工具。
通过Web IDE运行EOSIO系统无需在本地计算机上安装任何程序,所有代码都存储在开发人员的个人GitHub帐户上并进行管理,更改会自动保存。
在计算机系统的使用受到限制(比如学校、银行、政府)的场景下,或本地计算机性能不足以运行EOSIO时,Web IDE变得非常有用。
打开终端
点击控制台右上角的图标(Split Terminal)打开终端,在终端中可以直接使用cleos命令。
输入cleos get info命令可以获取当前运行的EOSIO区块链的基本信息:
示例合约
Web IDE左侧的文件浏览器中的contract目录下有一份示例合约的源码(talk.cpp)。
定义了一张Multi-index数据表:
struct [[eosio::table("message"), eosio::contract("talk")]] message {
uint64_t id = {}; // Non-0
uint64_t reply_to = {}; // Non-0 if this is a reply
eosio::name user = {};
std::string content = {};
uint64_t primary_key() const { return id; }
uint64_t get_reply_to() const { return reply_to; }
};
定义了二级索引"by.reply.to",使该数据表可以通过id(主键)和reply_to字段查询数据。
using message_table = eosio::multi_index<
"message"_n, message, eosio::indexed_by<"by.reply.to"_n, eosio::const_mem_fun<message, uint64_t, &message::get_reply_to>>>;
再往下是合约代码,只有一个名为post的Action,用于向message表中增加一条数据。
编译合约
在终端输入如下命令编译合约:
eosio-cpp contract/talk.cpp
talk.cpp文件会被编译成talk.abi和talk.wasm两个文件。
talk.abi是合约的JSON格式描述文件,talk.wasm是使用EOS VM编译成WebAssembly文件,可以在浏览器中运行。
部署合约
使用如下命令,为合约创建一个EOS账户,然后使用cleos部署合约:
cleos create account eosio talk EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos set code talk talk.wasm
cleos set abi talk talk.abi
合约部署完成后,使用cloes get code命令可以查到合约的哈希值:
cleos get code talk
//code hash: 9b67c3e057ce966c78345a096a0680881fdba7788fe352c56041faecbe48d2d5
创建账户的调用合约
使用下面的命令创建两个EOS账户,并调用合约:
cleos create account eosio alice EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio bob EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos push action talk post '[1000, 0, alice, "This is a new post"]' -p alice
cleos push action talk post '[2000, 0, bob, "This is my first post"]' -p bob
cleos push action talk post '[1001, 2000, alice, "Replying to your post"]' -p alice
控制台输出log信息:
查询数据表
使用cleos get table命令可以查询message表的数据:
cleos get table talk '' message
启动Web前端应用
Web IDE的示例程序不但提供了智能合约,还提供了基于Reactjs的Web前端界面,使用如下命令启动:
gp preview $(gp url 8000)
在Docker镜像的8000端口运行了Web服务,这个前端界面展示了数据,还可以新增数据。
总结
EOSIO Quickstart Web IDE的基本使用就介绍到这里,还有更多内容如建立和运行单元测试、重置区块链等读者可自行体验。
EOSIO Quickstart Web IDE的优点是方便和快速使用,缺点是和本地运行环境比起来有较大的性能差距。
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!