摘要:在对一个交易进行签名时,与之间会发生交互。钱包通过将锁定的键值本地化存储的方式,实现以安全的方式活动签名。表示已解锁,创建一个钱包默认是解锁状态钱包必须是状态。自定义命名权限这些权限可用于进一步扩展帐户管理。
account 介绍
帐户是授权的集合,存储在区块链上,用于标识发送方/接收方。它具有灵活的授权结构,允许根据权限的配置方式由个人或一组个人拥有。向区块链发送或接收有效交易需要一个帐户。nodeos管理着在区块链上发布账户以及与账户相关联的行为。我们通过cleos与nodeos的交互,来实现账户的管理。
每个account都有2个默认的命名权限。开发者可以自定义命名权限。每个命名权限都有一个阈值,必须满足该阈值才能认为在该权限下签名 的事务是有效的。
交易是通过使用一个客户端来签名的,该客户端拥有一个加载和解锁的钱包。
$ cleos create accountwallet 介绍
keosd管理钱包。钱包用来管理key pairs。主要是用来存放私钥的不是用来存钱的,有了私钥可以生成公钥。
在对一个交易进行签名时,nodeos与keosd之间会发生交互。钱包通过将锁定的键值本地化存储的方式,实现以安全的方式活动签名。cleos作为一个中介,实现keosd(从本地获取)键值到nodeos使用这些键进行账户(以及其他)区块链签名相关的操作。
钱包和账户之间没有直接关系,而是通过cleos进行交互。
创建的钱包默认是解锁状态,当我们钱包被解锁时,钱包名称后面都会标记有"*"符号。
// 展示所有open状态的钱包列表,重启keosd后,钱包默认是关闭状态。 $ cleos wallet list Wallets: [ "default *",// *表示已解锁,创建一个钱包默认是解锁状态 "periwinkle" ] // 钱包必须是unlock && open 状态。 $ cleos wallet import 5K6tXmW7FQEBWqwG9fsAAjSMLgBMMDPjqE1ATFk2HGaHWjAjsgE imported private key for: EOS7jZNeuZmqt4fAt4NLoZtLXTXDYEB3eo1QZgg7K19DKbyJaSPMr备份钱包
为防止钱包文件的损坏,一个良好的习惯是将钱包备份到一个U盘或其他媒介中去。钱包文件采用高度加密的机制,以确保其中的密码对难以访问。
$ ls -l ~/.local/share/eosio/nodeos/data/ drwxr-xr-x 2 kingnet users 4096 Apr 23 08:36 blocks -rw------- 1 kingnet users 567 Apr 23 10:37 default.wallet -rw------- 1 kingnet users 311 Apr 23 10:09 gaoyuan.wallet drwxr-xr-x 2 kingnet users 4096 Apr 23 08:36 shared_mem
如果没有配置dir-data:
genesis文件{ "initial_timestamp": "2018-03-02T12:00:00.000", "initial_key": "EOS8Znrtgwt8TfpmbVpTKvA2oB8Nqey625CLN8bCN3TEbgx86Dsvr", "initial_configuration": { "max_block_net_usage": 1048576, "target_block_net_usage_pct": 1000, "max_transaction_net_usage": 524288, "base_per_transaction_net_usage": 12, "net_usage_leeway": 500, "context_free_discount_net_usage_num": 20, "context_free_discount_net_usage_den": 100, "max_block_cpu_usage": 100000, "target_block_cpu_usage_pct": 500, "max_transaction_cpu_usage": 50000, "min_transaction_cpu_usage": 100, "max_transaction_lifetime": 3600, "deferred_trx_expiration_window": 600, "max_transaction_delay": 3888000, "max_inline_action_size": 4096, "max_inline_action_depth": 4, "max_authority_depth": 6 }, "initial_chain_id": "0000000000000000000000000000000000000000000000000000000000000000" }
tial_timestamp跟区块生产相关,后面区块生产分析时会用到这个值
initial_key是创建这个genesis的公钥,系统将会以这个公钥创建eosio这个系统账号,而系统的智能合约的核心操作都需要系统账号授权,也就是说initial key控制着eosio.system等智能合约。eosio.system智能合约控制整个系统的。比如生产者注册就必须使用eosio.system智能合约。
不同genesis文件,就代表是不同的链,这样的节点其实是不能互联的。但是由于节点服务器信息(ip, 端口)是公开的,不排除有误加的情况。所以必须有机制拒绝这样的连接,这个是连接握手节点通过检测chain_id来实现的。
producer区块生产者,一个节点生产区块有2个条件
chain-> _production_enabled==true
production_enabled=true有几种情况
config.ini和或者启动时带有enable-stale-production
区块同步完成时
节点被投票成了21个代表中的一个,且到了生产区块的turn(21个代表节点是分时生产区块的)
EOS采用的DPOS+BFT,一个节点要成为真正“生产者”,必须被系统其他节点投票出来成为21个超级节点中的一个。同时,被选择为超级节点后,也是和其他20个节点轮流生产。其实,这里存在一个生产者注册流程,也就说一个节点光配置为producer是不够的,还需要通过eosio.system智能合约注册生产者,这个操作权限只授予给了创世块的initial_key的持有人。
owner:象征着账户的所有权。只有少数事务需要此权限,但最引人注目的是owner可进行任何更改操作。一般情况下,建议将owner保存在冷钱包,不要与任何人共享。owner可以用来恢复另一个可能被破坏的权限。
active:被用来转移资金,投票给生产者和作出其他高层帐户更改。
父权限:每个权限名都有一个父权限。父母有权更改其子女的任何权限设置。
自定义命名权限:这些权限可用于进一步扩展帐户管理。自定义权限非常灵活,在实现时可以处理大量可能的用例。这在很大程度上取决于开发人员社区如何使用它们,以及采用什么约定(如果有的话)。
任何给定权限的权限都可以分配给一个或多个公钥或有效的帐户名称。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/24517.html
摘要:对于很多没有中间语言的字节码的编程语言来说,根本不存在解释执行与编译执行的选项,比如传统只能编译执行,直接将代码编译成为可执行的二进制机器码,我们电脑上文件就是编译的成果。 Daniel Larimer 在最近的博客中透露,EOS 新增了官方的 WebAssembly 解释器,用来解释执行 WebAssembly 智能合约,加上之前的编译执行,EOS 智能合约有了两种执行方式。 对于很...
摘要:最后一步付款和比特币以及以太坊不一样的是,在创建账户是有成本的,这也就是为什么我们需要一个账户才能创建账户的原因找个人来买单。 之前我们学习了如何编译EOS程序,以及如何连接到EOS主网,接下来我们要谈一谈大家最关心的,如何创建自己的EOS账户。 摘要 这篇我们会学习如何创建钱包、秘钥对、主网账户,向大家介绍一些实用工具。最重要的是,我们会学习到在EOS里,公钥和账户到底有什么区别。 ...
摘要:为了解决这个问题,采取了三步用户账户自定义分级权限。用户权限与智能合约之间的映射。图中不难看出,权限是账户最高权限,可以执行权限。如果没有发现任何符合的映射,会直接检查本次执行是否满足了权限,若不足,会检查。 到底什么叫智能合约? 名词解释:本篇文章出现很多 Action 和 Active,Action (动作)为 EOS 中账户可以接受的动作,也就是别人可以对你做什么;Active ...
摘要:以太坊项目成为第一个安装称为智能合约技术的区块链协议,允许陌生人在无信任环境中签订协议。以太坊使用的共识机制称为工作量证明,与其他流行的区块链相同,如比特币,比特币现金和莱特币。 显然,你已经听说过两个最受欢迎的智能合约区块链,但想知道EOS与以太坊之中哪个更好?或许你想比较一下两种技术?好吧,你来对了地方,因为我要告诉你你需要知道的一切! 在这个EOS vs Ethereum指南中,...
摘要:所以最简单的智能合约只需实现文件。我们看到文件中已经声明了这个,并说明了这个的李嘉图合约,大概意思是本合约的输入为一串字符,本合约意图是打印输出,没有其他效果。 Hello World! 稍微了解 EOS 系统,你就会知道 EOS 的智能合约基于 WebAssembly(WASM) 技术,这种技术在性能和跨平台兼容性之间取得了很好的平衡,通过将原始代码编译成字节码,使得代码可以在多种平...
阅读 842·2021-11-24 10:44
阅读 2777·2021-11-11 16:54
阅读 3158·2021-10-08 10:21
阅读 2064·2021-08-25 09:39
阅读 2899·2019-08-30 15:56
阅读 3458·2019-08-30 13:46
阅读 3492·2019-08-23 18:09
阅读 2064·2019-08-23 17:05