[转]区块链主流开源技术体系介绍
區塊鏈應用開發入門
區塊鏈技術如今是非常火熱,不僅讓金融家和創投家趨之若鶩,如今已經在多個領域遍地播種。作為擁有銳利觸角的創業家們,是否也想將區塊鏈集成到你們現有的應用中去,而作為IT技術工程師的你,是否也是躍躍欲試,想基于區塊鏈來練一下手,以免日后被新技術淘汰?不過,區塊鏈涉及如密碼學和P2P等多種技術,區塊鏈的技術門派眾多,新鮮概念層出不窮;而另一方面,區塊鏈技術的發展在全球范圍內還都尚處在早期階段,各種技術方案和應用場景等還需要進一步地探索和完善,導致很多人想運用區塊鏈,都找不到突破口,應該學習哪些知識和技術呢,應該用什么樣的區塊鏈呢?
就區塊鏈技術而言,Elwin只能算是新司機,但我仍然嘗試從開發工程師的角度,給區塊鏈有興趣的工程師分享一下區塊鏈應用開發入門的經驗。
我們大多數人的使用和開發區塊鏈的目標來說,并不是要真的自己重新創建一套區塊鏈,只是希望基于現有的區塊鏈底層或技術框架去開發自己的應用。因此,對于類似加密算法、 P2P技術、共識算法等我們只需要有個基本了解就可以了,暫時不需要深入研究。而我們入門區塊鏈應用開發的首要目標,是尋找一個相對成熟的區塊鏈底層去做我們的應用開發的基礎,其次,這個區塊鏈底層需要配套強大易用的開發接口或開發框架,此外,這個區塊鏈底層如果要考慮以后真正商用,還需要符合一些區塊鏈的技術指標,如擴展性、燃料費用、交易頻率等等。
就這兩點目標,Elwin走遍天涯海角,最終挑選出認為符合要求的幾個區塊鏈底層平臺給大家參考:
?
一、????? 比特幣
?
最早的區塊鏈開發便是基于比特幣的區塊鏈網絡進行開發了,由于比特幣是全球最廣泛使用和真正意義的去中心化,就區塊鏈應用來說,比特幣就是世上最強大的錨,擁有最大的權威性。因此,圍繞比特幣的各種區塊鏈技術非常多,這里不一一描述,只針對入門級別開發的介紹。
基于比特幣的區塊鏈網絡開發介紹兩種方式,一種相對比較簡單,基于Blockchain.info的API進行開發。Blockchain.info是比特幣的最流行的比特幣錢包和區塊查詢網站,同時也提供的比特幣及其區塊相關API。 Blockchain.info 提供了多種主流語言的API庫,包括了比特幣的錢包、支付、區塊、交易數據、市場數據等多方面的API。
?
?
?安裝和使用Blockchain.info的API比較簡單,首先你的機器需要有Node環境,在Blockchain.info的申請接口授權碼,安裝Blockchain Wallet API服務程序,就可以開始配置和測試Blockchain Wallet API服務程序了,要進一步開發,可以根據你的開發語言選擇安裝API的客戶端支持庫。
進一步的探索,可以采用Docker容器來快速安裝和配置私有節點的比特幣測試網絡(bitcoin-testnet)作為開發試驗環境,這樣可以更深入了解、調試和使用比特幣區塊鏈網絡。在Bitcoin的wiki網頁上面,提供很多種語言都可以調用Bitcoin的RPC,大家選擇適合自己的語言具體去試驗,當然,Elwin仍然推薦你使用NodeJS。
具體流程是下載比特幣測試網絡的Docker鏡像,運行Docker鏡像并啟動比特幣測試網絡,初始化和測試區塊鏈數據,當然為了測試少不了要先挖礦儲備一下。然后安裝相關開發語言的RPC支持庫后,就可以調試你的區塊鏈程序了。
?
二、????? 以太坊
?
可以說除了比特幣外,以太坊目前在區塊鏈平臺是最吸引眼球的。 以太坊是一個圖靈完備的區塊鏈一站式開發平臺,采用多種編程語言實現協議,采用Go語言寫的客戶端作為默認客戶端(即與以太坊網絡交互的方法, 支持其他多種語言的客戶端)。
基于以太坊平臺之上的應用是智能合約,這是以太坊的核心。每個智能合約有一個唯一的以太幣地址,當用戶向合約的地址里發送一筆交易后(這個時候就要消耗燃料費用,也就是手續費用),該合約就被激活,然后根據交易中的額外信息,合約會運行自身的代碼,最后返回一個結果。以太坊社區把基于智能合約的應用稱為去中心化的應用程序(Decentralized App),相對于冷冰冰的智能合約代碼,DApp擁有一個友好的界面和外加一些額外的東西,配合上圖靈完備的語言,可以讓用戶基于合約搭建各種千變萬化的DApp應用,實際上,在以太坊APP展區,已經有大大小小280個的DApp應用在展示(雖然只有一部分應用在真正運行)。
要寫以太坊的智能合約有好幾種語言可選,有類Javascript的Solidity,Python接近的Serpent,還有類Lisp的LLL,目前比較主流的是Solidity,推薦大家使用。當Solidity合約編譯好并且發送到網絡上之后,你可以通過以太坊的Mist客戶端對智能合約進行測試和使用,也可以使用以太坊的web3.js JavaScript API來調用它,構建能與之交互的web應用。
由于以太坊的知名度,所以很多社區大牛創造更加便捷的DApp開發框架和工具,包括Truffle、Embark、Meteor、BlockApps.net APIs,使得你可以快速開發你的Dapp。我的另外一篇文章《微軟的那些區塊鏈云服務》有提及,Embark和BlockApps.net兩個區塊鏈工具已經給整合到微軟Azure BAAS服務中了。這幾個框架和工具中,Elwin更推薦Embark,使用起來非常簡單。
通過以太坊,你既可以搭建基于屬于自己私鏈,也可以和合作伙伴一起搭建聯盟鏈,又或者直接將應用部署在以太坊的公共網絡中,Elwin要吐槽的是,使用以太坊Gas費用越來越高了,對于互聯網的應用,是自己搭建以太區塊鏈,還是使用以太公共網絡,真是兩難境地(以太坊宣稱,以太幣Ether價格上升時,那以太坊燃料的價格應該按比例下降,但好像并不是這樣阿)。
?
?
幾個主要入門步驟給大家簡單介紹一下,首先你可以安裝以太坊錢包客戶端Ethereum Wallet,體驗一下以太坊的錢包和智能合約,當中可以選擇公共網絡或測試網絡(如果你沒有或不想花費以太幣)。如果你已經很熟悉這些了,那好,直接進入正題,準備好Geth和Node的環境,同時安裝以太坊Mist客戶端(這個是為測試你的智能合約和Dapp準備),配置和啟動Geth(Geth和eth相關參數文章,請參考官網文檔),通常我會先用Geth搭建自己的私鏈來測試,Geth啟動后,你可以先在Mist客戶端中熟悉智能合約和Solidity語言(記得在Geth console先挖礦,否則沒有以太幣來測試),然后根據官網的幾個例子來試煉你的第一個Dapp。上手后,可以嘗試使用web3.js來調用,或直接安裝Truffle或Embark來開發自己真正的Dapp應用。
?
三、????? IBM HyperLedger
?
IBM HyperLedger 又叫 fabric,他的目標是打造成一個由全社會來共同維護的一個超級賬本,fabric源于IBM,初衷為了服務于工業生產,IBM將44,000行代碼開源,是了不起的貢獻,讓我們可以有機會如此近的去探究區別于比特幣的區塊鏈的原理。目前就Elwin所知,fabric還未進入真正的商用階段,更多是試驗和探索,不過相對于很多其他區塊鏈,從技術底蘊他又是比較可信和靠譜的。
要基于HyperLedger進行區塊鏈開發比想像中簡單,有兩種途徑,一種是基于超能云(IBM中國研究院開發的超能云平臺提供了各種云服務),他給區塊鏈愛好者、開發者的區塊鏈開發測試環境,通過超能云平臺,用戶能夠免費、超快速創建基于Hyperledger Fabric的多節點區塊鏈、并在自己的鏈上調試智能合約。Hyperledger Fabric的合約是基于Go語言的,上手比較簡單。
?
?
?根據Elwin嘗試,似乎超能云的區塊鏈只適用于科研測試,要真正運營,還是建議自己搭建Fabric的區塊鏈網絡。安裝和運行Hyperledge fabric的運行有幾種方式,比較推薦是下載Fabric區塊鏈網絡的Docker鏡像,運行Docker鏡像并啟動Fabric區塊鏈網絡,但相對于比特幣和以太坊,Fabric網絡的架構和安裝相對復雜,除了區塊鏈服務外,還需要另外安裝運行validating peer和Certificate Authority (CA) 服務。搞定后要真正使用,還需要先用戶注冊和登記授權,然后才可以通過CLI 或REST API進行調試和使用。其中里面智能合約的編寫,跟在超能云的區塊鏈云服務的是一樣的。此外,除了CLI或REST API,IBM還提供了gRPC API和 SDK的方式進行應用的開發。
?
四、????? Lisk
?
LISK是新一代的區塊鏈平臺,允許JavaScript(又是Javascript技術,工程師們注意了)的開發和基于分布的分散的應用程序使用一個易于使用的,功能齊全的生態區塊鏈系統。
Elwin覺得LISK相對于前面說的幾個區塊鏈底層,他的應用優勢不僅僅在于他是第一個完全寫在Javascript里的去中心化的應用解決方案,還在于他把每個應用加到LISK的單獨側鏈上。用過比特幣和以太坊的朋友都知道,由于比特幣和以太坊只有一條主鏈,所有功能和數據都加入這條主鏈導致區塊快速膨脹,超大的區塊體積,超長的同步時間,這個一個很痛苦的經歷。Lisk的側鏈模式給在處理高交易量下如何解決網絡擁堵的問題提供了一種方法,用戶只有用到相關的應用時才需要下載對應的側鏈,大大減小了無效的同步數據,保持了整個Lisk網絡的高效運行,而且,Lisk網絡的速度隨著時間的推移會繼續加快,越顯示他的特別優勢。
其次,相對以太坊和Hyperledge fabric以智能合約為核心的區塊鏈不同, Lisk區塊鏈建立的目的并不是為了創建智能合約,而是使用Lisk APP SDK框架來開發不同的應用程序和功能。
Lisk APP的主要開發語言是NodeJS,Web開發者既能夠開發應用程序的后端,也可以開發前端。通過使用Lisk APP SDK包,Web開發者可以輕松創建區塊鏈應用。Lisk APP的開發也比較簡單,跟你之前其他的NodeJS應用的開發是類似的。然而,跟比特幣和以太坊的一樣,Lisk的使用也是要消耗燃料費用的,還好,跟其他區塊鏈底層網絡一樣,Lisk 也是有testnet模式的。
?
五、????? 布比網絡
?
布比,是國內區塊鏈技術特別是底層技術領先者之一,已擁有多項核心技術,并已經成熟的應用在了商業積分、游戲幣、游戲道具、預付卡、電子券、保險卡單、證券化資產、互助保險等行業和領域。
布比區塊鏈平臺分為基礎框架層(BubiChain)和應用適配層(Bubi Application Adaptors)。底層基礎框架層提供區塊鏈的基礎服務,應用適配層提供上層應用所需的功能組件,為具體的應用系統開發提供接口和SDK,降低由于區塊鏈自身復雜的邏輯所帶來的應用開發的難度。
?
?
?對于一般開發的應用適配層,布比提供布萌區塊鏈應用開發平臺,該平臺基于布比區塊鏈技術,將上層應用所需要的功能組件進行封裝,開發者想實現對應的功能,只需要注冊成為布萌開發者即可獲得接口使用權限。同時,平臺提供開發者運維所需要的可視化管理工具。
就Elwin體驗來說,布萌區塊鏈的接入應該是幾大區塊鏈底層中最容易的,因為他不僅提供標準REST API,并提供JAVA等主流語言的SDK接入,同時,基于布萌區塊鏈平臺專注數字資產應用場景,跟其他大部分區塊鏈接口純技術和面向廣泛應用的方式而言,布萌提供的接口更貼近業務場景的,更便于相關數字資產的應用接入到區塊鏈。相對以太坊著重區塊技術和智能合約的區塊鏈不同,布比區塊鏈的接入更務實和落地,你只需要關注你實際的業務,而不需要過多考慮區塊鏈的技術細節。
區塊鏈主流開源技術體系介紹
接上一篇應用開發入門介紹,Elwin這篇將會介紹主流的區塊鏈開源技術體系,供大家開發自家區塊鏈平臺及應用參考。
一、?????比特幣體系
比特幣(BitCoin)是最早也是全球最廣泛使用和真正意義的去中心化區塊鏈技術,因此他的開源技術體系非常值得參考。
比特幣區塊鏈的核心技術框架采用C++語言開發,共識算法采用POW算法,工作量(挖礦)證明獲得記賬權,容錯50%,實現全網記賬,公網性能TPS<7。
開源地址為:https://github.com/bitcoin/bitcoin
雖然說POW算法比較低效率和耗能,比特幣區塊鏈由于推出時間比較早又不夠強大(如不支持智能合約),但不可否認的是,目前市場上相對成熟和穩定的區塊鏈體系還是比特幣。市面上群魔亂舞的山寨幣,正是基于比特幣的源代碼照搬或小改動而創造的,在比特幣區塊鏈的體系基礎上,還創造了幾種區塊鏈技術體系:
彩色幣(染色幣),彩色幣本身就是比特幣,是在歷史上的創世交易里面被轉移過的比特幣。在技術上將比特幣網絡從其貨幣價值中抽離出來,它們具有一些特殊的屬性,比如支持代理或聚集點,從而具有與比特幣面值無關的價值。彩色幣可以用作替代貨幣、商品證書、智能財產以及其他金融工具,如股票和債券等。
閃電網絡,是為了解決比特幣區塊鏈的瓶頸處理能力而生的,他可以有效解決時延、容量擴展、最終性的問題,為比特幣區塊鏈提供了一個可擴展的微支付通道網絡,使用閃電網絡后,TPS最大可以擴展到300。交易雙方若在區塊鏈上預先設有支付通道,就可以多次、高頻、雙向地通過軋差方式實現瞬間確認的微支付;雙方若無直接的點對點支付通道,只要網絡中存在一條連通雙方的、由多個支付通道構成的支付路徑,閃電網絡也可以利用這條支付路徑實現資金在雙方之間的可靠轉移。
比特幣側鏈
側鏈是以錨定比特幣為基礎的新型區塊鏈,就像美金錨定到金條一樣。比特幣的在區塊鏈相當在貨幣體系的黃金地位,因為他是最去中心化、最多分布節點、最公平區塊鏈。側鏈是以融合的方式實現加密貨幣金融生態的目標,而不是像其它加密貨幣一樣排斥現有的系統。利用側鏈,我們可以輕松的建立各種智能化的金融合約,股票、期貨、衍生品等等。你可以有成千上萬個錨定到比特幣上的側鏈,特性和目的各不相同,所有這些側鏈依賴于比特幣主區塊鏈保障的彈性和稀缺性。比較著名的比特幣側鏈是Rootstock和BlockStream推出的元素鏈。
Rootstock是一個基于比特幣側鏈的開源智能合約平臺,他使得比特幣擁有了智能合約,基于Rootstock的智能合約能夠運行無數應用,為核心比特幣網絡增加價值和功能。Rootstock使用一種比特幣雙向掛鉤技術,這種雙向掛鉤以一種固定的轉換率輸送或輸出Rootstock上的比特幣,Rootstock雙向掛鉤是一種混合驅鏈和側鏈的技術。更值得關注的是,Rootstock向后兼容以太坊,實現了以太坊虛擬機的一個改進版本,所以以太坊發布的DApps程序能夠輕松地在Rootstock上使用,實現比特幣級別的安全性和以太坊大量Dapps的復用性,更快的執行性并和比特幣發生更強的相互作用。使用Rootstock可以將性能擴展到TPS為300。
元素鏈(Elements)是Blockstream的開源側鏈項目,同樣使用比特幣雙向掛鉤技術,除了智能合約外,他還給比特幣快速帶來許多創新技術,包括私密交易、證據分離、相對鎖定時間、新操作碼、簽名覆蓋金額等等特性。核心技術框架采用C++語言開發,開源地址為:https://github.com/ElementsProject/elements
二、?????以太坊ETH
剛結束的以太坊全球開發者大會DEVCON2,吸引了無數大牛到上海,可以看到,以太坊生態系統正在高速地成長著,正朝著成為“世界計算機”的目標前進。無論是the DAO眾籌到攻擊,還是ETH與ETC 分道揚鑣,或者是各種以太坊生態的開發框架和應用,以太坊目前在區塊鏈平臺是最吸引眼球的。
以太坊是一個圖靈完備的區塊鏈一站式開發平臺,采用多種編程語言實現協議,采用GO語言寫的客戶端作為默認客戶端(即與以太坊網絡交互的方法, 支持其他多種語言的客戶端)。基于以太坊平臺之上的應用是智能合約,這是以太坊的核心。智能合約配合友好的界面和外加一些額外的小支持,可以讓用戶基于合約搭建各種千變萬化的DApp應用,這樣使得開發人員開發區塊鏈應用的門檻大大降低。
以太坊ETH的開源地址:https://github.com/ethereum/。以太坊的整個技術生態系統比較強大,同時迭代周期比較快,所以有比較強的生命力,但事物都有兩面,對于依賴于以太坊特別是以太坊公網的商業應用來說,頻繁的迭代升級和處于風口浪尖(被攻擊),使得基于以太坊的商業應用,有時候不得不打足精神去跟以太坊一起升級維護和補丁。
目前以太坊正在正式運行1.0版本,采用的是POW挖礦的共識算法,目前公網的TPS是25筆,在開發中的1.5版本,將采用類POS的Casper算法,以使區塊鏈的確認速度相對于POW的線性效率,達到指數級。采用Casper后將會更好的確認機制,以及大幅降低能量消耗。在規劃的 2.0版本目標,TPS有望可以達到2000TPS。
以太坊的進一步開發介紹你可以參考我另外一篇文章《區塊鏈應用開發入門》。
三、?????IBM HyperLedger fabric
IBMHyperLedger,又叫 fabric,是一個帶有可插入各種功能模塊架構的區塊鏈實施方案,他的目標是打造成一個由全社會來共同維護的一個超級賬本。Elwin個人感覺fabric分層設計比較合理,模塊化程度非常不錯,雖然目前還是在完善階段,并沒有真正商用(最近IBM攜手中國銀聯打造區塊鏈為基礎的忠誠積分交易系統,但還是屬于探索試樣項目),但以IBM的多年技術底蘊,fabric應該是大企業構建區塊鏈底層的選擇之一。
fabric架構核心邏輯有三條:Membership、Blockchain和Chaincode。MembershipServices這項服務用來管理節點身份、隱私、保密性、可審計性。Blockchain services使用建立在HTTP/2上的P2P協議來管理分布式賬本,提供最有效的哈希算法來維護區塊鏈世界狀態的副本。采取可插拔的方式來根據具體需求來設置共識協議,比如PBFT,Raft,PoW和PoS等等,IBM首選PBFT算法。Chaincode services 會提供一種安全且輕量級的沙盒運行模式,來在VP節點上執行chaincode邏輯,類似以太坊的EVM虛擬機及其他上面運行的智能合約。
開源地址:https://github.com/hyperledger/fabric。Fabric的主要框架核心開發語言是GO語言,系統目標是15個驗證節點下最理想情況下可以有100K TPS的性能,更適合于聯盟鏈。
四、?????比特股BitShare
比特股(BitShares)是區塊鏈歷史上里程碑式的產品之一,截至目前仍然是完整度最高、功能最豐富、性能最強大的區塊鏈產品之一。比特股是可以看作是一個公司、貨幣甚至是一個社區。它提供的BitUSD等錨定資產是虛擬幣歷史上的一個最重要變革之一,能夠極大消除虛擬貨幣被人詬病的波動性大的問題。
比特幣低效率高能耗的POW算法,使得比特股及其DPos共識算法應運而生。有別于比特幣特定的共識機制,DPos有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。與比特幣相比,比特股系統的投票權牢牢掌握在股東手里,而不是雇員。比特股系統的去中心化程度緊緊掌握在比特股持有者們的手中,他們決定了出塊受托人的個數。同時,作惡的受托人不會得到任何好處,并且很快就會被投票出局。此外,比特股內置了強大的賬戶權限設定、靈活的多重簽名方式、白名單等特性,足以滿足企業級的功能定制需求。
比特股的1.0開源地址是:https://github.com/bytemaster/bitshares,2.0開源庫在:http://github.com/bitshares。他的核心技術框架采用C++語言開發,既適用于公有鏈,也適合于聯盟鏈,只需要少量節點進行記賬,TPS>500,容錯50%,在比特股2.0中如果在最優的網絡和硬件情況下可以達到最高100K的TPS。
五、?????公證通Factom
公證通(Factom)利用比特幣的區塊鏈技術來革新商業社會和政府部門的數據管理和數據記錄方式,也可以被理解為是一個不可撤銷的發布系統,系統中的數據一經發布,便不可撤銷,提供了一份準確、可驗證、且無法篡改的審計跟蹤記錄。利用區塊鏈技術幫助各種各樣應用程序的開發,包括審計系統,醫療信息記錄,供應鏈管理,投票系統,財產契據,法律應用,金融系統等。
建立在Factom基礎之上的應用程序尋求能夠直接利用區塊鏈實現追蹤資產和實現合約,而不用將交易記錄寫入區塊鏈,Factom在自己的架構中記錄條目。跟以太坊類似,Factom系統會創造一個叫Factoids的電子幣。持有Factoids意味著有權使用Factom系統。只要把Factoids轉化成輸入積分便有權把數據寫入Factom系統中。同時運行著Factom的聯邦服務器也能收獲Factoids作為維護系統的回報。Factom雖然同樣基于比特幣網絡,但卻并不是之前提到側鏈或染色幣的技術架構,Factom只將目錄區塊的哈希值錨定到比特幣區塊鏈。Factom很好地解決了比特幣三個核心的約束和問題,速度、成本和區塊鏈膨脹。
Factom中的政策和獎勵機制與POS機制有相似之處。與其不同之處在于,Factom中只有一小部分的用戶權益能夠被認可。只有已經提交到系統的權益有投票權,而可轉移的Factoid權益沒有投票權,避免了POS機制的“股份磨損”和“沒有人進行POS”問題。
公證通的開源地址是:https://github.com/FactomProject/FactomCode。他的核心技術框架采用GO語言開發,TPS是27筆左右(待考究)。
最新情況,Factom將不會只依賴于比特幣區塊鏈,他將會同樣會通過整合以太坊區塊鏈,以來確保存放的數據時時刻刻都是安全的。
六、?????瑞波Ripple
瑞波(Ripple)是世界上第一個開放的支付網絡,是基于區塊連的點到點全球支付網絡。通過這個支付網絡,使你輕松、廉價并安全的把你的金錢轉賬到互聯網上的任何一個人,無論他在世界的哪個地方,他可以轉賬任意一種貨幣,包括美元、歐元、人民幣、日元或者比特幣,簡便易行快捷,交易確認在幾秒以內完成,交易費用幾乎是零,沒有所謂的跨行異地以及跨國支付費用。
Ripple有兩個重要概念,其一是推出Ripple幣瑞波幣——XRP,它作為Ripple網絡的基礎貨幣,就像比特幣一樣可以整個網絡中流通,主要是燃料Gas的作用,每產生一筆交易就會消耗一些 XRP;其二是引入網關(Gateway)系統,它類似于貨幣兌換機構,允許人們把法定貨幣注入、抽離Ripple網絡,并可充當借、貸雙方的橋梁。
Ripple引入了一個共識機制RPCA,通過特殊節點的投票,在很短的時間內就能夠對交易進行驗證和確認。Ripple客戶端不需要下載區塊鏈,它在普通節點上舍棄掉已經驗證過的總帳本鏈,只保留最近的已驗證總帳本和一個指向歷史總帳本的鏈接,因而同步和下載總帳本的工作量很小。
Ripple的作用并不僅僅只負責清算貨幣兌換,它可以是各種虛擬貨幣、數字資產或任意一種有價值的東西。
Ripple的開源地址是:https://github.com/ripple/rippled,他的核心技術框架采用C++語言開發,TPS<1000。
七、?????未來幣NXT
未來幣(Nxt、Nextcoin)是第二代去中心化虛擬貨幣,它使用全新的代碼編寫,不是比特幣的山寨幣。它第一個采用100%的股權證明POS算法,有資產交易、任意消息、去中心化域名、帳戶租賃等多種功能,部分實現了透明鍛造功能。
Nxt是且是第一個100%的股權證明機制的電子貨幣,Nxt不再通過消耗大量的資源“挖礦”產生新貨幣,而是通過現有賬戶的余額去“鍛造”區塊,并給與成功“鍛造”區塊的賬戶交易費用獎勵。
Nxt具有一個非常靈活的特性,稱為“透明鍛造”。這一機制使得每一個用戶客戶端可以自動決定哪個服務器節點能夠產生下一個區塊。這使得客戶端可以直接將交易發送到這個節點,從而使得交易的時間達到最短。實時和高優先級的交易可以通過支付額外的費用來被優先處理。
Nxt區塊鏈2.0已經在討論和計劃實施中了,其核心思路就是要通過主鏈(Main Chain)和子鏈(Child Chain)的這種架構來增加Nxt區塊鏈的可擴展性和可刪減性,從而解決長期存在的區塊鏈膨脹等問題;
Nxt的開源地址是:https://bitbucket.org/JeanLucPicard/nxt/overview,他的核心技術框架采用JAVA語言開發,TPS<1000。
八、其他
此外,還有幾個區塊鏈技術體系也介紹一下:
英特爾的鋸齒湖(Sawtooth Lake),目前是用于建造、部署和運行分布式賬本的高度模塊化平臺,重點領域在數字資產,在鋸齒湖的數據模型和交易事務語言中,是由稱為“transaction family”的體系來實現的, 給用戶可以有開箱即用的功能齊全的市場數字資產管理體系。采用PoET和Quorum Voting兩種共識算法,框架核心開發語言Python,開源地址為https://github.com/intelledger。
布比區塊鏈,目前采用的是對聯盟鏈內定向開源,共識算法采用自研發的Pool驗證池,可以集成Byzantine Paxos、Byzantine、Raft等商用共識算法,實現免Gas費用的秒級共識驗證,框架核心開發語言是C++,應用場景比較廣泛。
小蟻區塊鏈,開源地址為https://github.com/antshares/antshares,采用改進的拜占庭容錯算法-dBFT共識算法,支持智能合約,目前重點領域在數字資產應用,框架核心開發語言C#。
最后,匯總一下幾大主流開源技術的比較。
|
名稱 |
公識算法 |
適合場景 |
開發語言 |
智能合約 |
TPS |
|
比特幣1.0 |
POW |
公鏈 |
C++ |
否 |
7 |
|
以太坊ETH 1.0 |
POW |
公鏈/聯盟鏈 |
GO |
是 |
25 |
|
IBM HyperLedger fabric |
PBFT為主 |
聯盟鏈 |
GO |
是 |
100K |
|
比特股BitShare |
DPos |
聯盟鏈 |
C++ |
否 |
500 |
|
公證通Factom |
Factom自有共識機制,類Pos |
公鏈/聯盟鏈 |
C++ |
否 |
27 |
|
瑞波Ripple |
RPCA |
公鏈/聯盟鏈 |
C++ |
否 |
1000 |
|
未來幣NXT |
Pos |
公鏈/聯盟鏈 |
JAVA |
否 |
1000 |
*附注[共識算法解釋]:
共識機制是區塊鏈技術的關鍵點。共識機制的核心是在分布式網絡中,利用一種規則(算法)來保證全網對于Block的創建是一致的,下面是主要的共識算法。
1、Pow工作量證明,就是大家熟悉的挖礦,通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其它節點驗證后一起存儲;
2、Pos權益證明,Pow的一種升級共識機制;根據每個節點所占代幣的比例和時間;等比例的降低挖礦難度,從而加快找隨機數的速度。
點
3、DPos股份授權證明機制,類似于董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
4、Pool驗證池,由布比構建,基于傳統的分布式一致性技術,加上數據驗證機制;是目前行業鏈大范圍在使用的共識機制
5、PoET(Proof ofElapsed Time),也就是‘消逝時間量證明’,它是由英特爾構建在可信執行環境的一種彩票協議。
6、QuorumVoting,屬于Quorum拜占庭協議,仲裁投票算法,它采用了瑞波和恒星的共識協議,用來解決需立即交易定局的需求。”
7、Casper,以太坊社區提出的正在研發中的類POS共識協議。Casper的基本思路是,任何人抵押足夠多的以太幣到系統中就可以成為礦工參與到挖礦過程。共識算法要求所有的礦工誠實工作,如果一個礦工有意破壞,不遵守協議,系統就會對礦工做出懲罰:沒收之前抵押的以太幣。有人把Casper這樣的挖礦機制稱為“虛擬挖礦”。
8、PBFT(PracticalByzantine Fault Tolerance)算法,拜占庭容錯算法,屬于狀態機拜占庭協議,IBM HyperLedger fabric實現和推薦的共識算法,采取一個節點一票的方案確定記賬結果,少數服從多數投票,性能較好,主要用于聯盟鏈。
文章來源:
http://www.8btc.com/elwingao-blockchain-1?
http://www.8btc.com/elwingao-blockchain-2
總結
以上是生活随笔為你收集整理的[转]区块链主流开源技术体系介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手机游戏《英雄迷宫冒险》存档修改
- 下一篇: DDB和DIB 是什么?区别?