UOS的共識節(jié)點(diǎn),獎(jiǎng)池有三個(gè):uosio.bvpay、uosio.bpay 、uosio.vpay
他們之間的關(guān)系是,uosio.bvpay是獎(jiǎng)池源頭,uosio.bpay是出塊獎(jiǎng)池,uosio.vpay是投票獎(jiǎng)池。

uosio.bvpay獎(jiǎng)池源獎(jiǎng)金的0.8將會(huì)進(jìn)入出塊獎(jiǎng)池,獎(jiǎng)池源的0.2將會(huì)進(jìn)入投票獎(jiǎng)池。
查看總獎(jiǎng)池:
cluos --url http://rpc.uos.iccob.com:9008 get table uosio.bvpay uosio.bvpay bpvtpay
{
"rows": [{
"id": 0,
"start_line": 1554185715,
"laster_line": 1554340049,
"dead_line": 1556777715,
"inherit": "0.0000 UOS",
"quantity": "244518.9665 UOS"
},{
"id": 1,
"start_line": 1556777715,
"laster_line": 1556777715,
"dead_line": 1559369715,
"inherit": "0.0000 UOS",
"quantity": "0.0000 UOS"
}
],
"more": false
}
curl命令:
curl --request POST \
--url http://rpc.uos.iccob.com:9008/v1/chain/get_table_rows \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"code":"uosio.bvpay","table":"bpvtpay","scope":"uosio.bvpay","json": true}'
id = 0代表當(dāng)前獎(jiǎng)勵(lì)周期,id = 1代表下一次獎(jiǎng)勵(lì)周期,周期長度為30天。
假如現(xiàn)在的時(shí)間戳在周期0內(nèi),那么bp發(fā)起一次領(lǐng)獎(jiǎng),能領(lǐng)取多少錢呢?
假設(shè)為領(lǐng)取時(shí)刻為t,則獎(jiǎng)池源發(fā)放的獎(jiǎng)金為:
out_all = (t - laster_line_0) * quantity_0 * 10000 / (dead_line_0 - laster_line_0); (1)
獎(jiǎng)金會(huì)分為兩部分流入uosio.bpay與uosio.vpay。其中,0.8*out_all 進(jìn)入uosio.bpay,0.2進(jìn)入uosio.vpay。
查看系統(tǒng)合約global參數(shù):
cluos --url http://rpc.uos.iccob.com:9008 get table uosio uosio global
{
"rows": [{
"max_block_net_usage": 2097152,
"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": 450000,
"target_block_cpu_usage_pct": 1000,
"max_transaction_cpu_usage": 150000,
"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,
"max_ram_size": "8589934592",
"total_ram_bytes_reserved": "4607367427",
"total_ram_stake": "57844214019",
"last_producer_schedule_update": "2019-04-04T05:46:45.000",
"last_pervote_bucket_fill": "1554340049000000",
"pervote_bucket": 27244585,
"perblock_bucket": 100966841,
"total_unpaid_blocks": 183296,
"total_activated_stake": "29178000000",
"thresh_activated_stake_time": "1548746649000000",
"last_producer_schedule_size": 12,
"total_producer_vote_weight": "28178000000.00000000000000000",
"last_name_close": "2019-04-03T10:10:13.000"
}
],
"more": false
}
curl命令:
curl --request POST \
--url http://rpc.uos.iccob.com:9008/v1/chain/get_table_rows \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"code":"uosio","table":"global","scope":"uosio","json": true}'
里面有4個(gè)參數(shù)與獎(jiǎng)勵(lì)有關(guān)
"pervote_bucket": 27244585 --- 當(dāng)前投票獎(jiǎng)勵(lì)資金池
"perblock_bucket": 100966841?。‘?dāng)前塊獎(jiǎng)勵(lì)資金池
"total_unpaid_blocks": 183296 --- 當(dāng)前未結(jié)算的區(qū)塊數(shù)
"total_producer_vote_weight": "28178000000.00000000000000000"?。‘?dāng)前投票總量
下面查看bp的具體情況,以“uoskkkkonebp”為例:
cluos --url http://rpc.uos.iccob.com:9008 get table -l 1 -L uoskkkkonebp --index 1 uosio uosio producers
{
"rows": [{
"owner": "uoskkkkonebp",
"total_votes": "1000000000.00000000000000000",
"producer_key": "UOS8VjUQXSovjJ5LuubcAUK9r5LYda7j5dLTJcfrBHm6VSP2L3d8Y",
"is_active": 1,
"is_remove": 0,
"release": 0,
"url": "https://uoskkkkonebp.com/chain",
"unpaid_blocks": 7577,
"last_claim_time": "1554259259000000",
"location": 0,
"ulord_addr": "UWKPFY3dVd1z5zHancEFLy2XYpawbZWHNn"
}
],
"more": true
}
curl:
curl --request POST \
--url http://rpc.uos.iccob.com:9008/v1/chain/get_table_rows \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"code":"uosio","table":"producers","scope":"uosio","json": true , "index_position":"primary","limit":1 , "lower_bound":"uoskkkkonebp"}'
uoskkkkonebp的獲得票數(shù)為1000000000.00000000000000000,未結(jié)算的生產(chǎn)區(qū)塊數(shù)量為7385,最后一次領(lǐng)取獎(jiǎng)勵(lì)的時(shí)間戳為:1554259259000000
那么如果t時(shí)刻(t > 1554259259000000 + 3600)
uoskkkkonebp能領(lǐng)取出塊的獎(jiǎng)勵(lì)為m,則:
m = (out_all*0.8 + perblock_bucket)*unpaid_blocks / total_unpaid_blocks (2)
uoskkkkonebp能領(lǐng)取的投票獎(jiǎng)勵(lì)為n,則:
n= (out_all*0.2 + pervote_bucket)*total_votes / total_producer_vote_weight (3)
注:當(dāng)n >= 100 0000時(shí),即投票獎(jiǎng)勵(lì)大于100UOS,n才有效,否則不會(huì)發(fā)放投票獎(jiǎng)勵(lì)
uoskkkkonebp能夠領(lǐng)取的總獎(jiǎng)勵(lì)為:m+n ,由(1)、(2)、(3)式可算出,注意最后得到的單位是“分”,要轉(zhuǎn)化為"元",需要除以10000.
總結(jié):
從(1)式可以看出,總獎(jiǎng)池放出量在一個(gè)周期內(nèi)是均勻的,但是由于每個(gè)bp領(lǐng)取的時(shí)間點(diǎn)不同,每個(gè)人計(jì)算得到的獎(jiǎng)勵(lì)是不同的。