- 浏览: 768079 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
eosio.system智能合约可以进行很多系统级别的操作,system合约的所有人是eosio帐户.通过eosio.msig多签名,参与者为所有的生产者,执行的操作是setcode将eosio账户的code设置为./fast.refund/eosio.system/eosio.system.wast.生产者参与审批提案,通过后执行提案,执行成功以后,system合约即被处理完毕.
1.用户抵押Token,从而获得投票给区块生产者,通过抵押Token还可以获得社区提案(worker proPoSal)的权利
2.设置代理,把自己掌握的投票权移交给其他用户
3.抵押Token,从而获得相应的网络带宽,存储空间,运算能力
native.cpp:对创建的新账户进行可行性验证.在创建新用户时调用此类,用来约束新账户的命名.
1.在账户创建的时候不可以包含special的字符,同时规定账户的名称在12个字符以内,防止账户重复
2.新账户必须包含最少数量的代币(在系统参数中设置),因此,此方法将从接收器newaccount中执行内联buyram操作,购买ram的费用相当于当前新账户创建费用的金额
delegeate_bandwith.cpp:主要是与资源相关的东西
1.delegatebw(account_name from,account_name receiver,asset stake_net_quantity,asset stake_cpu_quantity,bool transfer):是用来通过抵押Token来获取网络和CPU资源
a.其中account_name from:是Token的抵押者
b.account_name receiver:是Token的接收者(表示抵押获取的资源作用在这个账号上)
c.asset stake_net_quantity:网络资源所应抵押代币的数量
d.asset state_cpu_quantity:CPU资源所应抵押代币的数量
e.transfer:指的是交易进行的状态
2.undelegatebw(account_name from,account_name receiver,asset stake_net_quantity,asset stake_cpu_quantity,bool transfer):是用来取消抵押,释放网络和CPU资源,收回代币,对应的参数与上面的相同,但是一旦account_name from取消抵押后,其会失去投票权,解除抵押之后,资源会马上释放,同时投票权重也相应消失
3.buyram(account_name payer,account_name receiver,asset quant):取消抵押之后,代币需要等待一定时间才能回到账号里,buyram是用来购买指定价值内存时调用的
a.account_name payer:是购买者
b.account_name receiver:是内存接收者
c.quant:是用来购买内存所用的代币
4.buyrambytes(account_name payer,account_name receiver,uint32_t bytes):购买指定大小的内存,支付的EOS会以当前市场价格计算
5.sellram(account_name account,int64_t bytes):出售不需要的存储资源
6.refund:函数在通过undelegatebw函数解除抵押后调用,作用是把抵押的代币(Token)退回账户,退回账户大约有三天的等待期
voting.cpp:主要包含与投票相关的action
1.regproducer(const account_name producer,const eosio::public_key& producer_key,const std::string& url,uint16_t location):用来注册生产者,也就是EOSIO中的超级节点候选人
a.url:候选节点的网站地址
b.location:候选节点的地理位置
2.unregprod(const account_name producer):取消成为候选人账户的注册
3.voteproducer(const account_name voter_name,const account_name proxy,const std::vector<account_name>& producers):对帐户进行投票
a.代理模式:将投票权重委托给一个代理人,让他帮忙投票
b.直接投票:一个帐户可以投给一个或者多个生产者,最多30个
4.regproxy(const account_name proxy,bool isproxy):注册成为投票代理人,代理人接受其他用户的委托.需要注册的是:已经使用了代理的投票者,不能注册成为投票代理人
5.update_elected_producers:就是用这个函数来选出EOSIO项目中的21个超级节点,这里是根据投票数由高到低选出21个区块生产者,并在一定的时间间隔内更新这些数据
producer_pay.cpp:用来计算生产者节点收益的相关代码
1.onblock:用来计算一些遗漏的区块,更新指定生产者的区块信息
2.claimrewards:用来计算生产者生产的区块数量,计算每个块的收益,计算根据生产者的生产时间,计算每秒收益,计算生产者从每次投票中获得的收益等,综合以上的收益来计算出生产者的总收益
测试步骤:
1.首先注册账号,同时启动节点与主网同步区块
2.注册账号成为候选人参加竞选
3.再次抵押自己的代币来获取资源的投票的权重,目的是增加自己的话语权用来投票给自己
4.最后当自己获得足够多的票数时,等待一定的时间之后就可以成为出块人了,也就是EOSIO中的超级节点
1.用户抵押Token,从而获得投票给区块生产者,通过抵押Token还可以获得社区提案(worker proPoSal)的权利
2.设置代理,把自己掌握的投票权移交给其他用户
3.抵押Token,从而获得相应的网络带宽,存储空间,运算能力
native.cpp:对创建的新账户进行可行性验证.在创建新用户时调用此类,用来约束新账户的命名.
1.在账户创建的时候不可以包含special的字符,同时规定账户的名称在12个字符以内,防止账户重复
2.新账户必须包含最少数量的代币(在系统参数中设置),因此,此方法将从接收器newaccount中执行内联buyram操作,购买ram的费用相当于当前新账户创建费用的金额
delegeate_bandwith.cpp:主要是与资源相关的东西
1.delegatebw(account_name from,account_name receiver,asset stake_net_quantity,asset stake_cpu_quantity,bool transfer):是用来通过抵押Token来获取网络和CPU资源
a.其中account_name from:是Token的抵押者
b.account_name receiver:是Token的接收者(表示抵押获取的资源作用在这个账号上)
c.asset stake_net_quantity:网络资源所应抵押代币的数量
d.asset state_cpu_quantity:CPU资源所应抵押代币的数量
e.transfer:指的是交易进行的状态
2.undelegatebw(account_name from,account_name receiver,asset stake_net_quantity,asset stake_cpu_quantity,bool transfer):是用来取消抵押,释放网络和CPU资源,收回代币,对应的参数与上面的相同,但是一旦account_name from取消抵押后,其会失去投票权,解除抵押之后,资源会马上释放,同时投票权重也相应消失
3.buyram(account_name payer,account_name receiver,asset quant):取消抵押之后,代币需要等待一定时间才能回到账号里,buyram是用来购买指定价值内存时调用的
a.account_name payer:是购买者
b.account_name receiver:是内存接收者
c.quant:是用来购买内存所用的代币
4.buyrambytes(account_name payer,account_name receiver,uint32_t bytes):购买指定大小的内存,支付的EOS会以当前市场价格计算
5.sellram(account_name account,int64_t bytes):出售不需要的存储资源
6.refund:函数在通过undelegatebw函数解除抵押后调用,作用是把抵押的代币(Token)退回账户,退回账户大约有三天的等待期
voting.cpp:主要包含与投票相关的action
1.regproducer(const account_name producer,const eosio::public_key& producer_key,const std::string& url,uint16_t location):用来注册生产者,也就是EOSIO中的超级节点候选人
a.url:候选节点的网站地址
b.location:候选节点的地理位置
2.unregprod(const account_name producer):取消成为候选人账户的注册
3.voteproducer(const account_name voter_name,const account_name proxy,const std::vector<account_name>& producers):对帐户进行投票
a.代理模式:将投票权重委托给一个代理人,让他帮忙投票
b.直接投票:一个帐户可以投给一个或者多个生产者,最多30个
4.regproxy(const account_name proxy,bool isproxy):注册成为投票代理人,代理人接受其他用户的委托.需要注册的是:已经使用了代理的投票者,不能注册成为投票代理人
5.update_elected_producers:就是用这个函数来选出EOSIO项目中的21个超级节点,这里是根据投票数由高到低选出21个区块生产者,并在一定的时间间隔内更新这些数据
producer_pay.cpp:用来计算生产者节点收益的相关代码
1.onblock:用来计算一些遗漏的区块,更新指定生产者的区块信息
2.claimrewards:用来计算生产者生产的区块数量,计算每个块的收益,计算根据生产者的生产时间,计算每秒收益,计算生产者从每次投票中获得的收益等,综合以上的收益来计算出生产者的总收益
测试步骤:
1.首先注册账号,同时启动节点与主网同步区块
2.注册账号成为候选人参加竞选
3.再次抵押自己的代币来获取资源的投票的权重,目的是增加自己的话语权用来投票给自己
4.最后当自己获得足够多的票数时,等待一定的时间之后就可以成为出块人了,也就是EOSIO中的超级节点
发表评论
-
eos快照
2019-10-06 08:31 381快照:为区块链提供临时 ... -
eos待确认/分叉库
2019-10-05 08:32 251fork_database:管理了轻量级状态数据,是由未确认的 ... -
eos controller概述
2019-10-03 17:28 292EOS中的模型层是blocks.log和基于chainbase ... -
eos multi_index
2019-10-03 09:01 282EOS的数据库就是chainbase,而调用数据库服务的C++ ... -
eos chainbase状态库
2019-10-01 08:03 431chainbase:是一个快速包含 ... -
eos action
2019-09-28 17:18 182action:在EOS中,action被分配到对应程序(一般是 ... -
eos事务结构
2019-09-28 16:34 394transaction_header:事务头的数据大小是固定的 ... -
eos区块头结构
2019-09-28 08:54 283block_header:区块头 struct block ... -
eos rpc set
2019-09-26 19:27 281set contract:设置合约 xjdeMacBook- ... -
eos rpc create
2019-09-26 19:18 2551.创建公私钥对 xjdeMacBook-Pro:safeco ... -
EOS blocks.log
2019-09-26 07:40 368区块数据通过blocks.log与blocks.index持久 ... -
引用区块
2019-09-25 07:26 309trx.set_reference_block(ref_blo ... -
EOS事务
2019-09-24 07:36 347调用函数add_standard_transaction_op ... -
全节点搭建
2019-09-22 09:34 2631.通过system regproducer命令可将普通账户注 ... -
eos名词解释
2019-09-14 09:34 6541.Authority:权力,要与Permission做好区分 ... -
智能合约依赖库
2019-08-29 07:32 364Action:这部分定义了查询或发送action的API.在E ... -
eos_rpc_system资源获取
2019-08-21 07:39 370资源主要有CPU,net bandwidt ... -
eos_rpc_sign
2019-08-21 07:22 243sign [OPTIONS] transaction:完成EO ... -
eos_rpc_wallet
2019-08-20 07:31 3151.wallet create [OPTIONS]:创建一个新 ... -
eos_rpc_get
2019-08-18 08:38 2901.get info:通过指定全节点API接口获取其连接的EO ...
相关推荐
在你提供的资料中,提到了一个名为“为apk签android.uid.system名工具包”,这个工具包包含三个关键文件:signapk.jar、platform.x509.pem和platform.pk8,它们是用来将APK签署为具有`android.uid.system`权限的工具...
系统用户界面_com.android.systemui,当您误删此文件,您的安卓手机会提示:com.android.systemui已经停止工作,此时您就需要下载此文件,重新安装即可。
Addison.Wesley.PCI.Express.System.Architecture.eBook
[操作系统概念.(操作系统恐龙书)].Silberschatz.Galvin.Operating.System.Concepts.7th.ED
[计算机科学经典著作].The.Design.Of.The.Unix.Operating.System.part2
[计算机科学经典著作].The.Design.Of.The.Unix.Operating.System.part3
The.Design.Of.The.Unix.Operating.System.part2
The.Design.Of.The.Unix.Operating.System
Windows.System.Profile.SystemId
Fundamentals of System Design Chapter 3 . Radio Architectures and Design Considerations Chapter 4 . Receiver System Analysis and Desig Chapter 5 . Transmitter System Analysis and Design
ARM.System.Developer 's.Guide..Designing.and.Optimizing.System.Software 在Elservier注册注册才能下载,我放这边,方便需要的朋友
[计算机科学经典著作].The.Design.Of.The.Unix.Operating.System.part1
.system_android_l2
360Amigo 专业版,比Free版更自由好用。后继版本精简了实用的功能,所以老用户不必再升级了。这个版本是含注册码的。好不容易在国外的网站上找到的,跟大家分享。
在Android系统中,"system.new.dat.br" 和 "system.new.dat" 文件是刷机过程中常见的文件格式,尤其在MIUI等定制系统中尤为常见。这些文件通常包含系统的核心组件和应用,是Android设备升级或恢复时的重要部分。本文...
digilent.adept.system_v2.9.4
The.Design.Of.The.Unix.Operating.System(130M)
EOS提供了一个名为`eosio.bios`的合约,它是系统启动时运行的第一个合约,负责初始化系统账户和设置基本规则。合约代码通常存储在`eos/contracts`目录下。我们使用`./cleos set contract`命令来部署`eosio.bios`合约...
Packt.Android.System.Programming.2017
官网最新版adept。版本为digilent.adept.system_v2.16.4.exe