一、EOS环境搭建和启动节点
1、EOS下载和编译
下载编译大概1到3个小时不等,要求有8G内存的机器。
git clone https://github.com/EOSIO/eos--recursive
2、EOS应用程序
cleos : 一个命令行接口,对接nodeos和keosd;
Nodeos : EOS节点启动命令;
Keosd : 钱包管理服务,可以以为是一个轻客户端,无需挖矿。
3、节点启动
cd build/programs/nodeos
./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
二、EOS的钱包,账号和许可
EOS创建和管理账号
账户:保存在区块链上的人类可读的标志符
$ cleos reate account ${authorizing_account} ${new_account} ${owner_key} ${active_key}
authorizing_account : 是用来创建新账号的账号名称
new_account :新创建的账号
Active_key :分配给新账号的Owner认证的公钥
Owner_key :分配给新账号的action认证的私钥
账号名称的命名规则:1、小于13个字符;2、仅包含这些字符:12345abcd...xyz
我们在创建账号的过程中,就把一组秘钥和账号的某个认证关联起来了。需要记得你的秘钥和认证之间的关联。Owner的秘钥等同于你账号的所有控制权限,而action密钥掌握了你账号的资金访问权限。
permission : 许可,是一个操作允许的权限。
Threshold : 是某个许可需要的阈值,必须达到阈值才可以执行相应的操作。
weight 是一个账号对于某个许可所拥有的权重
只有一个用户的权重大于等于一个许可的阈值才可以进行该许可下的操作。
例子:
Owner的阈值为2,bob和stracy各自拥有1个权重,两个人联合签名可以达到2个权重来执行Owner相关的操作。
Active的阈值为1,所以bob和stracy都可以单独来进行action相关的操作。
Publish是一个定制化的许可,比如它可能是一个发布的博客许可。它的阈值为2,bob和stracy在Publish这个许可中都有2个权重,所以bob和stracy都可以有Publish的许可。
三、EOS智能合约
1、Action和Transaction
Action是对智能合约中某个函数的调用;
Transaction是一个或多个Action的组合。
2、合约部署
四、EOS智能合约的RPC接口
RPC接口文档
https://eosio.github.io/eos/group__eosiorpc.html
五、搭建单主机多节点的网络
六、多节点搭建过程
启动第一个节点
启动第二个节点
七、EOS投票过程
不同角色:
Producer: 生产者
Voter: 投票者,可以进行投票
proxy: 代理,代理的作用就是替别人做出选择投票,本身不需要抵押
投票流程:押注->投票
八、创建EOS代币
1、创建eosio.token账号(由于eosio.system已经没有发布代币的操作了,所有创建和发放代币只能通过eosio.token合约)
九、碰到的一些问题和解决方案
解决方案:
1、先创建账号,再做其他的操作。
2、在加载system账号之后,运行"buyram操作"。