2020年10月20日,密碼極客發起了第一期[波卡生態系列分享會]。我們非常榮幸邀請到了Parity亞洲區技術總監賈瑤琪博士做客密碼極客大咖直播間,為大家講解《如何基于波卡開發區塊鏈項目》。
1、在波卡上如何開發區塊鏈系統?
大家作為不管是開發者或者是區塊鏈從業人員,應該都能感覺到從零開始構造一個區塊鏈是一個非常困難的事情,為什么說是很困難的事情?
圖1
大家可以看一下圖1,其實要從頭開發一個區塊鏈,你要考慮到的就不只是數據庫公式算法,還要考慮到處理各種各樣的交易相關的一個轉換函數。與此同時,如果你想加一些比較復雜或者先進的一個邏輯在里邊,例如零知識證明,這樣就要在開發區關聯時候額外添加這些比較復雜的算法以及功能。
那么大家其實就會想到我們如何使用已經有的這些,不管是公鏈技術或者是聯盟鏈技術來進行二次開發。其實在過去的十幾年當中,特別是從09年比特幣白皮書這樣的一個上線,以及15年以太坊系統的上線,大家可以看到區塊鏈不止可以做支付,而且還可以在上邊部署一些智能合約。那么的話就有很多開發者是基于比特幣做二次開發,以及一些比較有意思的這種utxo模型的這樣的一個區塊鏈系統,還有根據以太坊做的一些調整,然而這些基于已有的區塊鏈開進行二次開發來做一些新的鏈這樣的一個系統,他們最大的問題就是由于像比特幣或者以太坊早期的這些項目,他們也有一個比較好的開發框架,其實大家都是在源碼基礎上進行改動的,這樣就要求開發者對于源碼的理解是比較高的。與此同時的話,由于這些源碼沒有比較好的模塊化來作為一個框架,其實開發起來的難度是很大的。
而我們Parity其實從 Gavin在很早期15年建立Parity的時候,我們在最初就在幫以太坊開發它的Rust客戶端,之前是叫做Parity Ethereum現在改名叫做Open Ethereum,我們積累了很多各種各樣的對區塊鏈的開發經驗,特別是在從18年開始積極的開發Polkadot跨鏈項目,我們吸收以及總結了很多開發供應鏈的這樣的一些經驗,然后從這些經驗里邊,我們抽取以及進一步的深化,做出了這樣的一個區塊鏈開發框架。而這套框架我們命名為Substrate。
圖2
因為波卡是一個跨鏈項目,那么我們為了幫助開發者更快的開發自己的一個區塊鏈系統,我們就開發了Substrate這樣的一套框架,來方便開發者去開發相關的這樣一個區塊鏈系統,我們叫做平行鏈。大家可以看到 Substrate其實包含了很多剛剛我提到的這種區塊鏈的核心組件,例如數據庫層、網絡層以及可插拔的共識協議。
觀點:英國加密監管的關鍵因素是如何處理零售問題:4月5日消息,在IFGS會議的第二天,金融服務行業集團Shearman & Sterling全球負責人Barnaby Reynolds在“Crypto重啟:2021年及未來”的發言中,淡化了英國財政部日前關于英國穩定幣使用的監管聲明的重要性。Reynolds稱:英國正在考慮如何監管加密貨幣,但昨天宣布將穩定幣納入支付體系的聲明相對沒有太大影響。就加密貨幣監管而言,倫敦和紐約是值得關注的兩個重要市場,因為這兩個市場是全球“脈搏”所在。Reynolds解釋說,英國的關鍵因素是如何處理零售問題。英國對加密貨幣交易的禁令是爭議所在,因為零售市場非常希望進入加密貨幣市場。
此前消息,英國財政部在官網宣布推出一系列舉措,將把穩定幣視為一種有效的支付方式,作為使英國成為全球加密資產技術和投資中心的計劃的一部分。(Finextra)[2022/4/5 14:05:21]
同時,我在之后也會提到包含了比較有意思的鏈下工作機以及鏈上的這種可升級的功能,這樣就可以幫助開發者在開發的時候,其實大家只選用自己想使用的一個模塊,就可以很快速的開發相關的一個區塊鏈系統,可以快到哪種程度,Gavin其實在18年的時候,在Web3峰會做了這樣的一個演講,就是拿出了嶄新的蘋果電腦,然后開始裝這樣的一個Substrate相關的 dependency,然后到最終編譯出一個區塊鏈只花了15分鐘,大家可想而知,這個是18年的不穩定版本,現在的話Substrate已經到了2.0版本,那么在這個版本上進行一個開發,其實會有更好的用戶體驗,是更加快速的。回到咱們今天講的主題,在波卡上如何開發區塊鏈系統,那么相信大家現在已經有了一個比較好的眉目,其實就是使用Substrate這樣的一個開發框架來進行一個開發。
圖3
2、Substrate開發出來的系統有哪幾種方式可以進行部署?
圖4
其實除了作為波卡的平行鏈或者平行線程之外,也可以直接部署成為獨立的鏈。特別是在國內這種特有的環境下,大家也可以使用Substrate搭建自己對應的這種商業邏輯的聯盟鏈或者私有鏈,以及一些對于吞吐量要求比較高的,可以針對某一個應用,例如游戲單獨搭一條鏈并部署在自己相對應的環境下邊,當然了目前大家在Substrate進行開發的時候,比較有利的一點是經過三年,從這個圖可以看到,整個波卡生態的壯大以及開發者持續的開發,Substrate的開發生態以及工具是有很多的,大家可以用Polkadot-js,當然內置的話也是有一個比較好的這種區塊瀏覽器,大家也可以使用Parity Signer這樣的一個離線的硬件錢包。
Bicc幣交所早期投資人王小彬:如何在安全前提下實現高速處理是區塊鏈底層公鏈突破重點之一:金色財經現場報道,“2020 Cointelegraph中文大灣區·國際區塊鏈周”8月5日-7日在深圳舉行。Bicc幣交所早期投資人&CWV主鏈基金會管理人王小彬跨洋連線“公鏈下一輪,CWV2.0如何回答”,他表示,如何在安全的前提下實現高速處理是區塊鏈底層公鏈突破的重點之一。CWV2.0相對傳統公鏈在速度方面優勢非常明顯,因為采用了VRF(隨機驗證方法)共識,CWV2.0在運行過程中,通過隨機函數確保出塊節點的公平性和去中心化控制,同時在塊高度上實現PBFT容錯能力,使得VRF的主鏈更加穩定,在賬本層面可以很好地實現快速出塊。[2020/8/7]
3、怎么使用Substrate進行Rust開發?
圖5
與此同時,除了圖5上面提到的這種ink! 智能合約。這種ink!.Rust類型的智能合約,我們目前也兼容了evm其實大家可以使用這些去編寫智能合約,然后在自己對應的消費鏈上面進行一個運行。接下來我就大致跟大家分享一下怎么使用Substrate進行這種Rust開發。因為Substrate是跟其他的智能合約開發比較不太一樣,因為你是相當于開發一個區塊鏈,雖然區塊鏈底層,像數據庫、網絡、控制協議都搭好了,但是針對你自己特殊的這種需求,例如你要做游戲的一個區塊鏈,或者是偏支付的這樣一個鏈,這種核心的商業邏輯還是需要你進行開發的。
圖6
那么進行開發的話需要這種Substrate Runtime的。圖6里邊大家可以看到,由于Substrate跟我們平時開發智能合約不太一樣,那么的話它是有一些這種開發上面的一些這種policy需要大家去記住的。例如第一點,在Substrate Runtime你如果發了一個我們叫做extrinsic,或者你就把它當做交易,發交易的時候,如果這個交易進行時發生了問題的,那么交易對狀態的改變是不會回滾的。
然后在以太坊上面進行solidity的開發的話,如果交易執行不成功,那么其實它的狀態是會回滾的。這就要求了我們在開發Substrate runtime的時候,最好是我們先自己驗證一下他這樣的一個邏輯對不對?然后再寫。
接下來這幾頁的圖片,大家可以看一下,在寫這種runtime或者相對應的這種邏輯的時候,需要大家在里邊填充自己的這種代碼的,大家可以看模塊定義通常是包含怎么定義存儲事件以及錯誤,還有就是一些相關的這樣的一個函數。
圖7
聽證會 | 扎克伯格:還未確定如何處理錯誤交易的最終政策:金色財經直播報道,在今日聽證會上,議員Bil Foster詢問了有關如何處理錯誤交易。扎克伯格說,他不確定是否已經為此制定了政策。已對此有所考慮,但還沒有確定”最終政策。[2019/10/24]
對于這種如果大家想引用其他的相關的這樣的一些trait的話,因為整個Substrate都用Rust寫,所以這也會用到一些trait,如果大家想知道更多這種Rust相關的信息的話,再可以在網上查一下Rust的相關課程,或者加入我們Substrate的課程,我們會介紹一些 Rust的相關的這種基礎。然后像存儲的話,大家可以看到其實里邊有一些比較簡單的類型、最簡單的方法,大家就可以學習已經有的這些簡單的類型或者這種例子,然后根據自己的實際情況,然后去改一下相關的這種變量名字,進行這樣的一個操作。與此同時的話類似于我們寫智能合約,在做一些操作的時候都要觸發事件或者發出事件,那么這里邊你也可以去定義一個事件。
當然了這里面還有一個地方就是decl_module,其實就是要定義自己相對應的這種runtime的函數,我在最后會提到的叫做Substrate.dev這樣的一個網站上面有很多各種各樣的教程,大家可以跟隨教程去學習,以及做一些比較簡單的例子去深入學習,怎么去根據這幾個模塊定義對應的這樣的一個事件存儲和函數,來完成自己對應的這樣的一個Runtime,以及相對應的邏輯的定義以及操作。
4、Substrate應用鏈跟智能合約的差異性在哪?
在這里簡單類比下Substrate應用鏈或者Runtime跟智能合約的差異性。
圖8
大家都知道寫智能合約,特別是以太坊上面的solidity這樣的一個智能合約,很多時候由于solidity以及以太坊本身的限制——比如它存儲量較低、手續費較高,同時像solidity它本身的限制也是比較多,可能更多時候是只能操作整數這種類型。
這就是為什么大家看到的目前以太坊上面比較火熱的應用都是跟通證相關,而不是跟更廣泛的Web3.0相關的原因。
而大家使用Substrate進行開發的時候,就不存在這樣的問題。
因為大家使用Substrate開發的時候,整個鏈都是為開發者所控制的。所以當大家在進行開發的時候,不管是鏈上鏈下數據,或是對應的一些solidity沒有的接口,Substrate都可以進行一個提供。
并且大家也可以看到,Substrate本身的吞吐量也是比較高的,所以可以給應用提供更多的處理交易與邏輯的空間。
與此同時,Substrate本身也會提供一個off-chain worker鏈下工作機,可以幫助做Substrate應用開發的開發者能夠更快的處理相關的鏈下數據,實現鏈上處理鏈下數據,這樣就打通了鏈上與鏈下。
動態 | 火幣中國CEO與馬來西亞總理討論區塊鏈將如何在馬來西亞落地:據雅虎財經消息,近日,火幣中國CEO袁煜明與馬來西亞總理馬哈蒂爾(Mahathir Mohamad)就“如何在制造業和能源行業中應用區塊鏈”以及“區塊鏈將如何在馬來西亞落地”進行了討論。[2019/5/29]
5、無縫無分叉的鏈上升級
熟悉區塊鏈行業的朋友都知道,在過去,所有的公鏈項目包括一些聯盟鏈項目,如果想要做升級的話,都需要進行一個硬分叉。像比特幣,特別是以太坊。大家都知道在16年由于“The DAO”事件,由于礦工意見不同,最終從以太坊分出了經典以太。
我們為什么要做鏈相關的升級?這其實涉及到了一個計算機或者編程行業。
大家其實默認這樣一個現象:沒有任何一個程序員可以寫出沒有漏洞的代碼。
不管是寫傳統的應用,還是寫區塊鏈得應用,或者智能合約。通常情況下你寫的代碼越多,那么你可能產生的安全漏洞就越多。
回顧過去的幾年,不管是DEFI還是鏈本身,大家都會發現很多各種各樣的漏洞,導致很多用戶有各種各樣的財產損失。
這就使得區塊鏈本身需要一個比較好的升級——不管是智能合約升級還是鏈本身的升級。
但如果我們頻頻地去使用這種硬分叉進行升級,首先時間趕不上,因為升級需要“各個礦工在很短的時間內,把自己的軟件升級到最新的版本,然后在某一個特定時間內大家共同去升級到這樣的版本,最后從舊鏈切入到新鏈上面”的這樣的一個邏輯。
然而,由于硬分叉,這種升級模式成本極高,而且很多時候可能會導致你本身的鏈又分叉出其它的鏈。
那么像Substrate就有一個無縫的鏈上升級。其實就是將開發者相對應的一個Runtime提交到鏈上面,然后進行一個驗證者鏈上投票,大家可以看到這其實是跟鏈上治理相關的。
鏈上投票完成以后,如果絕大多數人同意進行對應的一個升級,那么開發者提交的一個Runtime就會被寫入到整個鏈的Runtime里邊,進行對應的升級。
有了這樣一個無分叉鏈上升級,就可以保證區塊鏈開發者可以更安心的運行自己的區塊鏈。
即使出現一些問題,也可以很快的去進行修復或改正。
圖9
6、鏈下工作機(off-chain worker)
大家都知道,在以太坊上面我們有各種各樣的預言機,例如chainlink 。
在過去的半年,預言機是很受到各種各樣的人的關注的。
因為以太坊本身無法打通鏈上鏈下的渠道,所以鏈上如果想要獲得鏈下數據——例如各種各樣的通證價格,就需要這種預言機將數據發送到鏈上。
聯想回應新品手機如何應用區塊鏈技術:目前沒有更多可披露的:20日下午,聯想發布新品手機Lenovo S5,并將其定義為“區塊鏈手機”。那么Lenovo S5是如何應用區塊鏈技術的?全天候科技就此向聯想方面求證,對方表示,“聯想S5首創雙域隔離、全域加密的安全空間——Z空間,創新性解決支付安全的行業難題,能全面保障用戶的賬號、密碼以及網絡購物的安全,并從底層支持最新的區塊鏈技術。關于區塊鏈其它的內容,目前還沒有更多可以披露的。”[2018/3/21]
而Substrate本身就是鏈下工作機的運行原理——其實就是鏈上的這些節點,它們會通過鏈下工作機去取得鏈下的相對應的數據。
圖10
那么這些鏈上的驗證節點,就可以對鏈條數據直接進行處理。
未來的話可以對處理結果——例如在鏈上形成共識,來保證可以更快、更方便的拿到鏈下信息,并進行相關的計算。
像在波卡或Substrate對應的生態里,就不太需要這種單獨的預言機。因為對應的這種鏈下工作機的接口已經寫的比較好了。
與此同時,大家也可以看到對應的這樣一個場景:除了我剛剛提到的想去拿一些鏈下數據;還有就是使用鏈下工作機的一些場景。
例如某些比較龐大的計算,我們就可以使用鏈下工作機來完成,結果完成后再返回給對應的一個鏈上驗證者。
這里有一些鏈下工作機的相關學習資源,大家可以進行一個參考。
圖11
7、如何更好的接入到波卡里面?
前面我講了一些關于例如波卡是如何使用Substrate進行開發的,以及Substrate寫出來的Runtime大概是什么樣的,同時還有Substrate進行開發的優點的話題。
那么大家可能也更想知道:如果用Substrate去開發出一套區塊鏈系統,我是如何更好的接入到波卡里面的?
大家可以看一下圖12,其實就是關于波卡整個的一個框架。
熟悉波卡都知道,Polkadot最中間、最核心的是叫做Relay Chain或者叫做中繼鏈。中繼鏈里面跑了很多對應的驗證節點,叫做區塊驗證節點(Validators)。
圖12
不同的鏈如果接入到中繼鏈里邊,它們就會作為一個平行鏈接入到中繼鏈里邊。
很多比較大的區塊鏈系統,例如比特幣或者以太坊,它們如果想接入到波卡里面,就需要通過橋首先調節到一個平行鏈上面,再通過平行鏈與其他的平行鏈溝通。
作為平行鏈,它們對于內容的或者區塊的驗證要通過中繼鏈相關的驗證節點來完成。
那么的話大家就會問,平行鏈本身需要什么節點?這就像圖里面提到的一樣,需要叫做collator的這樣一個類型的節點。
這些節點就負責采集每個平行鏈對應的區塊,然后提交給中繼鏈隨機選擇的一些區塊驗證節點。這些區塊驗證節點就會去驗證平行鏈里對應的區塊。
與此同時,使用Substrate寫出來的區塊鏈,還需要另外一個模塊叫做Cumulus。大家可以在用Substrate寫完這個Cumulus后,再進行稍微的改進,就可以用Cumulus連入到平行鏈里面。
當然,不是每一個Substrate鏈都可以連入到平行鏈和中繼鏈,或者波卡里面——這就涉及到一個平行鏈插槽的拍賣。
圖13
8、Web3基金會如何支持波卡生態發展?
波卡生態里面的項目特別活躍。大家可以看一下,不管是基金會還是Parity,我們對波卡生態項目的支持,都是很高的。
例如我們在大概3月的時候,就已經發放了超過100個項目對應的Web3項目,與Web3基金市場grant的支持。
與此同時,我們也會有叫做builder?program去幫助社區一些相對成熟的團隊,給他們提供技術及商務市場的一個服務。
當然,作為一個不太熟悉技術的社區成員,你也可以參加我們的大使計劃,去幫忙推廣波卡相關的技術及理念。
圖14
在亞洲或者國內,大家可以看到從今年5月份開始,我們跟萬向合作做了Web3訓練營,孵化了15支團隊。
這15支團隊大部分已經上了相關的測試網和主網。然后像做融資等也都是非常受歡迎的。
未來,我們也希望有更多、更好的團隊可以加入到我們的Web3訓練營里。我們會提供技術、商務以及市場相關的支持。
全球已經有超過100個團隊基于Substrate進行開發區塊鏈。
我們作為亞洲團隊或者說中國團隊,大家可以看到,在過去的一段時間里,我們已經為大家提供了各種各樣的Substrate開發的相關中文資料。
不管是知乎專欄、Polkadot公眾號,還是線上、線下活動,包括嗶哩嗶哩直播,都歡迎大家去搜索Substrate,或搜索我們的社區,積極加入到我們的活動里面。
與此同時,我們也有一些最新的活動——例如在月底我們要舉辦國內首次web3大會,主題就是開放、開源、互聯。
我們會邀請海內外——不只是區塊鏈行業或波卡生態項目及嘉賓,我們還會邀請海內外比較出名的、對Web3整個領域貢獻比較大的嘉賓,去分享他們對Web3的理解,以及對Web3生態的貢獻。
圖15
大家如果感興趣,可以去學習這樣的一個教程,去體驗一下Substrate新的開發框架——不管是鏈上升級,還是鏈下工作機。以及我們提供的各種各樣的模塊,來搭建自己的區塊鏈。
很高興今天能收到密碼極客的邀請,今天為大家分享了這么多,也希望大家未來不管是在波卡生態,還是在區塊鏈生態,都能夠更好的開發、融入到我們的區塊鏈行業,謝謝大家!
問題一,來自網易區塊鏈創新業務負責人胡志敏。
胡志敏:如果作為一個開發者,想在波卡生態中和基于Substrate上進行區塊鏈創業的話,一定會需要一些啟動資金,我想了解polkadot官方基金對于區塊鏈應用的扶持策略,比如對于什么樣的項目會啟用官方投資?
賈瑤琪博士:關于波卡生態和機器設備進行開發的相關項目和團隊,我剛剛已經講過,不管是基金會還是parity,都會提供比較大的支持。
關于資金方面,基金會會根據項目相關的資質來進行評估。
大家可以去申請一個叫做Web3 grant這樣的一個項目。對于一些相對比較好的項目,基金會會提供大概3萬美金的一個支持。
當然,對于比較復雜的項目也會提供更高資金的支持,但是需要花費更長的時間進行審核。
對于一些相對成熟的、有產品或者有測試網的項目,可以申請我們比較成熟的、相關的一些program。例如builder program或者我們的web3 bootcamp,web3訓練營。我們會對這些項目提供技術市場以及商務相關的指導與幫助。
與此同時,我們也會聯系波卡生態里比較積極,支持我們的相關投資人或者海內外投資人,去幫忙觀察一下這些項目,并且進行一些相關的投資。
問題二和問題三來自Coinversation代碼貢獻者,北大畢業,有12年程序開發經驗的清歡。
問題二
清歡:如果開發平行鏈,后續平行鏈接入卡槽的成本會是多少?
賈瑤琪博士:針對第一個問題,如果開發平行鏈,那么插槽的成本會是多少?目前來講,我們還沒有一個很明確的計算。例如大概多少的dot你可以拿到插槽。但就目前來看——因為我們的插槽不是直接去買賣的,而是需要用戶去鎖自己對應的一個dot——那么的話,其實我們還是鼓勵不同的團隊去更好的發展自己的社區,在未來可以通過眾籌的方式或去發展自己平行鏈這樣的一個盈利能力,然后就可以用自己盈利獲得的資金去進行插槽拍賣。
問題三
清歡:Coinversation使用ink!智能合約開發項目,目前從開發工具到智能合約測試再到部署都相對比較煩瑣,后續如何能降低這些開發的門檻?
賈瑤琪博士:ink!現在已經出到第三個版本,具體情況大家可以去看一下。
關于ink!相關的開發、開發的模塊以及相關的組件,我們也在逐步進行開發完善,從而方便更多的開發者去更好的使用ink!科技來進行開發。
目前你講得也很對,可能有些開發工具確實不是那么地到位。但我們的Web3基金會已經給了一些開發工具的團隊在做類似于remix的一個Ide,來幫助開發者使用ink!進行開發。
問題四
Polkadot社區1群成員:波卡或Substrate的應用開發必須要作為平行鏈嗎?這樣每個應用都開發鏈,平行鏈的插槽不夠了怎么辦?
賈瑤琪博士:除了平行鏈,其實還是有其他的方法。
第一個方法就是我剛剛提到的,可以去通過平行線程,然后接入到系統里面。
平行線程不需要一個平行鏈團隊獨占一個插槽超過半年或兩年。它只按需競拍不同的區塊,然后把自己的區塊寫入到波卡系統里面。
當然,還有一些方式。如果你只是搭建一個比較簡單的應用,那么可以嘗試使用ink! 或Solidity編寫智能合約,然后可以將自己的智能合約或者相關的應用部署在智能合約平行鏈上面。通過智能合約平行鏈去調用以及提供數據給其他的平行鏈,還可以利用到波卡對應的跨鏈優勢。
還有,也可以搭建一個單獨的Substrate的鏈。未來通過某種方式橋接到一些平行鏈上面,那么通過平行鏈就可以將自己鏈的數據與其他平行鏈進行溝通。
大致的話通過以上三種方式,再加上拍賣平行鏈插槽,然后接入波卡。一共四種方式來接入到波卡的系統里面。
無論何時,占據加密市場主導地位的比特幣總給人一種“高不可攀”的感覺。每當比特幣越發走高,人們總會認為它的空間越發小,于是就有了許多分歧,有些人把目光轉向了它的分叉,有些人轉向了以太坊或者其它一些.
1900/1/1 0:00:00文章系金色財經專欄作者炊事團團長供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.
1900/1/1 0:00:00繼2019年11月發布《監管虛擬資產交易平臺立場書》和《香港證監會發布監管虛擬資產交易平臺發牌照條款和條件》兩個文件之后,時隔一年,香港證監會再度出手.
1900/1/1 0:00:00雖然以太坊已經成為數字資產世界里面最熱門的加密貨幣的首選區塊鏈,但下一代區塊鏈網絡也正吸引著應用程序開發者的關注.
1900/1/1 0:00:002020年對區塊鏈和數字經濟的發展來說,是意義非凡的一年。分布式存儲、DeFi(Decentralized Finance,分布式金融)、NFT、跨鏈生態等多項技術領域全面開花,將區塊鏈的發展帶.
1900/1/1 0:00:00七國集團(G7,由世界七大發達國家經濟體組成的國際組織,目前成員為美國、加拿大、英國、法國、德國、意大利及日本)央行行長和財政部長表示,將暫停全球穩定幣項目Libra的推出.
1900/1/1 0:00:00