EOS Studio教程#2 - 如何在本地节点上进行EOSIO开发

2019-04-13 EOS Asia 1726浏览

关注 EOS Asia 了解每周EOS资讯

版权声明:EOS GO译文

原文链接:https://www.eosgo.io/blog/eos-studio-local-dev/

EOS Studio是用于EOSIO dApp开发的图形集成开发(IDE),通过在应用程序中集成EOSIO所需的各种工具,从而为dApp开发提供了功能强大且易于使用的环境。其主要功能包括EOSIO定制代码的编辑、内置构建及部署、交互式合同的检查、EOSIO版本管理等等。开发人员们通过使用EOS Studio可以完成本地开发、测试网(Kylin和Jungle)上的调试、EOS主网上部署的整个开发过程。

EOS Studio目前可在Mac OS、Linux及Windows上使用,可通过以下链接下载更新安装包:
https://download.eosstudio.io/mac
https://download.eosstudio.io/linux
http://download.eosstudio.io/win

在本系列教程中,我们将会从EOS Studio的主要功能以及DApp的开发方法等方面进行介绍,熟悉EOS的开发人员还可以借此学习一下如何通过使用EOS Studio从而减少繁琐的工作以及怎样提高开发效率。当然,请先确认好你已下载并安装了EOS Studio。

在教程#1中,我们已经对EOSIO的必备工具的安装情况基本了解。因此在本文中,我们将对如何使用EOS Studio完成EOSIO智能合约的开发流程进行讲解,内容包括:

创建/打开一个项目

建立/编译智能合约

启动本地EOSIO节点

创建本地帐户

部署智能合约

执行智能合约

对于如何实际编写智能合约这部分暂且不详细介绍,因为了解合约开发的整个过程更为重要,否则,你将无法执行刚刚编写好的代码。而对于编写EOSIO智能合约有所了解的人们来说,通过本文的概述则能够更加清楚EOS Studio的主要功能。

1.创建/打开一个项目

在一切安装完成准备就绪时,你会看到一个空项目的屏幕,你可以在其中创建一个新的项目或打开现有的项目。通过EOS Studio的引导创建新项目非常方便,只需要输入合约名称并未项目选择一个文件夹即可,EOS Studio将自动生成初始的cpp_和_hpp文件,其中包含一些“hello world”智能合约的基本代码。

代码编辑器集成了一些最实用的合约开发工具,例如:EOSIO特定语法的突出显示和自动完成。在左上方的工具栏菜单中,有一些按钮可以协助你轻松执行常见的操作,如创建新的合约、编译合约及部署合约。

为了使EOSIO项目更具可配置性,EOS Studio定义了一个.eosprojfile,类似于节点项目的package.json文件,用于描述项目范围的参数和设置。而对于通过EOS Studio所创建的项目,会被默认设置生成.eosproj文件。否则,你需要指定一些配置,以便编译和部署工作可以正常进行。

EOS Studio提供了一个Project Settings页面,可以轻松查看和修改.eosproj文件,通过单击工具栏菜单中的cog按钮便可访问该文件。第一为定义项目的主文件,编译过程将从此文件开始。 第二为合约名称项,对应于CDT命令行的--contractattribute,也是编译过程中所必需的。 以下各项则为可选项,通常用于编译中的某些高级配置。 可以参考CDT命令行文档以了解如何使用。

在以下部署设置中,可以将智能合约部署到指定的帐户。 EOS Studio支持本地、Kylin/Jungle测试网以及EOSIO主网,因此可以单独指定所要部署的位置。 例如:如果我们在本地配置中输入newcontract,你将会看到工具栏中部署按钮旁也会显示该名称,只需单击按钮,EOS Studio便会将最新编译的代码部署到新的账户。

2.建立/编译智能合约

通过单击build_button,EOS Studio将调用CDT进行编译并生成_wasm和abi文件, 这些是部署时要使用到的文件。

EOS Studio代码编辑器还有另外一个非常便利的功能——当构建错误时会出现提示。

由于我们希望将所部署的合约能够与更为复杂有趣的合约进行交互,所以需要打开系统合约eosio.token并进行编译。 转到“文件 - >系统项目 - > eosio.token”将其打开。因为是首次在EOS Studio中打开该项目,所以需要进行项目设置,主文件填写为src / eosio.token.cpp,合约名称填写为eosio.token,在“部署设置”中,还要为local_item填写eosio.token,然后单击_build按钮进行编译,并等待生成wasm和abi文件。

3.启动本地EOSIO节点

