substrate輕鬆學系列4:substrate快速瞭解

linghuyichong發表於2022-07-04

有以下三種方式來使用substrate開發區塊鏈:

  • 直接使用substrate node

上一節中快速體驗substrate建立一條鏈就是使用的這種方式,這種方式基本上不修改程式碼,配置一下chain_spec即可(也可以用預設的)。如果玩過bitcoin或者ethereum開發的小夥伴,想想一下修改genesis block的配置起一個類似的節點直接山寨一條鏈,基本就和這種使用方式類似。

  • 使用substrate frame構建執行時

這種方式就是substrate提供的大的框架下,定義自己的執行時(也就是鏈的一些具體邏輯),然後形成一條新的鏈。這個理解起來可能有些費解,舉個例子,我們在前面的章節給大家介紹過以太坊的架構,也是常見的區塊鏈的架構,在這個架構中,有一個元件是共識,不同的鏈可能使用不同的共識。如果我們要實現有著不同共識的鏈,我們就可以用這種方式來開發,將裡面對應的共識模組弄成我們想要的即可。在這種方式中,主要開發的就是這些模組,substrate中叫做pallet。subtrate自身提供了一些lib和pallet,我們也可以自己開發一些pallet。

這種方式也是這份教程教大家的方式。

在這裡,還要補充一點,對於大多數使用substrate開發的鏈來說,可能像網路、共識、密碼庫等等這些模組都不想動,他們只想在某些基礎上新增一些自己業務相關的邏輯快速的完成開發,就像我們上一節快速的搭建一條鏈那樣。基於這種情況,substrate提供了一條鏈的基本配置的模板node-template(也可以把它理解為使用substrate開發一條鏈的示例)。所以,對於大多數使用substrate開發鏈的情況就變成了基於node-template,然後使用substrate開發自己業務邏輯的pallet,加到node-template上,就完成了整條鏈的開發。

  • 使用substrate core

這種方式是最靈活的方式,但是也是難度最大的方式。這種方式可以忽略substrate中提供的frame,支援完全自定義的開發。這種方式後續在本教程中不加討論。

2 substrate鏈的架構

既然我們主要是使用substrate構建執行時的方式開發,那麼這樣開發出來的鏈的架構是怎麼樣的呢?substrate官方文件已經給我們畫出來了,如下:

substrate架構圖

在這個架構中,已經給我們提供了基本的網路、rpc等這些模組,那麼其它的應用邏輯模組就可以使用前面說的第二種方式進行開發,從而實現特定應用的特定的區塊鏈。

3 參考文件

docs.substrate.io/v3/getting-start...

docs.substrate.io/v3/getting-start...

本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章