所有語言
基於不同的治理理念,EOSC社區對EOSIO的選舉機制進行了優化,在創世高度1啟動了EOSC主網,並持續對EOSC主網進行迭代升級,使得EOSC朝着去中心化的高性能智能合約平台的方向持續演進,為加密經濟大規模普及奠定基礎。
加密經濟迎來了從社會實驗走向大規模商用的關鍵階段。
大規模商用的背後意味着龐大的交易壓力。一個區塊鏈系統要高效地承載起巨量的交易需求,首先必須提供足夠強勁的性能。要實現這一點,就需要對全節點提出更高的要求,如配置更好的硬件機器、更大的存儲容量、更加穩定的網絡、更快的帶寬、更低的時延,等等。顯然,全節點門檻過高會導致能穩定運行的出塊節點數量減少,如果在這樣的區塊鏈系統中採用POS機制,系統將迅速收斂至中心化的局面。要在高性能和去中心化之間取得平衡,DPOS共識算法無疑是當前最佳的選擇,也是針對管理少量節點可行的最好的解決方案。
基於DPOS共識算法的EOSIO應運而生,社區第一次看到了加密經濟大規模商用的曙光。選舉機制是否充分生效是DPOS共識機制存亡的關鍵,也關係到DPOS共識機制能否接力POW引領下一代加密浪潮。
為了加速加密經濟大規模商用時代的到來,EOSC社區對EOSIO的選舉機制進行了優化,在創世高度1啟動了EOSC主網,並持續對EOSC主網進行迭代升級,使得EOSC朝着去中心化的高性能智能合約平台的方向持續演進。
EOSC沿用了EOSIO的共識機制, 即DPOS BFT Pipeline Consensus, 與EOSIO不同, EOSC沒有採用EOSIO每0.5秒一個區塊, 一個節點連出6個塊的模式, EOSC中每3秒一個區塊, 節點不會連續出塊, 雖然節點連續出塊可以降低未打包交易的等待時間, 但是由於當前網絡環境往往並不十分理想, 快速出塊會影響鏈的穩定, 造成大量的微分叉。
EOSIO當前的共識機制不夠完美, 但是作為一個DAPP的平台, 區塊的確認時間並不是鏈的第一優化要務, 對於EOSC, 必須在高負載環境下考慮共識機制, 在當前并行計算機制並不完善的情況下, 倉促改進流水線式的確認機制很帶來很大問題。
EOSC未來的共識機制將會從兩個方向并行演進
1.兼容EOSIO發展更新其共識算法,我們根據EOSIO當前開發進度判斷,當EOSIO完成并行改進之後, 將會升級共識算法, 實現更快的區塊確認時間.
2.將會適配其他的基於確認數的共識機制, 作為現有DPOS共識的補充, 一方面實現內嵌的Layer 2鏈共識與主鏈的交互。另一方面, 可以實現與其他共識機制的鏈完成更加去中心化的跨鏈機制。
基於手續費的資源模型
EOSIO的CPU和NET資源的支付模式雖然在技術是一個很好的設計, 對於用戶來說太過複雜, 同時不能促進DAPP開發者優化其合約, 另一方面, EOSIO的RAM的購買方式會導致某些囤積行為, 不利於DAPP生態的發展, 為此, EOSC創新的設計了一套全新的資源模型, 通過實踐中的優化,探索在複雜智能合約環境下基於手續費的資源模型, 徹底解決困擾EOS生態的資源問題。
首先, EOSC以手續費模式支付用戶的CPU和NET資源消耗, 對於DAPP當中開發者定義的Action, DAPP開發者可以為Action設置所需的手續費, 系統基於此來控制Action的資源使用, 這樣一方面便於用戶理解資源的消耗, 另一方面也強烈的促進DAPP開發者優化合約資源使用, 使得整個生態良性發展。
EOSC採用類似租雲主機的方式以方式分配RAM資源, 用戶可以通過使用投票分紅來支付租賃RAM資源的費用, 這樣即不需要用戶擔憂租金繳納問題, 也杜絕了租金欠費的問題. 通過“以租代售”的方式, EOSC可以有效避免針對RAM資源的投機行為, 使得DAPP的發展不必受到RAM價格的干擾, 有效促進DAPP生態建設。
在大膽創新探索新的資源模型的同時, EOSC也在機制上進行探索以兼容EOSIO的資源模型, 對於CPU和NET資源, 用戶可以基於分紅票齡支付手續費來達到類似EOSIO抵押獲取CPU和NET資源的效果, 對於RAM, 用戶可以通過抵押投票互換的形式來達到EOSIO基於市場購買的效果, 這樣DAPP開發者可以快速從其他EOSIO鏈切入EOSC, 並平滑的轉向EOSC的資源模式。
平滑的更新機制
EOSC的選舉機制促使超級節點积極的參与推進技術升級, 不同於EOSIO社區節點版本的分裂, EOSC在實踐中积極的推進技術升級和更新。
為了實現更平滑的不兼容升級過程, EOSC添加了一套基於生效區塊高度的更新機制, 社區可以通過多簽確認一個功能的生效塊高度, 以此去中心化的完成平滑的升級過程, 不同於EOSIO最近提出的基於區塊拓展數據的標籤方案, EOSC的更新機制更友好和利於理解. EOSC在基於EOSIO的鏈中最早實踐了去中心化的“軟分叉”更新過程, 這是EOSC得以不斷進化以解決各類機制問題的基本保障。
在另一方面, 基於多簽設置鏈屬性的功能可以為社區提供一套去中心化的鏈配置上鏈方案, 各種參數和配置可以根據實際發展來進行去中心化的修改, 使得社區更好的發展。
節點心跳機制與穩定的出塊間隔
為了促進主網的穩定性, EOSC從經濟模型的角度加強了備選節點的建設, 同時, EOSC添加了鏈上的節點心跳機制, 以此促進節點加強提高其穩定性, 促進整個主網更加穩定。
在心跳機制的基礎之上, EOSC可以確認節點的運行情況, 使得基於鏈上對故障節點進行懲罰, 以此進一步督促節點的建設, 防止節點不作為導致整個主網的不穩定。
在啟動之初便提高出塊間隔時間, 以此避免在當前網絡基礎設施還未完善的情況下, 主網出現偶爾的軟分叉, EOSIO設計的半秒鐘的出塊間隔和一個節點連出六個塊的機制固然可以在未來提高鏈的可用性, 但是當前網絡環境下還不適用, 本着務實的態度先行提高出塊間隔時間, 未來條件成熟之後再改為快速的出塊, 這樣可以有效的減少軟分叉, 同時區塊數量減少可以大幅提高全節點同步速率, 使得可以有更多的全節點, 以此加強整個網絡的可用性。
更多的合約層API
為了使DAPP開發者可以更加方便的開發合約, 添加了一些API, 並且對系統合約做了一些特定的調整。
首先, 添加了獲取區塊高度的API, 開發者可以簡單高效的獲取當前區塊高度, 基於這個API, 合約可以有效避免阻塞區塊攻擊, 及其他基於重試的攻擊. 其次, 添加了獲取鏈配置信息的API, 開發者可以在合約層適配鏈的各種參數修正和鏈的升級, 以此合約也可以平滑的跟隨鏈升級功能. 最後, 為了避免假幣攻擊, 在鏈啟動之前, 就使用了獨立的核心代幣合約, 使得用戶可以明顯區分假幣攻擊。
適配跨鏈服務
啟動之初,原力團隊就預見到未來對跨鏈的支持將是公鏈的基本功能, 因此原力團隊開啟Codex項目的開發, 建立Codex.Relay中繼鏈來為各個鏈提供中繼服務, 以此實現各個鏈之間的跨鏈機制, 可以對Codex.Relay進行更加完善的支持, 通過兩條鏈的超級節點互相操作, 可以實現“完備化”的跨鏈機制, 即跨鏈過程中不會降低任何鏈的去中心化程度。
通過跨鏈機制, 可以獲得極大的擴展性, 基於中繼服務, 可以為添加 Layer 2 子鏈, 一些資源消耗量較大的服務和DAPP可以基於子鏈運行, 通過中繼服務將計算結果或者核心狀態同步到中, 這樣後續可以添加存儲、計算、DAPP、隨機數等專用子鏈, 以此拓展功能。
高度可定製化的EOSIO區塊鏈開發框架
基於中繼服務, 可以為添加 Layer 2 子鏈, 未來各式子鏈將會在EOSIO的生態中發揮很大的作用, 但是需要注意到, 目前基於EOSIO開發一條定製功能的區塊鏈項目還是具有很高的門檻的, 為此原力團隊開啟了Codex.io項目, 這是一個高度可定製化的EOSIO區塊鏈開發框架, 降低子鏈的開發門檻, 為開發者提供一個更經濟更友好的子鏈開發體驗。
原力團隊在開發的過程中積累了很多基於EOSIO開發區塊鏈的經驗, 也希望能夠將這些經驗發揮其最大的價值, Codex.io是一個“開箱即用”的EOSIO區塊鏈開發框架, 開發者可以快速的基於Codex.io啟動一條自己的鏈, 經過簡單的配置, 可以定製各種符號、自由選擇經濟系統和資源模型, 在此基礎之上, 開發者只需要關注鏈本身所要解決的問題, 據此可以選擇基於合約或者鏈native層來實現, Codex.io可以便於開發者在鏈的native層進行的拓展, 以此解決一些性能問題, 同時也可以極大拓展鏈的功能。
Codex.io集成了目前大多數EOSIO鏈所提出的拓展功能, 本着兼容並蓄的態度, Codex.io允許開發者自由組合鏈上功能: 包括低保系統、賬戶系統、各種黑白名單機制、常見的治理機制和投票機制以及各種插件。
通過Codex.io, 未來將會集成大量的Layer 2 子鏈, 這會為提供無限拓展性。