在部署合约之前,我们还需要启动本地节点。 在“网络”选项卡下,可以看到以前所安装的EOSIO。若要启动本地节点,只需单击“开始”按钮,在下面的终端中,你将会看到节点正在生成块。

如果你需要使用其他版本的EOSIO,可以点击右上角的“添加”按钮来下载安装其他版本。此外还可通过cog来对nodeos和keosd进行其他高级设置。

4.创建本地帐户

在刚刚所启动的运行节点上创建eosio.token账户,则需要公钥:转到帐户 - >管理密钥对并复制公钥即可。 若需要使用其他公钥,点击“导入新密钥”并输入私钥。

然后,转到帐户 - >创建帐户。 输入帐户名称_eosio.token,粘贴公钥以创建帐户。

在“account tab”输入账户名称便可查看账户的所有信息。

5.部署智能合约

一起准备就绪就可以开始部署合约了。返回代码编辑器并点击部署按钮(eosio.token旁边)。 EOS Studio将为你完成必要的操作,包括为_setabi_actions调用setcode。

当合约部署完成后,返回帐户页面,你会在交易中看到setcode和setabi的记录,表明合约已部署在链上了。

6.执行智能合约

接下来就到了执行合约的步骤。 打开“合同”选项卡,然后在导航栏中键入eosio.token以打开合约。在EOS Studio可以有两个方法查看合约:1、通过左侧执行操作面板;2、通过右侧查询数据表面板;每个面板的左上角都有个下拉菜单,分别可以轻松查看所有操作记录。

在开始使用eosio.token合约之前,首先需要创建一个新的令牌。在操作下拉菜单中选择创建操作- >将发行者设置为eosio- >最大供应量为1000 EOS- >单击顶部的开始按钮以执行该操作。

接下来转到右侧表格面板并下拉列表选择stat,然后在范围字段中输入EOS- >点击刷新之后,你将会看到所创建的新EOS令牌。

若想要创建发布属于自己的令牌,进行操作需要先向eosio发出10个EOS,然后可在窗口中查看详细信息。

EOS Studio支持更改授权帐户。打开授权窗口为actor输入ineosio,选择重新运行该操作,便会看到操作成功的提示。刷新统计表之后,便可看到所提供的10个EOS(已发布)。

在修改智能合约时,经常需要重复相同的操作,并通过不断刷新列表来查看最新的数据情况。大多数的HTTP API客户端都具有存储呼叫历史并以书签形式保存常用参数, EOS Studio也同样具备此功能。(针对检查过往的执行结果或想要使用先前相同的参数重新运行,会方便快捷不少)点击界面右上角的时钟图表按钮,便可通过操作执行表来查询历史记录。

除此之外,EOS Studio还具备将常用参数保存到书签的功能。例如:如果我想反复向一个账户转账EOS,保存即可无需每次都输入。点击心形图标选择添加书签,你将会看到合同操作,授权程序以及要执行的参数,只需输入名称然后保存,之后便可随时在书签中找到并访问了。

最后,如果要检查正在执行的操作,请返回帐户选项卡并刷新。

以上便是EOSIO合约开发的相关流程,其中包括创建项目,编译合同代码,启动本地节点,创建帐户,将合约部署到本地节点以及调用合约操作等。 在下一篇文章中,我们将展示如何开发Kylin / Jungle测试网和EOS主网。与此同时 EOS Studio 还将提供一些方便的操作工具,使开发过程更加顺畅。 敬请关注!

如果对EOS Studio以及本系列教程的任何想法。请将反馈意见发给我们,对于我们改进EOS Studio有很大帮助。 

网站:https://www.eosstudio.io

电报:https://t.me/eosstudio

免责声明:上述作者表达的观点不一定代表EOS GO及EOS Asia的观点。 EOS GO是一个社区,其中EOS GO博客是作者表达其不同想法和观点的平台。

我们的目标

我们确保EOS作为一种健康的社区驱动的公链,维护EOS生态,对抗所有想通过把生态系统私有化为自己争取利益的人或者组织。

EOS Asia将把全世界最好的技术聚合在一起,立志让人人都能用到区块链的基础设施。

了解我们

EOS Asia主页:https://www.eosasia.one

EOS Asia浏览器:https://www.eosx.io

EOS Asia官方电报群:https://t.me/@EOSAsia

EOSInfra官网: https://www.eosinfra.io

EOSInfra官方电报群:https://t.me/@eosinfra

声明:本文版权归原作者所有,发布此文为传递更多市场信息,不代表币快报的观点和立场,请自行参考。如作者信息标记有误,请第一时间联系我们处理!