TMT观察网_独特视角观察TMT行业

淺析EOS系統(tǒng)資源區(qū)塊鏈

巴比特資訊 2018-07-02 06:35
分享到:
導(dǎo)讀

在EOS資源分配的核心思想中,token代表系統(tǒng)資源的使用權(quán)。EOS用戶或者DAPP開發(fā)者需要購買token,并將其抵押到EOS的系統(tǒng)賬戶,用以獲取網(wǎng)絡(luò)帶寬資源和CPU計(jì)算資源的使用權(quán)。

EOS系統(tǒng)中的資源類型

在EOS資源分配的核心思想中,token代表系統(tǒng)資源的使用權(quán)。EOS用戶或者DAPP開發(fā)者需要購買token,并將其抵押到EOS的系統(tǒng)賬戶,用以獲取網(wǎng)絡(luò)帶寬資源和CPU計(jì)算資源的使用權(quán)。EOS系統(tǒng)中有5類重要的資源:

1、  網(wǎng)絡(luò)帶寬資源

2、  CPU計(jì)算資源

3、  內(nèi)存資源

4、  存儲資源

5、  投票資源

網(wǎng)絡(luò)帶寬資源

1、什么是帶寬資源

用戶發(fā)送一筆交易信息后,區(qū)塊生產(chǎn)者需要將交易打包生成區(qū)塊,然后將區(qū)塊通過網(wǎng)絡(luò)同步給其它生產(chǎn)者,這個(gè)過程需要消耗一定網(wǎng)絡(luò)帶寬資源。而帶寬資源的計(jì)量方式為,交易信息在區(qū)塊中所占的字節(jié)數(shù),比如,一條交易信息占用100字節(jié),如果用戶進(jìn)行10筆交易的話,大概需要100 * 10 = 1KB。帶寬資源的計(jì)費(fèi)方式類似手機(jī)流量,用戶每發(fā)送一筆交易信息就消耗一點(diǎn)帶寬資源,如果帶寬資源消耗為0,則無法繼續(xù)發(fā)送交易信息。

2、如何獲取帶寬資源

獲取帶寬資源的方式有兩種,1)如果用戶賬戶持有token,那么可以直接將 token抵押到EOS系統(tǒng)賬戶,然后,系統(tǒng)會根據(jù)抵押token所占全網(wǎng)token的比例,分配給用戶對應(yīng)的帶寬資源。比如,用戶持有1%的token,那么該用戶就擁有全網(wǎng)1%的帶寬資源。同時(shí),用戶可以取消抵押,將帶寬資源轉(zhuǎn)換為等量的token。這種帶寬獲取方式本身不會消耗token,但是,已經(jīng)抵押的token不能夠繼續(xù)抵押或者出售,抵押鎖定期至少3天。 2)如果用戶賬戶沒有token,可以從其它用戶手中租賃帶寬資源。

帶寬資源的獲取和釋放是通過系統(tǒng)智能合約完成,其中,抵押token獲取帶寬資源通過delegatebw函數(shù)實(shí)現(xiàn),取消抵押通過undelegatebw函數(shù)實(shí)現(xiàn)。如果receiver為其他人的賬戶,則表示將帶寬資源出租給其他人,否則表示自用。

在delegatebw函數(shù)中,from為抵押token的賬戶,receiver為帶寬資源的接收賬戶,如果和from參數(shù)相同,表示自用資源,否則,表示出租給其他人,stake_net_quantity表示用來抵押網(wǎng)絡(luò)帶寬資源的token數(shù)量,stake_cpu_quantity表示用來抵押CPU計(jì)算資源的token數(shù)量,transfer為TRUE表示接收賬戶可以解除抵押,為FALSE表示只有發(fā)起賬戶才能解除抵押。

void system_contract::delegatebw( account_name from, account_name receiver,

asset stake_net_quantity,

asset stake_cpu_quantity, bool transfer )

{

changebw( from, receiver, stake_net_quantity, stake_cpu_quantity, transfer);

}

抵押token的具體實(shí)現(xiàn)通過changebw函數(shù)完成。首先,更新接收方賬戶的帶寬資源,接著,設(shè)置接收方賬戶在運(yùn)行環(huán)境中資源限額,最后將token轉(zhuǎn)給eosio系統(tǒng)賬戶鎖定。

void system_contract::changebw( account_name from, account_name receiver,

const asset stake_net_delta, const asset stake_cpu_delta, bool transfer )

