EOSIO Dawn 4 0 系統合約解讀

2021-08-25 08:04:23 字數 2309 閱讀 2514

eos 的網路頻寬和計算資源是通過抵押代幣的方式獲得,如果不需要了可以解除抵押收回原先的代幣。

投票的權重和抵押代幣所獲得的頻寬和計算資源相關,抵押了越多,投票的權重越大。同時投票的權重會隨著時間的推移減少,這個設定鼓勵使用者持續更新自己的投票。

而儲存資源則ram是通過購買來得到,但是並不會消耗,當不再需要儲存資源的時候可以**。但是儲存資源相對於eos代幣的**會隨著市場對於儲存資源的需求而變動。

而這些功能都是在 eosio.system 這個智慧型合約中實現。

本文試圖通過分析 eosio.system 中所有的功能函式來解讀 eos 系統功能。

在 eosio.system.hpp 標頭檔案中包含以下函式宣告:

void onblock( block_timestamp timestamp, account_name producer );

void delegatebw( account_name from, account_name receiver,asset stake_net_quantity, asset stake_cpu_quantity, bool transfer );

delegatebw 函式用來實現抵押代幣獲取 cpu 和net頻寬資源。引數定義:

void undelegatebw( account_name from, account_name receiver,asset unstake_net_quantity, asset unstake_cpu_quantity );
解除抵押之後,資源會馬上釋放,同時投票權重也相應消失。但是代幣需要等待一定時間才能回到賬號裡,目前的設定是3天。

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

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

這兩個函式的作用是購買儲存資源,區別是買特定數量的代幣還是買特定大小的內容。引數定義:

void sellram( account_name receiver, int64_t bytes );
sellram函式功能是**不需要的儲存資源。引數定義:

**後資源會馬上釋放,收入的代幣也會馬上入賬。

void refund( account_name owner );
refund 函式 在 undelegatebw 函式解除抵押後呼叫,作用是把抵押的代幣退回賬戶。

void regproducer( const account_name producer, const public_key& producer_key, const std::string& url, uint16_t location );
regproducer 函式的作用是註冊成為超級節點候選人。引數定義:

註冊成為候選人後就可以接受使用者的投票了。

void unregprod( const account_name producer );
unregprod 函式的作用的取消成為候選人。

void setram( uint64_t max_ram_size );

void voteproducer( const account_name voter, const account_name proxy, const std::vector& producers );

voteproducer 函式的作用是投票。引數定義:

有兩種投票模式,**模式和直接投票模式。**模式是將投票權重委託給乙個**人,讓他幫你投票。直接投票模式就是直接投票給你信任的超級節點,最多30個。

void regproxy( const account_name proxy, bool isproxy );
regproxy 函式的作用是註冊成為**人,接受其他使用者的委託。

void claimrewards( const account_name& owner );
claimrewards 函式的作用是支付超級節點的獎勵。

void setpriv( account_name account, uint8_t ispriv );
開發者可以通過 cleos system 子命令來測試這些功能。

如果要加入乙個測試網路成為出塊人,步驟應該是這樣:

機房收費系統合作版總結

歷時10多天的合作版機房收費系統終於要結束了。這次的合作開發機房收費系統是我學習軟體程式設計以來的第一次,所以,其中的感受也是頗多的。技術 既然是軟體開發,那就先從技術方面說起吧。以前總認為幾個人在一起合作開發一款軟體是一件很容易的事情。畢竟就那麼三兩個人,所以困難應該沒那麼多。可是,到了真正一起合...

《機房收費系統合作版》驗收感受

這次驗收,在巨集觀上,公尺老師給了很大的指導。在自己家門裡學習東西也要像在公司給別人做東西一樣,任何程式都不能忽視。這次驗收讓我想到了周洲師姐csdn上的標語 欲戴王冠,必承其重。uml圖是統一建模語言,是我們行軍打仗的圖紙。在 機房收費系統合作版 中,我們兩個人或者三個人合作,必須有統一的標準,用...

機房收費系統合作版(七) 總結

歷經許很多多的磨難機房收費系統合作版最終告一段落了。在機房收費系統中的收穫我不能說自己收穫的太少了。由於相比之前不論什麼乙個階段的學習,這個階段是我收穫的最多,感悟最多的乙個階段。技術 初識框架,對它有一種莫名的好感,非常是喜歡。也從這個好框架中感受到了自己的與xs,lsh他們的差距。他們是搭這個架...