EOS开发环境搭建


  在上一篇文章《扒一扒EOS的前世今生》中,我们已经了解了EOS以及他的创始人Daniel Larimer的故事,本次为大家带来的是关于EOS开发环境搭建的内容。首先我们来了解一下EOS的核心架构和白皮书。


1. EOS的核心架构

  EOS网络由21个超级节点和100个备选节点构成,这21个超级节点负责轮流产生区块,避免了挖矿竞赛的问题,有效的提高同步数据的性能。

2. 白皮书解读

  白皮书原文就不向大家展示了,感兴趣的朋友可以去了解一下。通过阅读EOS的白皮书,可以提炼出以下关键信息。

  • 支持数以千万的日活用户
  • 普通用户免费使用更利于平台推广
  • 更容易升级和bug修复
  • 更低的延时,0.5秒可以出一个块
  • 委托股权证明(DPOS)的共识算法,21个超级节点负责出块
  • 更快的交易确认,广播后开始1.5秒后就可以99.9%认为是确定的
  • 人类可识别的帐户,长度2到32个字符之间,帐户名称支持命名空间
  • 基于角色的权限管理
  • 执行合约需要有cpu,ram和带宽,ram需要购买,cpu和带宽可以通过eos质押获得
  • 智能合约采用c/c++编写,编译为wasm在虚拟机中运行

3. EOS工具介绍

  下面所提到的是EOS官方提供的一些开发工具,基于这些工具我们可以搭建一个EOS私有节点进行学习和开发。在这里,只需了解它们的用途即可。

  • nodeos——节点软件,可以配置插件来运行节点的核心EOSIO节点守护程序。用途是块生产,用于本地开发
  • cleos——客户端工具,使用命令行操作,用于与区块链交互并管理钱包
  • keosd——钱包客户端工具,将EOSIO密钥安全存储在钱包中的组件
  • eosio.cdt——开发包工具,用于生成abi和把C++代码转换为wasm
  • eosio.contracts——示例智能合约

4. EOS的开发环境安装

  目前EOS的开发只支持Mac OS系统和linux系统,使用windows系统的朋友可以安装linux虚拟机进行开发。

4.1 安装二进制文件

  按照操作系统版本在终端执行对应的安装命令:

  • Ubuntu 18.04
wget https://github.com/eosio/eos/releases/download/v1.5.0/eosio_1.5.0-1-ubuntu-18.04_amd64.deb
sudo apt install ./eosio_1.5.0-1-ubuntu-18.04_amd64.deb
  • Ubuntu 16.04
wget https://github.com/eosio/eos/releases/download/v1.5.0/eosio_1.5.0-1-ubuntu-16.04_amd64.deb
sudo apt install ./eosio_1.5.0-1-ubuntu-16.04_amd64.deb
  • Mac OS
brew tap eosio/eosio
brew install eosio
  • CentOS
wget https://github.com/eosio/eos/releases/download/v1.5.0/eosio-1.5.0-1.el7.x86_64.rpm
sudo yum install ./eosio-1.5.0-1.el7.x86_64.rpm
  • Fedora
wget https://github.com/eosio/eos/releases/download/v1.5.0/eosio-1.5.0-1.fc27.x86_64.rpm
sudo yum install ./eosio-1.5.0-1.fc27.x86_64.rpm

4.2 安装EOSIO合约开发工具包(CDT)

  eosio.cdt——开发包工具,用于生成abi和把C++代码转换为wasm

  • Ubuntu
wget https://github.com/eosio/eosio.cdt/releases/download/v1.3.2/eosio.cdt-1.3.2.x86_64.deb
sudo apt install ./eosio.cdt-1.3.2.x86_64.deb
  • Mac OS
wget https://github.com/eosio/eosio.cdt/releases/download/v1.3.2/eosio.cdt-1.3.2.x86_64.deb
sudo apt install ./eosio.cdt-1.3.2.x86_64.deb
  • CentOS / Redhat
wget https://github.com/eosio/eosio.cdt/releases/download/v1.3.2/eosio.cdt-1.3.2.x86_64-0.x86_64.rpm
sudo yum install ./eosio.cdt-1.3.2.x86_64-0.x86_64.rpm

5. EOS的钱包和账户操作

  EOS开发工具包安装完成后,我们就可以用它来创建一个钱包。在EOS中,钱包用来管理账户,同一个钱包可以管理多个账户,同时也可以创建多个钱包。

5.1 创建钱包

  • 创建默认钱包并输出密码等信息到控制台
cleos wallet create --to-console
  • 创建并命名钱包
cleos wallet create -n yourWallet --to-console
  • 查看钱包列表
cleos wallet list

5.2 解锁钱包

  在EOS中,操作账户时需要解锁管理这个账户的钱包。

  • 解锁默认钱包
cleos wallet unlock
  • 解锁指定名称的钱包
cleos wallet unlock -n yourWallet --password PW5KCfM9bNawtujMXaZxnRwtMfMavddmUz9nawPxTKCCLLpGcAazH

5.3 创建密钥对并导入到钱包中

  公钥在创建账户时会用到,私钥则用于账户签名。一对密钥可以绑定多个账户。

  • 方法一:创建密钥对并自动导入到钱包