{

// 更新資源接受方的賬戶資源

totals_tbl.modify( tot_itr, from == receiver ? from : 0, [&]( auto& tot ) {

tot.net_weight    = stake_net_delta;

tot.cpu_weight    = stake_cpu_delta;

});

// 在運(yùn)行環(huán)境中設(shè)置接受方賬戶的資源限額

set_resource_limits(receiver,tot_itr->ram_bytes,tot_itr->net_weight.amount,tot_itr->cpu_weight.amount );

// 將token轉(zhuǎn)給eosio系統(tǒng)賬戶鎖定

INLINE_ACTION_SENDER(eosio::token, transfer)( N(eosio.token), {source_stake_from, N(active)},{ source_stake_from, N(eosio.stake), asset(transfer_amount), std::string(“stake bandwidth”) } );

}

解除抵押之后,資源會馬上釋放,但是token需要鎖定期到期后才能釋放會賬戶,目前鎖定期默認(rèn)為3天。

CPU計(jì)算資源

當(dāng)用戶調(diào)用智能合約時(shí),區(qū)塊生產(chǎn)者需要根據(jù)智能合約地址查找合約代碼,然后將代碼加載到內(nèi)存中執(zhí)行,這個(gè)過程需要消耗一定的CPU算力。CPU計(jì)算資源的計(jì)量方式為,運(yùn)行智能合約(交易也屬于智能合約的一種)所消耗的時(shí)間,用戶每次調(diào)用智能合約都會消耗一點(diǎn)計(jì)算資源,如果消耗為0則無法繼續(xù)執(zhí)行合約。 獲取計(jì)算資源的方式也是通過抵押token或者向其它用戶購買。解除抵押之后,token也需要至少鎖定3天。

RAM資源

1、什么是RAM資源

我們知道,智能合約由一系列action組成,當(dāng)用戶調(diào)用智能合約時(shí),區(qū)塊生產(chǎn)者需要為這些action創(chuàng)建一個(gè)運(yùn)行環(huán)境(也叫Action“Apply”Context),主要包括CPU計(jì)算資源和RAM內(nèi)存資源。可以看出來,RAM資源是DAPP運(yùn)行的基礎(chǔ)。

image.png

2、如何獲取RAM資源

RAM資源也是通過抵押token獲取的,但是和網(wǎng)絡(luò)帶寬資源不同的是,抵押或者解除抵押需要收取0.5%的手續(xù)費(fèi),并且獲得RAM不能出租給其他人,只能給自己使用。交易RAM通過系統(tǒng)智能合約buyram和sellram實(shí)現(xiàn),其中,buyer表示購買RAM的賬戶,receiver表示接收RAM的賬戶,tokens表示用于購買RAM的token數(shù)量。

void system_contract::buyram(account_name buyer, account_name receiver, asset tokens);

void system_contract::buyrambytes(account_name buyer, account_name receiver, uint32_t bytes);

購買RAM的流程為,從receiver賬戶扣除0.5%的交易手續(xù)費(fèi),然后,根據(jù)當(dāng)前RAM的價(jià)格,將token兌換成RAM,接著更新receiver賬戶的RAM數(shù)量,

void system_contract::buyram( account_name payer, account_name receiver, asset quant )

{

// 從receiver賬戶扣除0.5%的交易手續(xù)費(fèi)

auto fee = quant;

fee.amount = ( fee.amount 199 ) / 200; /// .5% fee (round up)

auto quant_after_fee = quant;

quant_after_fee.amount -= fee.amount;

// 根據(jù)當(dāng)前RAM的價(jià)格,將token兌換成RAM

int64_t bytes_out;

const auto& market = _rammarket.get(S(4,RAMCORE), “ram market does not exist”);

_rammarket.modify( market, 0, [&]( auto& es ) {

bytes_out = es.convert( quant_after_fee,  S(0,RAM) ).amount;

});

// 更新receiver賬戶的RAM數(shù)量

userres.modify( res_itr, receiver, [&]( auto& res ) {res.ram_bytes = bytes_out;});

}

從RAM的交易函數(shù)名稱使用“buy/sell”而不是“delegate/undelegate”,也說明了RAM資源只能買賣不能租賃。不過,RAM的買賣,實(shí)質(zhì)是發(fā)生在用戶賬戶和系統(tǒng)賬戶之間的交易行為,而不是直接的市場交易行為。

image.png

