基于eosio底層框架實現(xiàn)的企業(yè)級跨鏈操作系統(tǒng)EOCS介紹
什么是EOCS?
EOCS(Enterprise Operation Cross System),是一個基于eosio底層框架實現(xiàn)的企業(yè)級跨鏈操作系統(tǒng),旨在實現(xiàn)和EOS主鏈通信的并行鏈,是真正意義的跨鏈,支持高效穩(wěn)定的跨鏈交易,為跨鏈生態(tài)建設提供更穩(wěn)定和安全的平臺。作為可與EOS主鏈交互操作的第一條并行鏈,EOCS Chain力圖實現(xiàn)安全可靠、快捷便利的跨鏈資產(chǎn)轉(zhuǎn)移、跨鏈智能合約調(diào)用。任何人都可以在EOCS Chain并行鏈上開發(fā)或使用跨鏈DAPP。
為什么選擇EOCS?
互操作性
EOCS Chain并行鏈允許EOS主鏈與主流公有鏈、聯(lián)盟鏈、私有鏈互相通信和價值交換。
可擴展性
通過多鏈互聯(lián)互操作,EOCS Chain可幫助EOS實現(xiàn)史無前例的無限擴展。
開發(fā)友好性
EOCS Chain延續(xù)了EOS軟件堆棧的WebAssembly機制,可以非常輕松地開發(fā)DAPP。
EOCS發(fā)展路徑
EOCS核心競爭力
EOCS Chain并行鏈與EOS主鏈之間的同構(gòu)跨鏈,涉及以下組件:
同構(gòu)跨鏈協(xié)議(Isomorphic Inter-Chain Protocol, ICP) 同構(gòu)跨鏈合約,在并行鏈和主鏈上同時部署,支持跨鏈協(xié)議包的解析,證明的驗證和存儲,以及EOS原生幣(EOS)、EOCS Chain原生幣(EOCS)、EOS代幣的跨鏈資產(chǎn)轉(zhuǎn)移 同構(gòu)跨鏈通道,通過邏輯證明確保通道建立的穩(wěn)定性和安全性。 中繼者,將跨鏈協(xié)議包在并行鏈和主鏈之間安全快速地傳輸
EOCS Chain異構(gòu)跨鏈嘗試與探索
我們相信未來的區(qū)塊鏈不僅在去中心化社區(qū)中得到商業(yè)落地前景,千萬中小企業(yè)同樣需要區(qū)塊鏈作為價值傳遞的基礎服務,未來不僅是公有鏈、聯(lián)盟鏈還是企業(yè)內(nèi)部的私有鏈,都需要在一個公用網(wǎng)絡中進行價值傳遞和證明。 作為第一條EOS同構(gòu)并行鏈,我們將在開發(fā)EOCS Chain的基礎上,繼續(xù)探索和研究異構(gòu)鏈的跨鏈協(xié)議,不僅要為EOS生態(tài)做出支持百萬TPS的并行鏈體系,更要為整個EOS體系連接異構(gòu)鏈做出創(chuàng)造性的貢獻,作為連接EOS主鏈及整個EOS跨鏈群體系與其他區(qū)塊鏈鏈的紐帶,為所有異構(gòu)區(qū)塊鏈公鏈、聯(lián)盟鏈、私有鏈實現(xiàn)安全、快捷、無限擴展的區(qū)塊鏈生態(tài)體系!
EOCS整體框架簡圖
如何使用EOCS
編譯和部署
EOCS 支持多種Linux操作系統(tǒng),mac,centos,ubuntu等等,可以去github下載源碼并編譯,源碼下載地址,https://github.com/eocschain/eocs。
在自己的工作目錄(可自己設定)執(zhí)行命令 git clone https://github.com/eocschain/eocs 更新下載源碼。下載后文件組織結(jié)構(gòu)如下
在該目錄下執(zhí)行eosio_build.sh,會生成build目錄,執(zhí)行成功會提示build success?。?!
填寫配置
在~/.local/share/eosio目錄下有config和data文件夾,修改config.ini即可。
# 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合約發(fā)送交易時使用的賬戶名
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)
# 設置足夠大的最大交易執(zhí)行時間,可參看ICP Challenges中關于計算量的說明
max-transaction-time = 300
# ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)
# 這里測試鏈僅使用生產(chǎn)者eosio
producer-name = eosio
# 填寫賬戶eosio的公私鑰,這里使用了默認值
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
# 插件
plugin = eosio::chain_api_plugin
啟動節(jié)點
進入build/programs/nodes,執(zhí)行nodes,啟動節(jié)點,到此為止,EOCS概述和節(jié)點啟動簡介完畢。