馬蹄鏈佛薩奇系統開發2.0佛薩奇系統開發原始碼部署

Tg_StPv888發表於2023-02-28

  From a technical perspective,blockchain has entered the stage of platform-based,component-based and integrated development from the initial technological exploration.It is mainly reflected in the following aspects:First,the platform promotes the formation of urban chain network.City chains such as Chang'an Chain,Shuxin Chain and Haihe Chain have emerged in succession.After the city chains are interconnected,they will form a city chain network to support a larger scale of application scenarios


  區塊鏈將與大資料、雲端計算、人工智慧等新一代資訊科技深度融合,實現資料和資產價值的最/大/化。在平臺化、元件化和整合化發展的過程中,將形成圍繞區塊鏈的數字科技體系和資訊科技服務體系,更大規模的創新應用場景落地實現獲得支撐,數字產業化的新格局加速形成。


  native.hpp的區塊頭結構體。


  時間戳,uint32_t型別


  生產者,name型別


  confirmed,已確認數,uint16_t,初始化為0。


  前一個區塊的hash,是capi_checksum256型別的


  事務Merkle樹根,Merkle數的內容請點選以及點選。概況來講,是為了校驗區塊內打包的事務的真偽以及完整性的。


  action的merkle樹根,,校驗區塊內所有action的真偽以及完整性。


  計劃版本,schedule_version,uint32_t型別,初始化為0。


  後續計劃出塊者。producer_schedule型別。


  producer_schedule


  定義在librarieseosiolibproducer_schedule.hpp。該結構體定義了有效生產者集合的出塊順序、賬戶名以及簽名金鑰。


  struct producer_schedule{


  //時間計劃的版本號,按順序遞增。


  uint32_t version;


  //此計劃的生產者列表,包括其簽名金鑰


  std::vector<producer_key>producers;


  };案例及設計:StPv888


  陌生的部分是producer_key,該結構體定義在librarieseosiolibprivileged.hpp,是用來對映生產者及其簽名金鑰,用於生產者計劃。


  struct producer_key{


  name producer_name;


  //此生產者使用的區塊簽名金鑰


  public_key block_signing_key;


  //過載運運算元小於號,producer_key的兩個物件進行小於號比較時,返回的是其name型別的生產者賬戶的比較。


  friend constexpr bool operator<(const producer_key&a,const producer_key&b){


  return a.producer_name<b.producer_name;


  }


  EOSLIB_SERIALIZE(producer_key,(producer_name)(block_signing_key))


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2937362/,如需轉載,請註明出處,否則將追究法律責任。

相關文章