C語言中文網 目錄
首頁 > 區塊鏈 閱讀:109

一張圖理解EOS是什么

從比特幣到以太坊,再到 EOS,它們背后的組織漸趨復雜。比特幣處在完全自運轉的狀態。以太坊由以太坊基金會開發軟件和運轉該區塊鏈網絡。出于各種原因,EOS 顯得更為復雜。初看,它至少包括以下三個部分。
  • 第一,EOSIO 軟件。這個開源軟件是由 Block.one 公司開發的。當然嚴格來說,這是一個社區開發的開源軟件,任何人都可以參與開發、提交代碼。
  • 第二,EOS 幣(EOS 通證)。EOS 幣由 Block.one 公司在以太坊上按 ERC20 通證標準發售。按發售條款,發售獲得的 ETH 資金歸屬 Block.one 公司。歷時一年的發售于 2018 年 6 月 2 日結束,之后,EOS 幣被映射到上線的 EOS 主網上,它現在是 EOS 主網的原生數字貨幣。
  • 第三,EOS 主網。通過競選,一批區塊生產者(BP,超級節點)被選出來,它們啟動 EOS 主網。EOS 主網于 2018 年 6 月初由 EOS 社區上線。但可以合理地推測,在 EOS 社區中,Block.one 公司有著非常大的影響力。

在主網之外還出現了一些未獲得 EOS 社區廣泛認同的,可視為 EOS 替代網(altnet,這是我們造的一個與之前的替代幣(altcoin)、替代鏈(alt chain)相對應的詞)。

EOSIO 是一個開源軟件,Block.one 公司也支持各方使用這個開源軟件來架設自己的區塊鏈網絡。不過也出現了一些有爭議的替代網,比如有的替代網試圖混淆自己與 EOS 主網。開發者還可以用 EOSIO 軟件建立單節點測試網、多節點測試網。

到此我們可以看到,EOS 的組成部分與多數基礎公鏈項目一致,包括三個部分(一條鏈、一個通證、一個軟件):EOS 主網、EOS 通證、EOSIO 開源軟件。EOS 主網也是由分布式賬本去中心網絡組成的。與其他基礎公鏈的一個較大不同是,它鼓勵更多的人在主網之外使用和運行 EOSIO 開源軟件。

如圖 1 所示,EOS 的主網包括三層:最核心層是由區塊生產者(BP)組成的 EOSIO 核心網,中間層是 EOSIO 接入網,外層是 EOSIO 用戶。

EOSIO 開源軟件包括一系列軟件,其中主要有三個:nodeos、cleos、keosd。
  • nodeos:即 EOS 的核心程序,它是 EOS 節點的后臺程序。
  • cleos:管理 EOS 區塊鏈和錢包的命令程序。
  • keosd:管理 EOS 錢包的程序。

EOS 主網的賬戶包括兩種:外部賬戶(由私鑰控制的外部賬戶)和合約賬戶。和賬戶相關的概念是錢包與權限,錢包是保存密鑰的客戶端,而權限包括兩個基礎權限類別(owner 與 active),應用可自定義各種權限。

一張圖看懂EOS區塊鏈與EOSIO開源軟件
圖1:一張圖看懂EOS區塊鏈與EOSIO開源軟件

EOS 的智能合約

EOS 的智能合約是關聯在各個合約賬戶上的。在 EOSIO 系統中,“合約”是沿用了區塊鏈的專業術語,但其含義非常接近于 Linux 操作系統的后臺應用,比如節點在啟動時會包括四個缺省合約,如 eosio.bios、eosio.token 等。

EOS 的智能合約可以通過兩種方式調用,一是用戶通過命令調用,二是通過 EOSIO 軟件的 send 方法調用。一個賬戶通過轉賬等動作觸發另一個合約賬戶中的合約運行之后,這個合約可以通過軟件代碼調用其他的合約(見圖3-11)。

EOS 智能合約現在是用 C++ 語言編寫的,文件格式分別為*.hpp/*.cpp,編譯后變為 WebAssembly 格式文件 WASM(*.wast)與應用頭文件(*.abi)。

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo