愿码(ChainDesk.CN):EOS钱包开发 二 EOS开发环境搭建

本课程是EOS钱包开发,可以选择以下三种网络进行开发:

  • 主网

  • Jungle 测试网络

  • 本地网络

咱们在开发阶段一般选择测试网络和本地网络皆可,测试完成后在部署到主网。这里我们先选择在本地网络上进行开发,因为在Jungle 测试网络中不支持wallet的RPC接口,因为它作为一个公共的服务节点,是不可能帮助大家管理私钥的,那样会非常不安全,大家都会共用相同的钱包和私钥。最后我们将使用本地搭建的keosd服务管理钱包,并连接到Jungle 测试网络中。

EOS支持的操作系统

image.png

本教程的开发环境选择为:Ubuntu 16.04、本地网络、RPC+eosjs、eosV1.2.2。接下来开始搭建EOS本地环境将它部署在单个主机。

一、下载和编译EOS

获取EOS指定版本源码及其所有子模块,若不加入--recursive参数,则不能下载EOS关联的子项目。指定版本源码使用-b指定版本号。

image.png

 

image.png

在编译的过程中很有可能会出现各种错误,由于系统、EOS版本的差异出现的错误也会不一样,下面列出了常见的多种错误的解决办法。

二、编译时报错的解决办法

1. 物理内存RAM不足

image.png

3. 无法下载(MongoDB等)

无法下载MongoDB等是由于翻墙配置的问题。

解决办法:

Mac的Shadowsocks使用“PAC自动模式”,另外偏好设置配置如下

image.png

Ubuntu的配置如下,其中的192.168.1.116 是Mac的局域网地址。

image.png

4. 不能创建/tmp/llvm-compiler文件夹

 

三、安装EOSIO

安装所有依赖库并构建EOSIO,使用如下命令

image.png

安装成功后的效果如下

image.png

安装完在根目录新增了build文件夹,最后EOS的目录结构如下。

image.png

四、配置Nodeos与Keosd

1. 配置Nodeos

image.png

2. 配置Keosd

keosd是一个轻客户端钱包,负责管理钱包,以便在广播到网络之前保护密钥和签署交易,在本地计算机上运行并在本地存储您的私钥。

  • 找到路径~/eosio-wallet/config.ini,然后打开config.ini文件

  • 将第一行的服务地址设置为:http-server-address = 127.0.0.1:8889

五、启动节点

1. 启动nodeos

使用以下命令启动自己的单节点区块链:

image.png

image.png

六、使用Cleos创建钱包

下面我们使用命令行进行操作,需要使用到Cleos,它是一个命令行工具,可以与nodeos公开的REST API进行交互,前提是nodeos需要配置eosio :: chain_api_plugin插件。

1. 创建钱包

钱包是授权私钥的存储库,与区块链交互所必需的。通过如下命令创建钱包,可以通过-n参数指定创建的钱包名称。如果不指定钱包名称,则会创建一个名为default的默认钱包。

image.png

成功后将会生成钱包的解锁密码,钱包15分钟不用将会自动锁定,注意一定要保存最后一行的密码,需要使用它解锁这个钱包。

2. 解锁钱包

可以通过两种方式解锁钱包,推荐使用第二种方式解锁。

  • 直接在命令行上添加密码参数,可以通过-n参数指定钱包名称

image.png

image.png

注意该秘钥对正是超级账户 eosio的秘钥对。接下来就会用到eosio账户。

cleoscreateaccounteosioeosio.biosEOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

七、部署系统合约

现在我们有一个拥有帐户eosio密钥的钱包defualt,那么接下来用eosio账户部署默认的系统合约,确保钱包defualt处于解锁状态。

eosio账户是默认就有的,在系统启动的时候就自动被创建的超级用户。

1. eosio.bios合约

出于开发目的,eosio.bios可以使用系统提供的合约,通过此合约可以通过确认用户持有的token直接控制其他帐户的资源分配,包括管理链上的堆栈和非堆栈资源,带宽、CPU以及内存资源。该eosio.bios合约可以在contracts/eosio.bios中找到源代码。

先进入到eos根目录,再使用命令cleos set contract eosio build/contracts/eosio.bios -p eosio@active部署BIOS合约。

image.png

命令中的参数说明:

  • eosio:部署合约的账户

  • build/contracts/eosio.bios:合约路径

  • -p eosio@active:作用是告诉cleos使用eosio帐户部署此合约,将使用我们之前导入的帐户eosio的active权限的私钥对该操作进行签名。

2. eosio.system合约

eosio.system是EOS系统合约中最重要的部分,实现了EOS项目的所有基本功能:如:创建新账户、部署智能合约、交易RAM、抵押获取资源(net、cpu)、投票、领取节点奖励等;

image.png

八、EOS v1.1与v1.2版本的差异

在~/eosio-wallet/config.ini中可以修改keosd应用程序的端口,可以通过keosd命令单独启动。

在~/.local/share/eosio/nodeos/config/config.ini中可以修改nodeos应用程序的端口,可以通过nodeos命令启动,一般需要添加插件启动,如:

image.png

v1.1版本

支持wallet RPC API,在nodeos中添加eosio::wallet_api_plugin插件以启动keosd,那么keosd的端口与nodeos一致,同时也可以再通过命令keosd单独启动keosd应用程序,此时可以通过两种途径访问keosd,一是使用nodeos的插件方式访问,得用nodeos的端口访问keosd,二是使用keosd的端口访问。

通过RPC访问钱包数据的时候目录在~/.local/share/eosio/nodeos/data。通过cleos命令访问钱包据的时候目录在~/eosio-wallet。

v1.2版本

nodeos已经删除了钱包API,应该直接在keosd中使用API。它的API定义与之前一样,可以在v1.2之前的版本中查看钱包API,所以在nodeos中不能再添加钱包插件以启动keosd了,需要通过命令keosd单独启动keosd应用程序,注意它的端口不能与nodeos一样。

通过RPC和cleos命令访问钱包数据的目录都在~/eosio-wallet。

版权声明:博客中的文章版权归博主所有,未经授权禁止转载,转载请联系作者(微信:lixu1770105)取得同意并注明出处。

本文地址: https://chaindesk.cn/witbook/2/19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值