huizhiwang_EOS总结

1、性能比拼

以太坊:出块速度15秒,大约30~40TPS(交易/秒);
EOS:目标达到百万TPS
Visa:1700TPS

2、EOS特点

1)不需要每个节点都参与共识;
2)让持有EOS币的人可以通过持续的投票系统 来选择21个作为代表的超级节点;
3)比特币和以太坊中的手续费,目的是防止大量垃圾交易使得系统拥堵;EOS则通过基于膨胀的奖励机制
  (每年增发1%,总增发不超过5%)完全取消了交易手续费,那如何避免系统资源的滥用呢?见4)

4)EOS的资源使用机制:根据账户中EOS通证的数量来分配系统资源,包括CPU与带宽的抵押/赎回,内存的买卖

3、EOS包括三个组件:

nodeos:账户管理、区块生成、共识建立,启动eos节点服务,提供智能合约的运行环境。
keosd:钱包管理程序,负责钱包、密钥、账户的管理和交易的签名
cleos:与nodeos和keosd交互,命令行工具、RPC API。

4、节点服务器nodeos

1)启动:

nodeos

2)退出:

pkill nodeos或者Ctrl + C

3)运行依赖的配置文件,默认位置:

~/.local/share/eosio/nodeos/config/config.ini

5、如果nodeos没有正常关闭,那么再次启动就会提示如下错误:

error: database dirty flag set. replay required.

如果需要历史数据,可以清除节点中的可逆块,然后重放交易来重新生成,步骤:

1)rm -rf ~/.local/share/eosio/nodeos/data/blocks/reversible
2)nodeos --replay-blockchain

当然,也可以完全删除整个数据目录,如果不再需要其中的账户和交易:

rm -rf ~/.local/share/eosio/nodeos/data
nodeos

6、钱包服务器keosd

1)启动:

keosd

2)退出:

pkill keosd或者Ctrl + C

3)运行依赖的配置文件,默认位置:

~/.local/share/eosio/nodeos/config/config.ini

7、在发送交易时,用户使用私钥签名交易,然后节点使用其公钥来确认该交易来源与声称的相符。

8、钱包用来保存私钥(可多个,只存私钥,因为由私钥可推导出公钥),故另一个作用是对数据进行签名(私钥不用出钱包即可实现,安全)

9、钱包创建生成的密码要记住,后面要用它来解锁,只有解锁的钱包,才可以用来签名交易。

10、钱包的对应目录为:

~/eosio-wallet/*.wallet

若要重新创建同名钱包,需要先删除这个文件。

11、创建钱包可以使用-n选项来声明钱包的名称。

12、查看区块链统计信息

cleos get info

13、查看当前kesod管理的所有钱包:

cleos wallet list

14、钱包创建后,自动处于解锁状态(*符号),默认15分钟(900秒)内没有操作钱包会锁住Locked,重新启动keosd以后处于关闭 状态 —— Closed。

15、输入cleos wallet会提示出所有子命令

1)cleos wallet lock_all:锁定所有钱包
2)cleos wallet unlock
3)cleos wallet list
4)cleos wallet unlock -n 钱包名

16、创建一对秘钥

cleos create key

注:这会创建一个公钥、一个私钥并输出到屏幕。

17、与其他区块链不同,EOS的账户是建立在区块链上的,每个账户都对应 于链上的账户表中的一条记录;另一点区别在于,EOS的一个账户需要 两组密钥。创建一个账户:

cleos create account {创建者账户名} {新的账户名} 公钥1 公钥2

18、要创建一个账户:

1)创建两组秘钥
2)将两组私钥导入到钱包
3)导入系统账号eosio的私钥到钱包里
4)用账户eosio来创建新账户wzp并导入两组公钥

19、EOS中的账户和钱包难以理解,参照现实生活中:

EOS: 钱包 EOS账户 密钥对(公、私) 公钥 私钥 现实: 钱包 银行账户 银行卡密码 锁 钥匙 总结:用钱包创建一个账户,账户是一个数字资产的保险箱名字,然后又一对秘钥,私钥在我钱包,公钥在账户相当于这个账户的锁,我要动里面的资产,我得用私钥打开它。

20、 和通常的C++编译目标不同,EOS的编译输出是WebAssembly格式的指令模块 —— WASM模块。

21、把WebAssembly视为一种汇编语言,只是它不依赖于特定的硬件架构, 而是运行在WebAssembly虚拟机之上。

22、wasm二进制格式,wast文本格式,wast便于开发人员编辑与调试,这两种格式之间可互换。

23、命令行工具eosiocpp处理合约代码,可以编译生成wasm/wast、提取abi信息。使用-o或--outname选项,即可生成wasm模块及wast文件。

/repo/counter$ eosiocpp -o counter.wast counter.cpp`

注:只需指定输出的wast文件名,会自动生成对应的wasm模块

24、使用-g或--genabi参数来执行eosiocpp命令,就可以生成指定合约类对应的ABI接口文件。

~/repo/counter$ eosiocpp -g counter.abi counter.cpp`

25、合约只有部署到账户才可用,一个账户最多只能部署一个合约,当你将一个新的合约部署到一个账户,该账户之前部署的合约将不再可用

26、与合约交互的流程

27、每次处理nodeos分发过来的动作时,合约模块总是会重新实例化一个新的合约对象???????

28、EOS中发行代币不需要写合约,使用系统的eosio.token合约就可以,该合约提供了三个方法:create、issue和transfer分别用于代币的创建、发行与转账。实质就是操作两张多索引表:stat和accounts。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值