EOS系列 - 超級節點(BP)列表更新流程

eos定時更新BP列表的流程:

步驟一: nodeos出塊時調合約內的方法:

  • nodeos

    on_block_act.name = N(onblock);
    
    eos_abi.structs.emplace_back( struct_def {
             "onblock", "", {
                {"header", "block_header"}
          }
       });
    
    eos_abi.actions.push_back( action_def{name("onblock"), "onblock",""} );
    
  • contract

     [[eosio::action]]
             void onblock( ignore<block_header> header );
    

步驟二: BP合約內容更新時 回調nodeos本地函數接口

onblock合約方法內定時(1分鐘)調合約

update_elected_producers()

決定出最新的21個BP後, 再設置回nodeos接口(中間需要通過cdt的過度,函數名一樣)

set_proposed_producers()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章