cleos wallet create_key
//或者指定钱包名
cleos wallet create_key -n yourWallet
//以上任意一条命令即可完成创建密钥对把它导入到钱包的操作

  • 方法二:创建密钥对并导入到钱包
    • 先创建
    cleos create key --to-console
    //或者这样
    cleos create key --file keyFile
    • 再导入
    cleos wallet import --private-key 5J7qwRbkG9NHCXHrxJwYGodZiFzshp2YgrqKrbFce4HNCPkkTjh
    //或者这样
    cleos wallet import -n yourWallet --private-key 5KJ8chnW4cF6e7QdLQTTwSGHQ4ovZwS9agCQFfGhC2QQQTnCcAU

5.4 查看钱包中包含的密钥对

  • 查看默认钱包中的密钥对
cleos wallet private_keys
  • 查看指定钱包中的密钥对
cleos wallet private_keys -n yourWallet

5.5 创建账户

  • 启动EOS私有节点
nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
-d ./eosData \
--config-dir ./eosData/config \
--access-control-allow-origin=* \
--contracts-console \
--http-validate-host=false \
—filter-on=‘*’
  • 创建一个账户
cleos create account eosio bob YOUR_PUBLIC_KEY -p eosio@active

  如果报错则需要将eosio账号的密钥对导入钱包

cleos wallet import --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3




  完成上面的所有操作后,我们就完成了EOS的开发环境搭建。下期将为大家带来EOS开发入门的相关内容,敬请关注。



EOS开发环境搭建的更多相关文章

  1. eos开发(一) eos开发环境搭建

    区块链最近挺火的,我又是个非常缺钱的人,所以紧跟了潮流一头扎进区块链的研究中. 这EOS项目是目前比较火的一个项目,相信很多朋友拿到这份EOS的源代码后都会一脸懵逼,因为……这代码写得太高级了,老纸看 ...

  2. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  3. IntelliJ IDEA安装及jsp开发环境搭建

    一.前言 现在.net国内市场不怎么好,公司整个.net组技术转型,就个人来说还是更喜欢.net,毕竟不是什么公司都像微软一样财大气粗开发出VS这样的宇宙级IDE供开发者使用,双击sln即可打开项目, ...

  4. Qt for Android开发环境搭建及测试过程记录

    最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...

  5. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  6. TODO:小程序开发环境搭建

    TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...

  7. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  8. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  9. Eclipse swt开发环境搭建

    原料: eclipse swt.下载链接为: Eclipse 4.6.2 Release Build: 4.6.2 配置说明: Developing SWT applications using Ec ...

随机推荐

  1. Intellij idea 离线安装activiti工作流插件

    想在Intellij idea上安装一个activiti插件玩玩,由于网络环境原因,不能使用网上已有的在线搜索acti bpm并安装的方式.也在网上找了好久没找到离线安装的方式.自己摸索了一下装好了, ...

  2. T-SQL语法基础

    一.T-SQL语言的分类 DDL-数据定义语言 create-创建 alter-修改 drop-删除(针对对象) DML-数据操作语言 Insert-插入 update-更新 delete-删除(针对 ...

  3. 为什么MIP-Cache存在

    在去年十月的一篇 博客文章 提到 MIP 加速器是由 MIP-HTML, MIP-JS 和 MIP-Cache 三个模块共同产生加速效果的.MIP-HTML 和 MIP-JS 都是开源的,在 GitH ...

  4. MIP 2016年终总结

    MIP 项目组成立至今已经有一年多的时间,在过去的一年里,感谢各位的关注. 1. MIP JS 迭代 MIP JS 运行环境是 MIP 页面和 MIP 组件运行的基石.在 2016 年 4 月,MIP ...

  5. css垂直居中方法总结

    在网页布局中,我们往往会遇到下图所示的场景,让小图标和文字对齐 可能有的小伙伴会说,这个简单,直接给小图标设置左浮动来实现. 这样做是可以的,但不推荐,毕竟浮动是会影响布局的,能少用还是少用. 以前遇 ...

  6. 每日分享!~ JavaScript(js数组如何在指定的位置插入一个元素)

      这个想法是在一个面试题中看到的: 题目是这样的: // 一个数组,在指定的index 位置插入一个元素,返回一个新的数组,不改变原来的数组 <script> function inse ...

  7. 【Android Studio安装部署系列】十二、Android studio代码混淆

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 为什么需要代码混淆呢?原因很简单,你的apk很容易被反编译出来,你写的代码都会被看到,因此我们需要在编译过程中对代码进行一定程度的混 ...

  8. python使用魔法函数创建可切片类型

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ 可切片的对象 """ import nu ...

  9. 使用 ASP.NET Core MVC 创建 Web API(二)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 六.添加数据库上下文 数据库上下文是使用Entity Framewor ...

  10. tcc分布式事务框架解析

    前言碎语 楼主之前推荐过2pc的分布式事务框架LCN.今天来详细聊聊TCC事务协议. 2pc实现:https://github.com/codingapi/tx-lcn tcc实现:https://g ...