模塊化是指一個系統(tǒng)能夠分解成可以分離和重新組合的組件。最好的軟件開發(fā)工具通常是高度模塊化的,允許重用“程序集”或“模塊”。這一原則是Java、c#和Go等開發(fā)框架的核心。
模塊化促進了創(chuàng)新。當創(chuàng)建一個新的web應用程序時,大部分運行的代碼實際上都在外部開發(fā)的包中;無論它們是數(shù)據(jù)庫連接、頁面呈現(xiàn)引擎、輸入驗證器等等,開發(fā)人員都可以非常容易地構(gòu)建一個新網(wǎng)站概念的原型。
加密貨幣
然而,如果你去看看最珍貴的加密貨幣代碼庫——比特幣核心存儲庫,你會發(fā)現(xiàn)它非常不靈活。非模塊化代碼通常以長文件為特征,類的單個實現(xiàn)通常依賴于其他的具體實現(xiàn)。以比特幣核心驗證為例并不是說只有比特幣存在這種情況。大多數(shù)區(qū)塊鏈節(jié)點存儲庫,如Go Ethereum也完全沒有考慮到靈活性。
現(xiàn)在需要注意的是,在比特幣的例子中,模塊化不是優(yōu)先考慮的。如果您相信您正在構(gòu)建未來的單一“貨幣”,那么為什么要讓其他人更容易地使用您的代碼進行構(gòu)建呢?比特幣核心是高度集成的,但它經(jīng)受住了時間的考驗,并且行之有效。這不是對比特幣核心代碼庫的批評。
嘗試使用區(qū)塊鏈
隨著區(qū)塊鏈被引用為所有問題的答案,許多項目開始嘗試不同的節(jié)點實現(xiàn)。特別是在敏感數(shù)據(jù)和私有鏈,或者在外部數(shù)據(jù)是鏈操作的核心的情況下,項目發(fā)現(xiàn)基于智能合約的方法不允許它們具有足夠的靈活性。不幸的是,直到最近,為了創(chuàng)新,開發(fā)商正在剝離像比特幣這樣的集成節(jié)點,或者從零開始創(chuàng)建新的節(jié)點。
這兩種方法都很痛苦、耗時,而且容易出錯(不安全)。
當一個擁有全新功能的區(qū)塊鏈網(wǎng)絡(luò)可以像這樣快速轉(zhuǎn)移時,這個領(lǐng)域?qū)⒄嬲睒s起來。
Stratis——一個模塊化平臺
對我來說,最令人興奮的事情是,我們正在考慮以完全不同的方式建立區(qū)塊鏈。不同的共識算法、智能契約執(zhí)行器、錢包和雙向掛鉤實現(xiàn)都是同一代碼庫中的特性。
目前你可以運行的代碼庫:
· 比特幣(PoW)節(jié)點
· StraTIs (PoS)節(jié)點
· Cirrus (PoA +智能合約)節(jié)點
此外,由于節(jié)點的靈活性,我相信我們可以在幾天內(nèi)為比特幣現(xiàn)金、、Private、Doge、Litecoin等構(gòu)建完整的節(jié)點集成。在對模型和其他特性進行了一些嘗試之后,我們可以對其進行擴展,以便更容易地支持更多的鏈類型。
當你在NET Core中創(chuàng)建一個新網(wǎng)站時,你可以預加載一個模板,并根據(jù)你的需要快速調(diào)整組件,在一天之內(nèi)完成一個新的web應用原型。我們希望,有了StraTIs的開發(fā)者能夠做同樣的事情,但他們自己的區(qū)塊鏈網(wǎng)絡(luò)。
IFullNode node = new FullNodeBuilder()
.UseNodeSetTIngs(nodeSetTIngs)
.UseBlockStore()
.UseMempool()
.AddRPC()
.AddSmartContracts()
.UseCLRExecutor()
.UseApi()
.Build();