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开发入门的相关内容,敬请关注。



最新文章

  1. SSIS学习笔记
  2. MapReduce应用案例--简单排序
  3. NSTimer(定时器)
  4. BZOJ 1047 理想的正方形
  5. hdu 3177
  6. 【C++基础】 类中static private public protected
  7. Java .Net C++ RSA 加密
  8. ECharts中文显示为Unicode码
  9. 使用Java程序发送Email
  10. web.xml在listener作用与用途
  11. Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]
  12. 微信小程序--ajax服务器交互及页面渲染
  13. Navicat远程连接阿里云服务器的mysql
  14. 用installshield2013 将winform程序打包成exe执行程序
  15. pyhton笔记(一):字符编码、变量
  16. [SoapUI] 在SoapUI中通过Groovy脚本执行window命令杀掉进程
  17. Django 数据库操作进阶F和Q操作
  18. Java 继承和多态
  19. java随机函数使用方法Random
  20. ssh的发展历程与基本原理

热门文章

  1. [目录]搭建一个简单的WebGIS应用程序
  2. 使用Chrome 中的 ssh 插件登陆 linux 服务器
  3. Netty2:粘包/拆包问题与使用LineBasedFrameDecoder的解决方案
  4. Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解决一些依赖 Windows 的痛点问题
  5. Gradle的一些技巧和遇到的问题
  6. [Abp vNext 源码分析] - 3. 依赖注入与拦截器
  7. 《深入理解Java虚拟机》-----第7章 虚拟机类加载机制——Java高级开发必须懂的
  8. springboot~读取自定义配置项
  9. [macOS开发.NET Core] 开篇 & 抉择 & 先利其器
  10. 使用阿里云的图片识别成表格ocr(将图片表格转换成excel)