LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 在浏览器中使用EOSIO(Quickstart Web IDE)

在浏览器中使用EOSIO(Quickstart Web IDE)

2020-06-15 松果 来源:区块链网络

EOSIO的入门知识包括以下内容:

安装EOSIO.CDT使用keosd作为本地开发用的钱包启动nodeos守护进程创建EOS账户EOSIO智能合约基础通证内联Action自定义权限使用EOSIO notify声明Payable Action

在学习这些知识前,可以先通过EOSIO Quickstart Web IDE尝试EOSIO系统的使用。

在浏览器中使用EOSIO

项目地址:EOSIO Quickstart Web IDEGithub地址: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的优点是方便和快速使用,缺点是和本地运行环境比起来有较大的性能差距。

—-

编译者/作者:松果

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...