天天看點

EOCS架構概述和剖析

EOCS架構概述和剖析

什麼是EOCS?

EOCS(Enterprise Operation Cross System),是一個基于eosio底層架構實作的企業級跨鍊作業系統,旨在實作和EOS主鍊通信的并行鍊,是真正意義的跨鍊,支援高效穩定的跨鍊交易,為跨鍊生态建設提供更穩定和安全的平台。作為可與EOS主鍊互動操作的第一條并行鍊,EOCS Chain力圖實作安全可靠、快捷便利的跨鍊資産轉移、跨鍊智能合約調用。任何人都可以在EOCS Chain并行鍊上開發或使用跨鍊DAPP。

為什麼選擇EOCS?

互操作性

EOCS Chain并行鍊允許EOS主鍊與主流公有鍊、聯盟鍊、私有鍊互相通信和價值交換。

可擴充性

通過多鍊互聯互操作,EOCS Chain可幫助EOS實作史無前例的無限擴充。

開發友好性

EOCS Chain延續了EOS軟體堆棧的WebAssembly機制,可以非常輕松地開發DAPP。

EOCS發展路徑

EOCS架構概述和剖析

EOCS核心競争力

EOCS Chain并行鍊與EOS主鍊之間的同構跨鍊,涉及以下元件:

同構跨鍊協定(Isomorphic Inter-Chain Protocol, ICP) 同構跨鍊合約,在并行鍊和主鍊上同時部署,支援跨鍊協定包的解析,證明的驗證和存儲,以及EOS原生币(EOS)、EOCS Chain原生币(EOCS)、EOS代币的跨鍊資産轉移 同構跨鍊通道,通過邏輯證明確定通道建立的穩定性和安全性。 中繼者,将跨鍊協定包在并行鍊和主鍊之間安全快速地傳輸

EOCS Chain異構跨鍊嘗試與探索

我們相信未來的區塊鍊不僅在去中心化社群中得到商業落地前景,千萬中小企業同樣需要區塊鍊作為價值傳遞的基礎服務,未來不僅是公有鍊、聯盟鍊還是企業内部的私有鍊,都需要在一個公用網絡中進行價值傳遞和證明。 作為第一條EOS同構并行鍊,我們将在開發EOCS Chain的基礎上,繼續探索和研究異構鍊的跨鍊協定,不僅要為EOS生态做出支援百萬TPS的并行鍊體系,更要為整個EOS體系連接配接異構鍊做出創造性的貢獻,作為連接配接EOS主鍊及整個EOS跨鍊群體系與其他區塊鍊鍊的紐帶,為所有異構區塊鍊公鍊、聯盟鍊、私有鍊實作安全、快捷、無限擴充的區塊鍊生态體系!

EOCS整體架構簡圖

EOCS架構概述和剖析

如何使用EOCS

編譯和部署

EOCS 支援多種Linux作業系統,mac,centos,ubuntu等等,可以去github下載下傳源碼并編譯,源碼下載下傳位址,https://github.com/eocschain/eocs。

在自己的工作目錄(可自己設定)執行指令 git clone https://github.com/eocschain/eocs 更新下載下傳源碼。下載下傳後檔案組織結構如下

在該目錄下執行eosio_build.sh,會生成build目錄,執行成功會提示build success!!!

填寫配置

在~/.local/share/eosio目錄下有config和data檔案夾,修改config.ini即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

# Override default WASM runtime (eosio::chain_plugin)

wasm-runtime = wabt

# print contract's output to console (eosio::chain_plugin)

# 友善觀察跨鍊合約列印資訊

contracts-console = true

# The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)

# 鍊1為127.0.0.1:8888,鍊2為127.0.0.1:8889

http-server-address = 127.0.0.1:8888 # 或 127.0.0.1:8889

# The endpoint upon which to listen for incoming connections (eosio::icp_relay_plugin)

# 鍊1為0.0.0.0:8765,鍊2為0.0.0.0:8766

icp-relay-endpoint = 0.0.0.0:8765 # 或 0.0.0.0:8766

# The number of threads to use to process network messages (eosio::icp_relay_plugin)

# icp-relay-threads = 

# Remote endpoint of other node to connect to (may specify multiple times) (eosio::icp_relay_plugin)

# 鍊1為127.0.0.1:8766,鍊2為127.0.0.1:8765;其實隻要填一個,使得兩條鍊的ICP插件能夠連接配接上

icp-relay-connect = 127.0.0.1:8766 # 或 127.0.0.1:8765

# The chain id of icp peer (eosio::icp_relay_plugin)

# 鍊1填寫鍊2的chain id,鍊2填寫鍊1的chain id,可參考後文擷取方式後再填寫

icp-relay-peer-chain-id = 630f427c3007b42929032bc02e5d6fded325b3e2caf592f963070381b2787a9d

# The peer icp contract account name (eosio::icp_relay_plugin)

# 對端ICP合約賬戶名;鍊1填寫鍊2上跨鍊合約賬戶名,鍊2填寫鍊1上跨鍊合約賬戶名

icp-relay-peer-contract = eocseosioicp

# The local icp contract account name (eosio::icp_relay_plugin)

# 本端ICP合約賬戶名;鍊1填寫鍊1上跨鍊合約賬戶名,鍊2填寫鍊2上跨鍊合約賬戶名

icp-relay-local-contract = eocseosioicp

# The account and permission level to authorize icp transactions on local icp contract, as in 'account@permission' (eosio::icp_relay_plugin)

# ICP插件向本端ICP合約發送交易時使用的賬戶名

icp-relay-signer = eocseosrelay@active

# The actual host:port used to listen for incoming p2p connections. (eosio::net_plugin)

# 鍊1為0.0.0.0:9876,鍊2為0.0.0.0:9877

p2p-listen-endpoint = 0.0.0.0:9876 # 或 0.0.0.0:9877

# Limits the maximum time (in milliseconds) that is allowed a pushed transaction's code to execute before being considered invalid (eosio::producer_plugin)

# 設定足夠大的最大交易執行時間,可參看ICP Challenges中關于計算量的說明

max-transaction-time = 300

# ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)

# 這裡測試鍊僅使用生産者eosio

producer-name = eosio

# 填寫賬戶eosio的公私鑰,這裡使用了預設值

signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

# 插件

plugin = eosio::chain_api_plugin

啟動節點

進入build/programs/nodes,執行nodes,啟動節點

到此為止,EOCS概述和節點啟動簡介完畢,下一篇為大家帶來EOCS的跨鍊設計和源碼剖析