3.02 EOS核心框架
阿新 • • 發佈:2018-12-07
1.EOS核心框架介紹
- 架構圖
- EOSIO程式模組圖
2.區塊結構
- Merkel Tree:比較兩個節點資料是否同步,直接比較樹根是否一樣就可以,EOS節點資料是用Merkel Tree組織的
- 如果2個節點比較不一樣,可以快速查詢樹中哪個節點不一樣,能快速定位修改
- 互相驗證時,密碼學中叫零知識證明,比較Merkel Tree是否相同就可以
- EOS通過Merkle Tree做驗證,成本比比特幣低的多
- 定義區塊的檔案位置:eos\libraries\chain\include\eosio\chain\block_header.hpp
struct block_header { //時間戳 block_timestamp_type timestamp; //哪個超級節點生產的區塊 account_name producer; //確認節點的數量 //預設自己是確認的 //達到15就是21節點的一多半,就不可逆了 uint16_t confirmed = 1; //指向前一個區塊 block_id_type previous; //EOS包含了兩個Merkel Tree的根 checksum256_type transaction_mroot; checksum256_type action_mroot; //版本號 uint32_t schedule_version = 0; //下一個producer是誰 optional<producer_schedule_type> new_producers; //擴充套件欄位 extensions_type header_extensions; //指紋資訊 digest_type digest()const; block_id_type id() const; uint32_t block_num() const { return num_from_id(previous) + 1; } static uint32_t num_from_id(const block_id_type& id); };
3.區塊結構並行化設計
- EOS目標是使兩個賬戶能夠在同一個區塊內來回進行交換的操作,不必為每次操作都等待0.5秒
- 只讀操作可以並行處理,寫操作必須序列
- 允許多賬戶之間原子交易執行
- 超級節點自主優化並行排程