EOS、EOS-Mainnet、EOSIO都是什么?

背景介绍

  • 2017年,一个叫Block.one的公司开发了一个叫EOSIO的软件。为了开发这个软件,Block.one进行了一个历时350天的众筹,最后募集资金超过40亿美元。

  • EOSIO这个软件是后来的EOS-Mainnet和其他区块链网络(BOS、Telos等等)构建网络的基础工具。

  • EOS-Mainnet,也就是EOS主网,是我们目前使用最广泛的基于EOSIO软件的区块链网络。网上听说的很多EOS Dapp(Decentralized Application,去中心化的app)都是运行在EOS主网上,大多数人一说EOS,基本上指的就是EOS主网。

  • EOS是EOS主网上的原生代币的符号,EOS的数量体现了你在EOS主网上可使用资源和可参与治理的多少。EOS本身具有价格,可以在各大交易所购买。

账户、公钥、私钥

  • 在EOS上,账户类似于用户名,所有的操作都是以账户为基础的,转账、投票、更新信息,参与Dapp等等。账户需要注册,至多12位字符。

  • 如何证明这个账户是属于你的而不是别人的呢?这个就需要用到公钥和私钥,用互联网来类比的话就是密码,不过这个密码是由公钥和私钥两部分构成的。
    形象地理解,公钥和私钥就相当于锁和钥匙,私钥,也就是钥匙,掌握在你自己手里;公钥,也就是锁,和账户绑定。如果你想在账户里进行操作,就需要用你手里的私钥和公钥匹配,如果匹配上了,那么账户就认为你是所有者。

  • 实际上,EOS的账户系统还可以更加复杂,比如给予每个公钥/私钥对不同的权限(Owner和Active),对一个账户就行多人共管(Multi-sig,多签)等等,暂时先不展开了。
    注意,一个公钥/私钥对可以同时控制多个账户。

(三)钱包

  • 常用的钱包,PC端和国外主要用Scatter,手机端和国内主要用TokenPocket、Meetone。这些可以通过他们的官网下载。

  • 每个EOS账户里面存在着三者资源,所有的操作都需要花费这三种资源,可以理解,这三种资源是你使用EOS网络的成本。这三种资源叫做计算(CPU)、存储(RAM)和网络(NET)。

项目 传统含义 EOS上含义
计算(CPU) 中央处理单元,指的是负责在计算机中执行指令和处理信息的硬件 一种按时间计价的资源(单位:微秒),用来衡量EOS节点应该对你帐户中的交易确认所投入的时间
网络(NET) 互联网带宽 一种以空间计价的资源(单位:字节),用来衡量当在P2P层上传输数据时需要多少区块的网络描述来存储你的交易数据
存储(RAM) 存储是用来存储云平台上的所有数据。RAM是指运行内存,速度更快,但储存是暂时的,断电后内容就会消失 RAM不再是临时存储,而是作为主储存层,用来储存所有的数据。相当于是让储存速度更快的内存(RAM)充当了硬盘的功能。在RAM中存储数据库,可以让读取数据的速度更快

EOSIO如何快速构建开发网络

  • EOSIO是由三个组件组成的。
    • nodeos:管理区块链节点的组件。
    • keosd:管理钱包的组件。
    • cleos:控制区块链和钱包CLI工具。

Macos 安装EOSIO

  • 安装 brew tap eosio/eosio brew install eosio

  • 卸载 brew remove eosio

Ubuntu 18.04 Debian 安装 eosio

Ubuntu 16.04 Debian 安装 eosio

CentOS 通过RPM 安装 eosio

设置一个开发目录

  • cd /data mkdir development-eos

  • cd development-eos 进入开发目录

启动节点

  • keosd &

  • 如果成功则会看到如下截图:

keosd

启动nodeos

nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
--filter-on="*" \
--access-control-allow-origin='*' \
--contracts-console \
--http-validate-host=false \
--verbose-http-errors >> nodeos.log 2>&1 &

查看nodeos.log是否已经启动nodeos

  • tail -f nodeos.log

nodeos.log

查看当前已经存在的eos钱包

  • cleos wallet list

  • 不出意外应该会返回一个空的数组,当前我们并没有创建钱包

检查Nodeos 的端口

检查Nodeos 的端口

Macos安装CDT

  • brew tap eosio/eosio.cdt
  • brew install eosio.cdt

  • 卸载CDT brew remove eosio.cdt

CentOS/Redhat内核安装CDT

通过源码编译方式安装CDT

  • 然后执行 cd eosio.cdt ./build.sh

  • sudo ./install.sh

创建一个开发模式的钱包

  • 首先执行创建钱包的命令:cleos wallet create –to-console , 此时cleos会返回一个密码,你可以存在任何地方,后续以备使用。

  • 打开一个eos钱包:cleos wallet open

  • 返回钱包的列表查看目前可以打开的钱包:cleos wallet list

  • 打开之前首先需要解锁:cleos wallet unlock

  • 然后在输入:cleos wallet list,会看到列表的钱包后面会增加一个*号,然后就可以在执行打开命令打开。

生成带有密钥的EOS钱包

  • cleos wallet create_key
  • 运行上述命令后会得到一个新的key: “EOS8PEJ5FM4LLLpHK…X6PypHu97kqGDJQY5Y”

  • 在网页https://developers.eos.io/eosio-home/docs/wallets 的第五步输入上述得到的key就可以得到一个开发的Public key

导出开发的密钥

  • cleos wallet import,运行命令后会得到一串字符串(private key),包存后可以用来后期的开发

创建eos测试账户

  • 使用命令分别创建bob和alice两个账户,YOUR_PUBLIC_KEY是之前步骤生成的key

  • cleos create account eosio bob YOUR_PUBLIC_KEY

  • cleos create account eosio alice YOUR_PUBLIC_KEY

  • 运行命令后会反馈当前广播交易的消息

获取Public Key

  • cleos get account alice(当前创建的用户)

获取Public Key

参考