EOSIO学习笔记
-
什么是EOSIO?
EOSIO是一种软件,它引入了区块链架构,旨在实现分散式应用程序的垂直和水平扩展(“EOSIO软件”),并可用于启动私有和公共区块链网络。这是通过类似操作系统的构造实现的,可以在其上构建应用程序,该软件提供帐户,身份验证,数据库。
ABOUT THE STACK
每个组件以及它们是如何配合工作的:
nodeos
(node + eos = nodeos) - 核心EOSIO 节点守护程序,可以配置插件来运行节点。示例用法是块生产,专用API端点和本地开发。cleos
(cli + eos = cleos) - 命令行界面,用于与区块链交互并管理钱包。keosd
(key + eos = keosd) - 将EOSIO密钥安全存储在钱包中的组件。eosio-cpp-
部分eosio.cdt,它编译C ++代码WASM并可以生成ABI。
启动节点和设置
第一步 引导节点和电子钱包
- 首先要启动keosd(将EOSIO密钥安全存储在钱包中的组件)
keosd & # enter 键退出
- 立即启动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 \ --access-control-allow-origin='*' \ --contracts-console \ --http-validate-host=false \ --verbose-http-errors \ --filter-on='*' >> nodeos.log 2>&1 &
这些设置可实现以下功能:
- 运行nodeos。此命令加载所有基本插件,设置服务器地址,启用CORS以及合同调试和日志记录。
- 设置CORS没有限制(*)和开发日志记录。
第二步 检查安装
- 检查Nodeos是否正在产生块
tail -f nodeos.log # ctrl + c 关闭日志
会看到以下输出
1929001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366974ce4e2a... #13929 @ 2018-05-23T16:32:09.000 signed by eosio [trxs: 0, lib: 13928, confirmed: 0] 1929502ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366aea085023... #13930 @ 2018-05-23T16:32:09.500 signed by eosio [trxs: 0, lib: 13929, confirmed: 0] 1930002ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366b7f074fdd... #13931 @ 2018-05-23T16:32:10.000 signed by eosio [trxs: 0, lib: 13930, confirmed: 0] 1930501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366cd8222adb... #13932 @ 2018-05-23T16:32:10.500 signed by eosio [trxs: 0, lib: 13931, confirmed: 0] 1931002ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366d5c1ec38d... #13933 @ 2018-05-23T16:32:11.000 signed by eosio [trxs: 0, lib: 13932, confirmed: 0] 1931501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366e45c1f235... #13934 @ 2018-05-23T16:32:11.500 signed by eosio [trxs: 0, lib: 13933, confirmed: 0] 1932001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366f98adb324... #13935 @ 2018-05-23T16:32:12.000 signed by eosio [trxs: 0, lib: 13934, confirmed: 0] 1932501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 00003670a0f01daa... #13936 @ 2018-05-23T16:32:12.500 signed by eosio [trxs: 0, lib: 13935, confirmed: 0] 1933001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 00003671e8b36e1e... #13937 @ 2018-05-23T16:32:13.000 signed by eosio [trxs: 0, lib: 13936, confirmed: 0] 1933501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000367257fe1623... #13938 @ 2018-05-23T16:32:13.500 signed by eosio [trxs: 0, lib: 13937, confirmed: 0]
如果报错
database dirty flag set (likely due to unclean shutdown): replay required
执行
rm -rf ~/.local/share/eosio/nodeos/ rm -rf ~/.local/share/eosio/nodeos/data rm nodeos.log
重新执行
tail
命令- 检查钱包
<br> 打开shell并运行cleos命令列出可用的钱包。
cleos wallet list
可以看到空钱包回复
Wallets: []
- 检查nodeos端点
这将检查RPC API是否正常工作,选择一个。
- 检查浏览器中
get_info
提供的端点chain_api_plugin
:
http:// localhost:8888 / v1 / chain / get_info - 检查相同的事情,但在主机的控制台中进行
curl http://localhost:8888/v1/chain/get_info
创建开发钱包
钱包是公钥-私钥对的存储库。需要私钥来签署区块链上的操作。
创建电子钱包
使用下面的命令来创建一个默认的钱包。
<br>有两种方式:- --to-console 钱包密码会显示在bash历史记录中
- --to-file 钱包密码不会记录在bash的历史记录中
# 1 cleos wallet create --to-console # 2 cleos wallet create --to-file
关于钱包
关于钱包的加密货币中常见的误解是它们存储令牌。钱包不存储令牌。钱包的作用是将私钥存储在加密文件中并签署交易。
<br> 用户通常通过接口构建事务对象,将该对象发送到要签名的钱包,然后钱包返回具有签名的该事务对象,然后该签名被广播到网络。当/如果网络确认交易有效,则将其包含在区块链的块中打开钱包
默认情况下,在启动
keosd
实例时关闭钱包,开始运行以下内容cleos wallet open
运行以下命令返回钱包列表
cleos wallet list
解锁钱包
# 会提示输入密码,把之前的私钥复制粘贴回车 cleos wallet unlock
此时
cleos wallet list
可以看到Wallets: [ "default *" ] # (*)标识已经解锁
将密钥导入钱包
生成一个私钥,
cleos
有一个辅助函数,只需运行以下命令即可cleos wallet create_key # 返回类似 # Created new private key with a public key of: "EOS8PEJ5FM42xLpHK...X6PymQu97KrGDJQY5Y"
导入开发密钥
cleos wallet import # 输入:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
创建账户
什么是账户?
帐户是一组授权,存储在区块链中,用于标识发件人/收件人。它具有灵活的授权结构,使其可以由个人或一组个人拥有,具体取决于如何配置权限。需要一个帐户才能发送或接收有效的 交易
到区块链。本系列教程使用两个“用户”账户,bob并alice,以及默认eosio的配置账号。此外,本系列教程还介绍了各种合同。
第一步 创建测试账户
使用
cleos create account
创建两个账户cleos create account eosio bob EOS837KGQoU5yMv6izqZWmMt37mBX5oDXKK2XAQrQoobUqaYj28Fw cleos create account eosio alice EOS837KGQoU5yMv6izqZWmMt37mBX5oDXKK2XAQrQoobUqaYj28Fw
疑问:
创建了多个账户,当期操作cleos的是具体的某一位吗?
如何查看当前账户?账户里面的密钥对是什么意思?
-
执行
rm -rf ~/.local/share/eosio/nodeos/
rm -rf ~/.local/share/eosio/nodeos/data
rm nodeos.log重新执行tail命令
这里第一条不需要呀朋友
-
@yuxuan 妙
-
小泥泥写的真好