每晚八點,我們在社區分享知識。

** 樂樂:sensus113
美果大冰:xj73226**

備註入羣,謝謝!

「Nervos
AppChain」是一套開源的應用公鏈解決方案。它主要爲 B 端用戶解決「搭建區塊鏈困難」和「開發區塊鏈應用困難」這兩個問題。我們在市場痛點調研中發現,很多行業或企業聯盟有商業資源,具備一定傳統應用系統的開發能力,也有意願搭建一條自己的區塊鏈,但當前市場並沒有一個完整的的技術方案來支撐開發。同時,許多的應用開發者們想要開發一些酷炫的區塊鏈應用,但他們常常被以太坊的低性能所拖累。而我們嘗試通過推出一套產品,即
Nervos AppChain,來解決這個問題。

Nervos AppChain 組件

CITA | 區塊鏈內核

Nervos AppChain 的核心組件是採用微服務架構的底層區塊鏈內核
CITA。作爲區塊鏈內核,它可以配置成許可鏈也可以配置成公有鏈。前者作爲成熟產品在過去兩年中成功地支撐了多家銀行和金融機構的區塊鏈創新業務。後者則專門針對各類商業應用做了改進,包括支持靈活的激勵機制(原生代幣經濟模型)和治理機制(通過智能合約進行記賬節點配置、權重分配等)。公有鏈模式下的 CITA 由強力節點作爲記賬節點,其他節點作爲同步節點共同維護一個高性能的區塊鏈生態。

CITA 將一個區塊鏈節點的共識、網絡、計算、RPC
等功能進行了微服務化拆分,每一個微服務又可以有多個實例,最終這些實例共同完成一個節點的記賬功能。這樣,我們將區塊鏈性能的擴展問題轉化成了節點的擴展問題,當性能不足時,插入一臺服務器,分擔節點的工作壓力即可。同時,我們將共識機制、底層邏輯進行了深度優化,例如採用 Rust 語言架構所有代碼等。最終實現了目前開源可實證區塊鏈系統的頂級性能。這是一組實測數據:由 4 核 8G 雲主機構成的 AppChain 的性能可達到每秒 2900 筆簡單交易;32 核 64G 雲主機組成的 AppChain 的性能則超過了每秒 1.5 萬筆簡單交易。而採用集羣構建節點的 AppChain 性能則更高。這樣的性能已經足以應付絕大多數應用場景。

Neuron | DApp 錢包

Neuron 是 Nervos AppChain 產品中的一個核心組件。它提供了現實世界的用戶訪問區塊鏈世界的入口。Neuron 一方面是 Nervos
Network (也兼容以太坊)上用戶私鑰和各類數字資產、私有產權和私有數據的管理工具,更重要的,它作爲一個 DApp
的運行平臺,可以允許各種區塊鏈應用以小程序的方式在用戶終端直接運行。

設想一個 AppChain 上的區塊鏈遊戲開發者,他只需要完成智能合約的核心開發和 DApp
的訪問網站開發即可,複雜的私鑰管理和數字資產管理業務都由開源的 Neuron 接管。用戶只需要輸入 DApp 的 URL 甚至掃碼即可訪問 DApp
並完成遊戲操作。開發者也可以利用流行的支付服務整合到操作頁面中,例如使用微信充值購買區塊鏈上的遊戲道具。而第三方開發者也可以製作新的
DApp (遊戲副本等)與原 DApp 在智能合約層面交互、實現去中心化協作,共同爲用戶創造價值。

AppChain 的運營者或者 DApp 開發者也可以選擇重構開源的 Neuron
代碼,爲用戶提供更加專業和針對性的服務。相信這將大大降低開發者的門檻,也降低用戶的學習難度。

Microscope | 區塊鏈瀏覽器

Microscope 的目標是打造一個類似 etherscan
的區塊鏈數據訪問平臺。它提供對區塊數據、交易數據、賬號地址數據以及智能合約的訪問等必備功能。Microscope 支持多鏈訪問,只要給出對應
AppChain 的 RPC 服務地址,即可接入這條區塊鏈並提供數據瀏覽服務。AppChain
運營方可以部署一個自己的專用瀏覽器,也可以將訪問接口提供給其他瀏覽器。

未來 Microscope 將增加數字資產訪問、結構化數據展示等功能。對應地,我們將提供一個鏈上 KV 數據自動轉換爲本地關係型數據的中間件,以方便
DApp 的開發。開發者可以通過中間件快速索引業務數據,爲用戶提供更加友好的服務。

ReBirth | 區塊緩存服務器

