點擊上方藍字關注我們
核心技術Chain33介紹
行業痛點
目前市面上已有部分公鏈開發團隊,但公鏈開發門檻極高,相關人才稀少,開發成本高、難度大、周期長。真正需要使用區塊鏈技術的企業或者希望藉此轉型的企業,難以獨立完成開發,這也限制了區塊鏈技術在商業端的結合與探索。難道市面上就沒有一套入門門檻低、易於開發且高效的區塊鏈底層系統嗎?為此,Chain33開發者平臺應運而生,旨在讓開發者輕鬆玩轉區塊鏈!
Chain33是一個開發門檻低、可拔插、易升級、分層的高效區塊鏈架構,可供開發公鏈、聯盟鏈及私鏈等,並首創平行鏈架構及模塊化體系。由杭州複雜美科技有限公司(下稱複雜美)歷時5年研發。經過5年的潛心研發,2018年11月19日,複雜美的核心技術Chain 33正式開源。
基本信息
開源日期:2018年11月19日
Github上的Chain33開源地址:https://github.com/33cn/chain33
Chain33開發者平臺官網:https://chain.33.cn/
推特:https://twitter.com/FuzameiLtd(@FuzameiLtd)
開發團隊-複雜美企業官網:https://33.cn/
支持的共識機制:支持可插拔的共識
公鏈: POS(案例:比特元BTY),DPOS+BFT(案例:原鏈YCC)
聯盟鏈:Tendermint,PBFT
私鏈:RAFT
平臺支持語言:Go語言
智能合約開發語言:Go,Solidity,C++,Javascript
特 點
模塊化設計,輕鬆部署你的鏈
Chain33採用模塊化設計,提供超過十種以上的模組化功能,開發者可自由組合應用,開發簡易,僅需基礎的編程能力,即可打造一條公鏈,無需耗費大量成本自己開發區塊鏈底層;
高兼容性,應用無礙移植
Chain33的兼容性極高,無論是大型或是小型應用,皆可以無礙在Chain33上開發;
可修改內核,共識可插拔,滿足你的每一個需求
不同於其他公鏈大多只能開發DApp,Chain33開放修改內核,對內核作二次開發,內核極小,可通過可插拔模式替換;
首創平行鏈架構,兼顧安全、高性能與多樣化生態
最後,Chain33首創的平行鏈架構,兼顧主鏈的安全和運行效率的同時,可用平行鏈來打造多樣的生態性,市場應用前景巨大。
技術架構
Chain33技術構架支持目前市場上的兩大區塊鏈需求場景,即「公鏈構架」和「聯盟鏈、私鏈構架」。主要分為五個層級:數據層、網絡層、共識層、激勵層及應用層。
應用層:兼容以太坊智能合約,支持發行代幣、資產交易、錢包找回,hash鎖定等原生能力,同時支持用戶可擴展執行器(合約)。共識層:共識算法可插拔,支持POS及DPOS的公鏈共識、Tendermint及pbft聯盟鏈共識、Raft私鏈共識、平行鏈共識等。數據層:數據存儲方式支持可擴展,目前支持MPT、MAVL、KVDB、MVCCKVDB多種方式。
平行鏈架構介紹
平行鏈是其公鏈架構中的一大特色。為了解決區塊鏈擴容以及TPS限制問題,目前市面上的主要方案包括「分片技術」、」側鏈「以及「DAG」,其中分片技術為主流形式。但以上三種解決方案都存在一定問題,尚未有最完美的方案。而平行鏈概念的提出,提供了一種更好的選擇方向.
Chain33是行業內第一個提出平行鏈構架概念,並解決擴容和TPS低落兩大問題的區塊鏈系統。平行鏈此後其被百度、阿里等機構認可並跟進研究,也證明了平行鏈方向具有前瞻性。
但提升區塊鏈網絡性能只是平行鏈架構的基本屬性之一,平行鏈的核心競爭力在於大大降低了部署公鏈的門檻,因此平行鏈也可理解為「平行公鏈」、「小公鏈」。
chain33平行鏈拓撲示意圖
平行鏈的概述
平行鏈由多條底層為Chain33的鏈組成,交易發送到主鏈上被共識打包,隨後同步到平行鏈上被執行,最後執行結果寫回主鏈進行共識,分離共識和交易執行,同時實現交易執行,提升TPS。
平行鏈面向所有群體開放,屬於公鏈的一種,它不僅僅是一個dapp的應用,它也是在主鏈基礎上搭建的區塊鏈,擁有自己的區塊鏈生態,平行鏈使用主鏈的共識,擁有獨立的錢包和區塊鏈瀏覽器,結合開放平臺的API 和 SDK,就可以開發出自己所需的應用鏈。非常適合需要建立自己商業生態的中小企業。
chain33平行鏈示意圖
首創平行鏈架構優勢
平行鏈架構的設計,既能保證主鏈的安全,又能提升主鏈的運行效率。平行鏈的一大特點是分開數據存證和業務邏輯,提升運行效率。主鏈上只放指令和結果,不放虛擬機,較為複雜的業務邏輯則放在平行鏈上實現,這樣做的好處是若平行鏈性能出現問題或者智能合約被攻擊,都不會影響主鏈的穩定運行。
但這並不代表平行鏈完全受制於主鏈,它亦是一條相對獨立的區塊鏈網絡,可以編寫多種智能合約,如發行各種Token、開發Dapp、擁有獨立的錢包、獨立的區塊鏈瀏覽器等等,平行鏈的交易由自己的節點來驗證、校對,而不影響主鏈。
平行鏈雲服務組成
Chain33開發平臺系統特點
簡單易上手
聯盟讓開發者一學就會用,一用就能開發部署,是Chain33的首要願望。Chain33開發者平臺部署快捷簡單,一個可執行文件,數個配置參數,一行啟動命令便可以快速部署一個區塊鏈主鏈網絡及平行鏈網絡。
高效
聯盟區塊鏈中,交易在主鏈上共識並存儲。多條平行鏈同時處理交易,使區塊鏈網絡效率大大提升。
穩定
平行鏈構架有助於提升穩定性。複雜的功能可放在平行鏈上開發,主鏈不受影響。聯盟鏈主鏈只運行核心功能,簡單穩定。
安全
平行鏈使用主鏈安全的共識,安全性主鏈來提供。即便平行鏈遭到攻擊或損壞,數據可以快速從主鏈同步,保證數據安全。
高擴展性
平行鏈支持部署自己的微共識和生態,支持主鏈和平行鏈跨鏈,平行鏈之間跨鏈交易。
Chain33開發語言
系統特點
一個語言是否成熟的語言,一個重要的標誌就是開發過非常大型的系統。雲計算領域的兩個核心系統docker和k8s都是用go語言開發的。目前大部分區塊鏈系統也是選擇用go語言開發,可以說,要做區塊鏈,go語言是必須要學的一種語言。
開發人員數量
一個語言的入門成本比較低,但是要精通類庫和最佳實踐,必須要經過數年的學習時間。所以非常小眾的語言肯定不在考慮在內,目前go語言在全世界多如牛毛的語言中排行第十名,受到較多的開發者肯定。
語言的工程特性
Go語言在設計的時候,就考慮到了工程實踐的問題,一個問題的解決方案基本上都只有一種寫法,甚至只是把if寫成這樣都是非法的。go 提供了gofmt,會自動格式化代碼,這樣每個人寫出的代碼風格都非常一致,互相交流起來就不會有障礙。
面向大部分普通程式設計師
選擇go語言的一個很重要的原因,就是一個中等水平的程式設計師,就能寫出非常不錯的go代碼。這主要的原因還是go語言非常簡單,特性非常的少,官方類庫又非常豐富,大部分程式設計師都可以非常容易的上手開發。
核心競爭力
高度模塊化,遵循 KISS原則的設計:可插拔,易升級
Chain33的模塊化設計,在對區塊鏈的底層架構、應用開發的不同功能和需求進行分析的基礎上,劃分並設計出一系列功能模塊,通過模塊的選擇和組合可以構成不同的產品,以滿足市場的不同需求。
開發一個軟體其實是一個不斷迭代進化的過程,Chain33因此採用「從混沌走向秩序的開發模式」,方便開發者隨時調整和擴充。此外,有些開發者可能會在開發過程中發現,有些比較特殊的業務邏輯,需要專門定製某些模塊來配合這個業務邏輯。
從迭代和重構、以及系統的可拓展性等角度考慮,Chain33將區塊鏈的底層架構、不同應用開發的功能和需求納入考量,將系統進行了模塊化設計。包括 mempool的排隊方式,加密籤名的方式,共識的模式,RPC的函數,命令行的命令,錢包的內在邏輯,資料庫存儲的方式等等,區塊鏈核心的所有模塊都可以定製。
採用模塊化的設計,這就好比用積木搭建一個機器人,手腳等身體各部分都按照類別放置,可以根據自己的意願選擇組裝。在Chain33中,為大家提供了共識、加密和儲存等多種模塊,開發者在Chain33提供的架構下,可自由組合應用,開發簡易,因此僅需基礎的編程能力,即可打造一條公鏈,無需耗費大量成本自己開發區塊鏈底層。
開源插件
共識部分:
• pbft(聯盟鏈,beta)
• tendermint(聯盟鏈)
• raft(私有鏈)
• ticket(公鏈)
• solo (測試鏈)
加密部分:
• sep256k1 (bitcoin, ethereum)
• ed25519 (tendermint,sc)
• sm2 (國密支持)
store:
• mavl (tendermint 提供的後端數據存儲方式)
• mpt (以太坊提供的數據存儲方式)
• kvmvcc(目前性能最高的區塊鏈後端存儲方法)
執行器部分:
• evm (以太坊虛擬機支持)
• wasm (目前沒有開源)
• cert (聯盟鏈權限管理)
• hashlock (hash鎖定,和btc,eth 跨鏈使用)
• paracross (平行鏈,注意,平行鏈只是我們的一個插件,可見內核非常的小)
• privacy (類似門羅幣的隱私保護實現,這個例子可以好好學習一下,它顯示我們系統可擴展性的強大,門羅幣是utxo模型,但是也可以在我們系統裡面兼容帳戶模型)
• trade (內置一個幣幣交易所,可以支持鏈上所有資產的交易)
• 遊戲
成功案例
Chain33開發平臺可用於公鏈、聯盟鏈及私鏈開發部署,以及各類商業場景的DAPP應用開發。
公鏈案例
目前,chain33上已經成功搭建的公鏈案例包括:比特元區塊鏈網絡(BTY),企業級區塊鏈SaaS平臺-原鏈(YCC),Dapp開發者可基於以上公鏈開發,或自主部署公鏈、平行鏈;
聯盟鏈、私鏈案例
小米與複雜美合作的聯盟鏈等。
平行鏈案例
上鏈購-區塊鏈商城、chat33-區塊鏈聊天社交軟體、火食-區塊鏈進口食材溯源系統、藝術藏品行業-金絲楠木鏈、工業鍋爐及節能產業-節能鏈、星晴-區塊鏈醫療智能穿戴設備、區塊鏈遊戲—遊戲競猜剪刀石頭布等平行鏈。
各類商業場景的區塊鏈結合
Chain33的性能已證明足以支持商業級應用,包括供應鏈金融、倉單交易、票據撮合系統等,並可應用在多種產業,如:製造業、物流業、金融業等,不同的產業可在不同的平行鏈上開發公鏈,平行鏈和平行鏈之間不相互影響。
供應鏈系統應用
區塊鏈應收款
區塊鏈預付款
供應鏈金融與管理平臺
金融租賃、金融倉儲區塊鏈平臺
區塊鏈倉單抵押流轉與融資、區塊鏈金融租賃等
區塊鏈積分,支付系統
區塊鏈交易所等
市場對比
1
整體結構對比
以目前市場上較為知名且成熟的石墨烯和Fabric為例,整體結構對比如下:
2
技術特點對比
01
以太坊智能合約部署過程
搭建以太坊私鏈環境,生成私鏈的創世區塊;
啟動私鏈,生成一個初始的以太幣帳戶,開始挖礦(挖礦需要一個帳戶接收以太幣);
編寫智能合約,solidity和mix語言;
編譯智能合約,單個文件的簡單合約可以在線編譯,多個文件需要藉助solc(編譯成字符串,全網同步);
部署,合約部署當作一筆交易記錄再鏈上,需要支付一定以太幣,並且運行需要gas。
02
超級帳本智能合約部署過程
規劃好聯盟鏈的組織形式, 再編輯fabric的配置文件(包括:相關證書文件,系統通道初始區塊,應用通道交易文件,錨節點配置更新交易文件等);
編輯好docker-compose文件(需要理解裡面各參數的含義, 目前fabric開原始碼裡的共識只支持kafka和raft), 啟動4個peer節點,一個order節點組成一個kafka集群;
部署fabric對應的SDK程序;
編寫fabric的智能合約;
通過SDK來創建channel,把上面啟動的peer節點加入到channel,同時安裝並初始化chaincode(智能合約),在各個節點部署並初始化智能合約;
執行智能合約。
03
智能合約部署過程
GO語言部署方式:
EVM的部署方式:
WASM的部署方式:
JSVM的部署方式:
3
與以太坊和超級帳本系統間橫向對比
1.特點
Chain33
輕量級框架,功能易擴展,支持可插拔的共識配置,適用於公鏈,聯盟鏈和私鏈2、獨創的平行鏈架構設計,使系統安全、穩定、高效。
以太坊
第一條實現智能合約的區塊鏈。2. 性能問題,只適用於小規模的項目。
EOS
DPOS的共識,及超級節點的高性能配置,使得它共識效率較高,速度較快。2. 超級節點的高配置導致伺服器的成本很高。
超級帳本
適用於聯盟鏈,系統中的CA, 資料庫,共識可插拔2. 框架比較重量級,不是非常理解內核的,無法進行比較大的定製。
2.共識機制
Chain33
公鏈:POS(BTY),DPOS+BFT(YCC)聯盟鏈:tendermint, pbft私鏈:raft
以太坊:POW逐漸轉向POS
EOS:DPOS共識
超級帳本:Kafka, raft
3.平臺語言
Chain33:GO
以太坊:GO
EOS:C++
超級帳本:GO
4.智能合約
Chain33 支持以下4種智能合約:
GO原生語言,適用於大規模複雜的合約邏輯
EVM(Solidity編寫智能合約),兼容以太坊上的合約
WASM(C++編寫智能合約),兼容EOS上的合約
JSVM(Javascript編寫智能合約),Javascript開發者眾多,降低區塊鏈開發門檻,一個JS程式設計師就可單獨進行Dapp開發,快速並提高開發效率。
以太坊:Solidity編寫合約,無日誌,難調試,修復代碼錯誤難度較大
EOS:C++語言編寫
超級帳本:Docker中部署任何語言可寫,實現各種功能相對靈活
5.跨鏈支持
Chain33: 支持主鏈和平行鏈跨鏈
以太坊:MTP跨鏈
EOS:支持側鏈
超級帳本:不支持垮鏈驗證,無法和超級帳本以外的鏈相連
6.部署難度
Chain33:簡單
以太坊:相對簡單
EOS:相對簡單
超級帳本:相對複雜
7.擴展性
Chain33:好
以太坊:差(設計缺陷)
EOS:好
超級帳本:好
8.籤名算法
Chain33:相比於後幾者,還支持國密SM2,ed25519, 環籤名
以太坊:secp256k1
EOS:secp256k1
超級帳本:secp256r1
9.存儲性能
Chain33
存儲合理,可擴展分布式資料庫,讀寫快。資料庫支持:Leveldb, ssdb, pegasus
以太坊:單一leveldb存儲
EOS:存儲合理,可擴展分布式資料庫,讀寫快
超級帳本:存儲合理,可擴展分布式資料庫,讀寫快
10.企業級應用
Chain33
共識可插拔,可以支持聯盟鏈的共識2. 支持CA認證,以及平行鏈的架構兼顧了共享和隱私,適用於企業級的應用。
以太坊 :更適合做公鏈,企業級應用只適用於小規模項目
EOS
適合於公鏈應用,目前大量的應用都是博彩類。不適合用於企業級應用:1. 企業級應用對於數據隱私和監管有較高要求,大量數據和博彩類數據雜糅在一起,不利於監管。2. 如果要單獨搭建一套EOS平臺,伺服器成本過高。
超級帳本:聯盟鏈,適用於企業級應用
11.安全漏洞
Chain33
已經在和安全公司合作對chain33的安全性做測評, 目前未發現安全漏洞。
以太坊 :Solidity語言設計漏洞(the DAO)
EOS:大量的安全問題,已經發生多起博彩類應用被黑客攻擊
超級帳本:暫無
12.開發成本
Chain33
開發速度快,官方提供很多可插拔的插件,減少重複開發開發語言支持GO, Solidity, C++
以太坊
開發相對容易,但性能受限
EOS
支持C++語言開發合約,開發效率高於fabric和以太坊
超級帳本
通用性接口多,難以熟悉,開發成本高,團隊人員分散,解決問題慢
13.開源協議
Chain33: BSD3
以太坊: LGPL3.0
EOS: BSD 3
超級帳本: Apache 2.0
14.落地項目
Chain33:案例較多,多家500強的實際案例
以太坊: 比較少,以公鏈為主
EOS: 案例較多,大多是博彩類應用
超級帳本:案例較多
15.團隊情況
Chain33
有穩定的國內團隊,所有代碼都是團隊人員自行開發,可以對區塊鏈進行深度定製,解決問題速度較快。
以太坊
開發團隊分散在全球各地,很難進行深度定製, 遇到問題不容易解決。
EOS
開發團隊分散在全球各地,很難進行深度定製,遇到問題不容易解決。
超級帳本
開發團隊分散在全球各地,很難進行深度定製,遇到問題不容易解決。
總 結
Chain33開發者平臺,致力於為開發者呈現一個易上手、高性能、穩定、安全的區塊鏈底層系統,具有近200項區塊鏈專利,全球排名前八。經過5年潛心研究與開發,首創了平行鏈架構及模塊化體系,主鏈進行存證,平行鏈處理業務邏輯,極大提升了區塊鏈網絡的性能、安全性及穩定性。
使用chain33開發者平臺,可用於開發部署公鏈、聯盟鏈及私鏈,以及各類商業場景的區塊鏈解決方案和商業應用,如供應鏈金融、資產上鏈、各類DAPP等。
現Chain33已全面開源,面向全球的開發者開放,任何開發者都可以上Github(https://github.com/33cn/chain33)查看Chain33的代碼,加入Chain33的開發者社區。
Chain33開發者平臺連結
官網:https://chain.33.cn/
產品文檔:
https://chain.33.cn/document/60
資源包下載:
https://chain.33.cn/resource
Github開源社區:
https://github.com/33cn/chain33
點擊觀看複雜美官方宣傳片
比特元社區
長按識別二維碼加入我們