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

  • 主网

  • Jungle 测试网络

  • 本地网络

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

EOS支持的操作系统

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

一、下载和编译EOS

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

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

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

1. 物理内存RAM不足

3. 无法下载(MongoDB等)

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

解决办法:

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

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

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

三、安装EOSIO

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

安装成功后的效果如下

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

四、配置Nodeos与Keosd

1. 配置Nodeos

2. 配置Keosd

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

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

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

五、启动节点

1. 启动nodeos

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

六、使用Cleos创建钱包

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

1. 创建钱包

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

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

2. 解锁钱包

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

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

注意该秘钥对正是超级账户 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合约。

命令中的参数说明:

  • eosio:部署合约的账户

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

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

2. eosio.system合约

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

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

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

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

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

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

  1. 愿码(ChainDesk.CN):EOS钱包开发 五使用cleos工具管理账号权限

    在上一篇文章中,我们创建了一个新钱包并导入了一对公私钥,但是该钱包中并没有账号,在EOS区块链中创建账号是很扯蛋的事,必须使用已有的EOS账号才能创建新的EOS账号,使创建账号的时候便于扣费,因为创建 ...

  2. 愿码(ChainDesk.CN):CoinBase Pro增加了对xrp的支持

    CoinBase Pro是美国加密交易平台和钱包服务CoinBase的专业产品,它正在增加对Ripple XRP代币的支持.Coinbase在2月25日的一篇官方博客中宣布了这一进展. 根据公告,Co ...

  3. 愿码(ChainDesk.CN):跳槽必备技巧,拿offer的几率是85%

    你真的了解"跳槽"吗?那为什么总是跳槽不成功.不满意? 你可能万万没想到,在历史上,"跳槽"一词常见的意思是指男女间爱情上喜新厌旧,见异而迁.现如今因其新鲜.生 ...

  4. 3D打印软件Cura的二次开发(GUI)--环境搭建

    3D打印软件Cura的二次开发(GUI)--环境搭建 软体动物Ai  关注 2016.07.06 12:36*  字数 1639  阅读 1300 评论 8 喜欢 4 本文采用中国大陆版CC协议发布 ...

  5. 架构师实战培训(架构设计+数据后台+快速开发+二次开发+发布部署)

    架构师实战培训(架构设计+数据后台+快速开发+二次开发+发布部署)系列视频课程 课程目标 学习MIS系统.高并发系统.单机系统设计思路: 理解设计模式,学会命令模式: 适用人群 CIO.CTO.技术总 ...

  6. 使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建

    使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建 2010-04-07 16:53 在Nokia S60 V3下进行J2ME应用程序开发,需要搭建 Noki ...

  7. 安卓开发(一)环境搭建、基本程序与控件

    layout: post title: 安卓开发(一)环境搭建.基本程序与控件 description: 安卓开发(一)环境搭建.基本程序与控件 tag: 安卓 文章目录 Intent:协助应用间的交 ...

  8. linux 国产化 gtk图形界面开发 go和c++环境搭建

    linux 国产化 gtk图形界面开发 go和c++环境搭建 一.c++环境搭建 1.解决系统自带gcc无法编译gtk的问题 sudo apt-get install build-essential ...

  9. Python 网站开发(一)环境搭建

    前些天看到小阳买回来的一本 Python 基础教程,于是就产生了使用 Python 来开发一个小博客的想法.这个 Python 网站开发系列文章将不会过多说 Python 基本语法,主要是面向实践的. ...

  10. 全志A33开发板vstar编译环境搭建

    全志A33开发板vstar编译环境搭建 安装系统 全志提供的vstar的SDK使用内核linux-3.4.39, 在编译过程中,要用到一个文件gen_check_code,位于linux-3.4/ar ...

最新文章

  1. 生产者与消费者(二)---await与 signal
  2. ansys怎么合并体_骨质增生是由什么原因造成的?膝盖骨质增生是怎么造成的?...
  3. 设置响应主体格式php,Laravel如何实现适合Api的异常处理响应格式
  4. 聚类(part1)--聚类概述
  5. 未能加载文件或程序集“Autofac, Version=3.4.0.0,
  6. linux远程登录 密钥,使用密钥认证机制远程登录Linux
  7. Android 功耗(18)---android省电和提高效率
  8. Oracle之分析函数
  9. Linux - 计划任务
  10. fastboot 常用命令
  11. 安卓如何修改dns服务器地址,安卓手机怎么修改DNS?安卓手机修改DNS服务器图文详情介绍[多图]...
  12. @Transaction注解及失效详解
  13. Play framework REST API
  14. 断舍离:通向自由的26个丢弃
  15. AI - H2O - 安装与运行
  16. S7-1200添加CALCULATE 指令
  17. python函数实验总结_Python程序设计实验报告:实验六 函数
  18. 同步电机仿真永磁同步电机 弱磁控制 simulink仿真模型 凸极电机
  19. 山水印|竹林野茶:在这个临近八月中秋的九月,再喝桂花香茶
  20. 关于开源软件的几个看法

热门文章

  1. J2SE、J2EE与J2ME
  2. 升级IE11时,失败报错如何解决
  3. jsp分页代码mysql_jsp分页(jsp分页完整代码)
  4. php 微信表情存储,emoji表情存储到数据库的方法
  5. html5 微信 飞机 源码,[HTML5]微信飞机大战
  6. 这种文件别打开, 大小不足1KB, 却可以让你电脑瘫痪
  7. 数据挖掘导论阅读笔记第一章:绪论
  8. jdk官网下载账号登陆
  9. 直方图、正态分布图与SPC图
  10. 小白如何准备数学建模——以美赛为列