ReBirth 是一個提供區塊鏈數據緩存服務的服務器端組件。它通過在服務器本地緩存 AppChain 上的數據,爲 Microscope 和 Neuron
提供所需的數據緩存和查詢服務,加快查詢區塊數據的速度,提升軟件的使用體驗。

Nervos AppChain SDK | 軟件開發工具包

考慮到簽名、報文拼裝,abi 調用等複雜操作,區塊鏈操作對於絕大多數開發者來說都有不小的難度。爲此,我們提供了多平臺 SDK 進一步降低開發門檻。目前正在維護的開源 SDK 包括
JavaScript、Java、Android、Swift 等多個版本,方便開發者使用。(目前我們已經上線了 JavaScript 版本和 Java 版本的
SDK:nervos.js 和 nervosj)

以 JavaScript 版本的 @nervos/chain 爲例,DApp 前端在 Neuron
中運行可以自動獲得區塊鏈訪問接口,並通過該接口請求用戶對區塊鏈交易進行數字簽名。SDK 提供完整的環境檢測、區塊信息查詢、交易信息查詢等接口,開發者只需要調用交易接口,其餘工作完全由 SDK 來處理,大大簡化開發流程。用戶也可以同時使用以太坊的 web3
SDK,使得同一個 DApp 前端同時支持以太坊網絡和 Nervos AppChain 網絡的業務操作。

AppChain 特點

靈活部署

AppChain
是完全免費和開放的,任何開發者或運營者都可以下載源代碼自己部署一條鏈,並在自己的鏈上構建完整的應用生態。開發者和運營方在構建自己的生態時,可以設計並實現自己的經濟生態,且不需要購買或提前獲得 Nervos
AppChain 的基礎代幣。因此,AppChain 的發佈和運行完全是由開發者自主主導的。

作爲開源產品,開發者可以隨時從 GitHub 下載最新版本的 Nervos AppChain 源代碼自行編譯部署。爲了方便開發者更加簡單地部署,我們除了提供
docker 這種開發者友好的部署方案之外,還將與華爲雲等多家雲服務商合作,提供一鍵部署服務。開發者在這些雲服務商的網站上選擇一鍵部署 Nervos
AppChain
服務,接着輸入節點數、原生代幣信息等幾個必備的參數即可生成一條應用公鏈。考慮到區塊鏈的去中心化特性,後續加入的節點可以不受限於同一個雲服務商的主機。

我們還將與萬雲等多家 BaaS 服務商合作,提供 Nervos AppChain 的環境實例,開發者可以直接在萬雲運維的一條 AppChain 上免費部署
DApp 並向用戶發佈。這將進一步降低開發門檻。

多鏈協議

區塊鏈的根本價值在於其形成的鏈上共識。顯然,並不是所有的共識都需要在全球範圍內達成一致。例如一個玩家社區、一個供應鏈金融服務以及一個校友會,他們內部的互動是不需要在全球範圍內達成共識的。如果強行要求所有的區塊鏈應用都在同一個環境下達成共識,其結果一定就是
Cryptokitties
這種只有少數人使用的服務會時不時地將以太坊這種定位在全球共識的基礎設施服務搞垮。由此可以得出一個非常自然的結論:既然共識是有範圍的,區塊鏈本身也應該是有層級和範圍的。Nervos
AppChain 專注於提供特定範圍內的應用公鏈服務,任何應用或行業都可以搭建自己的 AppChain 並構建自己的生態。

在我們的願景中,未來將會有數百條甚至數萬條 AppChain 在並行運行。通過一個開放的多鏈協議,用戶的 DApp 錢包可以訪問任何一條鏈上的任何
DApp,並同時管理各條鏈上的資產。對於終端用戶來講,多鏈之間的切換完全是透明的,其信息交互完全由 Neuron
處理。不論用戶使用哪條鏈,他的地址都是一致的。因此,用戶在自己的賬戶(區塊鏈地址)下可以統一管理各條 AppChain
上的資產,甚至無需知道這個資產在哪條鏈上。

在這樣的設計理念下,不論是 DApp 開發者還是終端用戶,他可以不用關心具體的鏈信息,而是將所有的 AppChain 統一看作一個虛擬的 Nervos
Network。用戶打開 DApp 操作時,基礎設施會自動將其定位到 Nervos Network 上的某個具體的
AppChain,執行訪問智能合約併發送交易等操作。這也意味着 AppChain 將單一區塊鏈的性能大幅提升後,多鏈協議將 Nervos Network
作爲整體,使得區塊鏈的性能和吞吐率獲得了矩陣式的提升。