3、為什么RAM采用了不同的經(jīng)濟(jì)模型

從供給側(cè)來看,RAM的總量由超級節(jié)點(diǎn)共同投票決定,一旦確定之后,短時(shí)間內(nèi)不會發(fā)生大幅的擴(kuò)容。而RAM的需求端由DAPP市場需求決定,當(dāng)DAPP上線運(yùn)行后,會一直鎖定內(nèi)存,不會釋放,而且目前市場的RAM價(jià)格昂貴,所以,RAM會成為一種稀缺資源。相比之下,帶寬資源和CPU計(jì)算資源會隨著時(shí)間推移,由超級節(jié)點(diǎn)源源不斷的提供,所以,不具備明顯的稀缺性。

和帶寬資源的價(jià)格計(jì)算方式不同,RAM的價(jià)格采用bancor算法,其核心思想就是根據(jù)市場的供求關(guān)系決定RAM價(jià)格,買的人越多,價(jià)格越高。

image.png

那么,如何抑制早期囤積大量RAM的投機(jī)客炒作價(jià)格呢?1)大量買入RAM后,相應(yīng)的token會被鎖定,既不能流通,也不能抵押帶寬出租,將會損失EOS升值以及租賃帶來的收益。2)RAM不可以直接轉(zhuǎn)讓,必須換回token才能繼續(xù)交易,并且出售RAM需要0.5%的手續(xù)費(fèi),這意味著隨著RAM價(jià)格的升高,手續(xù)費(fèi)也會隨之增加。3)隨著內(nèi)存的價(jià)格降低,超級節(jié)點(diǎn)會提高RAM供應(yīng)量,這樣進(jìn)一步抑制了囤積RAM的獲利行為。

存儲資源

DAPP應(yīng)用需要保存大量的圖片、視頻文件,這些數(shù)據(jù)沒有直接存儲在區(qū)塊鏈中,而是通過IPFS分布式文件系統(tǒng),僅僅將文件地址保存在區(qū)塊鏈上,而文件內(nèi)容則放在更為廉價(jià)的分布式存儲上。目前這部分功能還沒有實(shí)現(xiàn)。

投票資源

1、什么是投票資源

持有token的賬戶擁有投票選舉超級節(jié)點(diǎn)的權(quán)利,相比于其它資源來說,投票資源不能為用戶產(chǎn)生直接的價(jià)值,從長期來看,投票的價(jià)值在于選舉出更有實(shí)力的超級節(jié)點(diǎn)為EOS社區(qū)服務(wù),進(jìn)一步提升EOS的影響力,而作為EOS利益共同體的用戶,也會從中受益。

2、如何進(jìn)行投票

1)token持有者需要先將手中的token抵押成網(wǎng)絡(luò)帶寬資源;

2)被抵押的token會轉(zhuǎn)換成投票數(shù)量,1個(gè)token兌換30票,可以向最多30個(gè)超級節(jié)點(diǎn)投票;

3)被抵押的token有3天的鎖定期,到期后可以解除抵押;

4)可以將投票權(quán)委托給其它代理人,負(fù)責(zé)投票過程。

image.png

向區(qū)塊生產(chǎn)者或者代理人投票的過程通過voteproducer函數(shù)完成。

void system_contract::voteproducer( const account_name voter_name, const account_name proxy, const std::vector<account_name>& producers ) {

require_auth( voter_name );

update_votes( voter_name, proxy, producers, true );

}

RAM 資源 token 賬戶 抵押
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。


專題報(bào)道

主站蜘蛛池模板: 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 撕碎机,撕破机,双轴破碎机-大件垃圾破碎机厂家 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 钢结构厂房造价_钢结构厂房预算_轻钢结构厂房_山东三维钢结构公司 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 威客电竞(vk·game)·电子竞技赛事官网 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 天品互联-北京APP开发公司-小程序开发制作-软件开发 | 咖啡加盟-咖啡店加盟-咖啡西餐厅加盟-塞纳左岸咖啡西餐厅官网 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 全钢实验台,实验室工作台厂家-无锡市辰之航装饰材料有限公司 | 空压机网_《压缩机》杂志 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 上海阳光泵业制造有限公司 -【官方网站】| 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 我爱古诗词_古诗词名句赏析学习平台 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 2-羟基泽兰内酯-乙酰蒲公英萜醇-甘草查尔酮A-上海纯优生物科技有限公司 | 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 博客-悦享汽车品质生活|