Cosmos SDK 是一個區塊鏈架構,用於開發跨鏈區塊鏈網路,比如 Cosmos Hub,或權益證明(PoA)的區塊鏈。使用Cosmos SDK 開發的區塊鏈通常稱為定製應用區塊鏈。
Cosmos SDK 的目標是允許開發者從頭開始輕鬆開發原生就能同其他區塊鏈相互操作的定製區塊鏈。就如同在 Ruby-on-Rails 框架之上開發網頁應用一樣,可以很方便在 Tendermint 之上開發安全的區塊鏈應用。基於 SDK 的區塊鏈通過可組合的模組構建出來的,大部分模組都是開源的,並且可供任何開發人員使用。任何人也都可以為 Cosmos SDK 自行開發新的模組,整合現成的模組就像將它們導入到區塊鏈應用程式一樣簡單。
區塊鏈應用的核心是具有最終確定性的複制狀態機。
狀態機是計算機科學概念,一台機器可以具有多個狀態,但在任何給定時間只有一個狀態,其描述了系統的當前狀態,及觸發這些狀態轉變的事務。
給定一個狀態 S 和交易 T,狀態機會返回一個新的狀態 S'。
作為一個開發者,你只需要使用 Cosmos SDK 定義狀態機,Tendermint 將會為你處理網路層上的複制。
Tendermint 是一個與應用程式無關的引擎,負責處理區塊鏈的網路層和共識層。實際上,這意味著 Tendermint 負責傳播和排序交易數據。Tendermint Core 使用拜占庭容錯(BFT)算法來達成交易順序的共識。
Tendermint 共識算法協同一組稱為驗證人的特殊節點一起運作。驗證人負責向區塊鏈添加交易區塊。對於任何給定的區塊,有一組驗證人 V。通過算法選擇 V 中的驗證人 A 作為下一個區塊的提議人。如果超過三分之二的 V 簽署了 prevote 和 precommit,並且區塊包含的所有交易都是有效的,則該區塊被認為是有效的。驗證人集合可以通過狀態機中編寫的規則進行更改。
Cosmos SDK 應用程式的主要部分是一個區塊鏈服務程式,它由網路中的每個節點在其本地運行。如果驗證人集合中三分之一以下的是拜占庭(即惡意的),則每個節點在同時查詢狀態時應獲得相同的結果。
Tendermint 通過簡稱為 ABCI 的接口將交易從網路層傳遞給應用程式,這是應用程式必須要實作的。
以下是ABCI中最重要的消息類型:
接下來的三十天內,就讓我們一起跟著小明的團隊一起學習最新的兩大跨鏈技術之一:Cosmos SDK。
Cosmos SDK 開發者資源:
https://cosmos.network/developers
Cosmos 官網:
https://cosmos.network/
BDE 社群小聚錄影:
https://bitlly.co/ogvpb
想找區塊鏈人才或想學習區塊鏈知識的夥伴。歡迎參加社群小聚,一起來輕鬆交流、互相學習成長、認識新朋友、發現新機會!
台北區塊鏈社群
https://bitlly.co/Q4dIK
BDE 區塊鏈學院 - 讓每個企業都懂區塊鏈。
https://bitlly.co/mbDwX
藉著親自並協助他人進行軟體開發,
我們正致力於發掘更優良的軟體開發方法。
透過這樣的努力,我們已建立以下價值觀:
個人與互動 重於 流程與工具
可用的軟體 重於 詳盡的文件
與客戶合作 重於 合約協商
回應變化 重於 遵循計劃
也就是說,雖然右側項目有其價值,
但我們更重視左側項目。