安全與跨鏈

熟悉區塊鏈技術走向的開發者可能馬上會提出疑問:Nervos AppChain
這樣的多鏈架構是否會帶來記賬節點作惡的風險,以及如何實現跨鏈資產流轉等功能。如前所述,Nervos Network 中除了 Nervos AppChain
多鏈外,還包含一個重要的基礎公鏈,Nervos CKB (Common Knowledge Base)。CKB 將爲所有的 AppChain
提供跨鏈價值流轉與安全性保障。

具體來說,作爲應用公鏈,使用者往往對運營方存在着一定的信任。例如某遊戲公司運營一條 AppChain
並將自己的遊戲業務邏輯以智能合約的形式在鏈上執行,或者某核心企業運營一條 AppChain
並將應收賬款、商業票據的金融資產數字化上鍊交易。這些鏈的使用者對運營方是天然信任的。但即便如此,作爲信任基石的區塊鏈仍然需要有“最終仲裁人”,以便在作惡行爲出現時能夠對作惡者做出懲罰。CKB 就是
Nervos Network 中最終仲裁人的角色,一旦 AppChain
的記賬人出現作惡行爲,例如雙花、錯誤交易打包、忽略出塊等等,用戶就可以提交相應的數學證明到 CKB 上,罰沒這些記賬節點在 CKB
上的押金。而 CKB 本身作爲全球基礎公鏈,其安全性由開放競爭的共識協議和全球節點共同保障。當然,作爲一個開放的生態,CKB 的監督完全是可選的。如果
AppChain 的用戶對運營方足夠信任,也可以選擇由鏈外機制進行仲裁。我們還將提供跨鏈交易功能,用戶在不同的 AppChain 上鎖定資產,可通過第三條
AppChain 或者 CKB 進行去中心化資產交換。

DApp 解決方案

傳統上,我們將實現特定業務功能的智能合約集合稱爲 DApp (Decentralized
Application)。DApp 的業務邏輯和執行過程都是分佈式存儲和操作的。不過智能合約作爲區塊鏈上的代碼塊,本身還需前端 UI 進行訪問和操作。因此一個 DApp 應用除了去中心化的部分之外,還需要部分中心化的服務來提供額外的功能,例如數字資產對應的圖片展示等。因此,現在一般認爲一個
DApp 包含智能合約、前端訪問 UI 以及後端服務等部分。

前端 UI

DApp 本質上需要滿足爲客戶提供價值的基本要求。區塊鏈和智能合約只是提供價值的平臺和手段。作爲與用戶直接接觸的前端 UI,仍然是應用方開發的重中之重。

開發者可以使用 HTML 在 PC 或移動端爲用戶提供服務,也可以採用 Native 程序爲用戶提供服務。通過開源的 Neuron DApp
Wallet (或開發者在其基礎上二次開發),開發者只需要開發 H5 頁面,即可爲用戶提供便捷的 DApp 前端。AppChain 也提供
java/swift/rust 等多種 SDK,方便開發者開發 Native 的應用程序。

後端服務

考慮到區塊鏈的 RPC 接口只能提供 kv 數據,不宜檢索關係型數據,且無法提供區塊鏈之外的擴展信息,因此一般來說 DApp
需要一個後端服務來提供支持。例如用戶持有的數字資產的虛擬外觀、戰鬥畫面等等。

AppChain 提供一個數據緩存層組件,用來將區塊鏈上開發者感興趣的 kv 數據轉換成關係型數據保存下來,並在需要的時候提供檢索信息。

業務合約

考慮到 AppChain
具有高吞吐量和高性能等特性,我們建議開發者將業務的核心邏輯和資產發行與流轉用智能合約實現。在這種情況下,同一個核心業務甚至可以由不同的開發者提供前端 UI 來訪問。並且第三方開發者可以開發新的合約與原核心邏輯合約交互。最終,圍繞着一個核心業務邏輯將生產一個生態,它的自由度和用戶粘性將遠遠超過目前常見的開放平臺。

**
*每晚八點,我們在社區等你。*

我們是祖國的花朵


Nervos CKB 唯一官網:Nervos.org

歡迎關注 Nervos Fans

Nerovs CKB 愛好者社區

Nervos Fans 如下頻道:

NervosFans twitter:@nervosfans

NervosFans微博:@NervosFans

NervosFans 微信公號:Nervosfans**

入羣請加樂樂微信:sensus113

美果大冰微信:xj73226

備註入羣,謝謝!

長按識別二維碼關注:Nervosfans