歡迎光臨
每天分享高質量文章

超越比特幣以太坊的區塊鏈技術:石墨烯專案簡介

導讀:Graphene (石墨烯)是區塊鏈工具組,由位元股團隊cryptonomex開發,將一種新的共識機制DPOS投入了實際應用,其併發能力很強,基於石墨烯底層的BTS和STEEM可以達到1.5S的平均確認速度和有限條件下實測3300TPS的資料吞吐量。本文作者簡單介紹了區塊鏈以及石墨烯,並對如何使用石墨烯API構建簡單APP,做了簡單說明。



簡介

您可能已經聽到過像“比特幣”和“區塊鏈”這樣的詞,也可能聽說過“以太坊”,而且迫切的想知道這都是什麼玩意。

這都是有用的技術嗎?如果是的話,應該如何使用?

本文旨在透過強調概念背後的技術實體,來闡明區塊鏈的含義。

像OCI和許多其他技術一樣,區塊鏈是中介軟體。它本身並不是目的;而是達到目的的手段。

區塊鏈在很大程度上跟資料庫差不多,可以儲存並運算元據。然而也有不同的地方,資料作為交易的不可變記錄儲存在區塊鏈中。鏈條的完整性透過使用演演算法來保持,該演演算法可將每個新區塊與其之前的區塊歷史連線起來,形成區塊鏈。

石墨烯是開源的,主要是用C++開發,區塊鏈實現的最初目的是作為加密貨幣交易市場Bitshares的基礎。

石墨烯已被分叉和調整多次。原始版本由Cryptonomex管理。

石墨烯是開源的,它是以模組化的方式開發,因此它適用於許多不同的用途。

除了Bitshares之外,它支撐了steem.io基金會,同時基於它的Steem區塊鏈孕育了steemit.com,這是一個類似於reddit.com和PeerPlays.com(一家博彩網站)的新聞彙總網站。

FollowMyVote.com是構建在Graphene區塊鏈上的另一個服務。 FollowMyVote使用石墨烯來促進安全的市政投票。

除此之外,石墨烯還有許多其他使用者。

什麼是區塊鏈

對於那些還沒有聽說過區塊鏈的人來說,網上有很多資料。 我建議你在油管上搜索“什麼是區塊鏈”,會有很多不錯的影片

我在這裡會簡單講下區塊鏈是什麼和一些基本術語。

區塊鏈是資料狀態隨時間變化的交易記錄的連結串列。 這些記錄塊的連結是使用加密演演算法完成的,演演算法將當前塊中記錄的事務的資訊以及該塊之前的區塊的資訊合併在一起。

這是一個說明這個概念的圖表。

一些術語定義

區塊

與區塊鏈相關的資料的容器。資料通常是一組描述資料變化的交易集合。可能是資產從一個所有者轉移到另一個所有者的記錄,或者可能是正在更新的一些個人資訊的記錄。根據所需的特徵,區塊可能包含或多或少的事務資料。區塊還包含頭部,該頭部包含有關該區塊的某些元資料,還包括對前一個區塊的取用。

雜湊

透過某種演演算法計算得出的值,該演演算法可唯一標識輸入資料而不會洩露該資料的內容。雜湊值用於確保區塊鏈上資料的準確性。區塊頭部包含前一個區塊的雜湊,可以快速驗證整個鏈的完整性。

創世塊

這是整個鏈的第一個區塊。它是在區塊鏈首次部署時建立的,用作所有其他區塊的錨點。

交易

對資料集進行更改的記錄。交易通常基於區塊鏈定義的規則。這些規則包括各方之間的合同。

智慧合約

合約,可能包含自己行為的觸發事件。

節點

能夠在網路中增加區塊的網路中的主機。節點如何做到這一點則根據鏈的需要而變化。

分散式帳本

記錄跨節點共享的事務記錄。組成區塊鏈的很多節點構成分散式賬本。

共識演演算法

在分散式賬本中的節點中使用,並由區塊鏈定義以確定區塊鏈正確性的方法。最普遍的共識演演算法是“Pow(工作證明)”,“(Pos)股權證明”和“(DPoS)委託股權證明”。石墨烯採用委託股權證明。

工作證明(PoW)

一種共識演演算法,依靠計算難度的挑戰來解決問題,以便找到新塊的雜湊。雖然計算得到新區塊的難度很大,但其他節點驗證新區塊的難度很小,從而允許其他參與節點快速認同新區塊的正確性。

股權證明(PoS)

一種基於節點的共識演演算法,節點持有可以參與區塊鏈的股權。透過證明股權,區塊可以更快地被新增到鏈中。

委託股權證明(DPoS)

這是一種變化的股權證明演演算法,將建立塊的責任委託給稱為“證人”的第三方節點。

見證者節點

DPoS區塊鏈中的一個節點,負責執行建立新區塊的任務。

使用區塊鏈

隨著越來越多的人瞭解區塊鏈,用例示例池也在不斷增加。

區塊鏈最早的用途集中在虛擬貨幣的轉移。其資產轉移能力可以擴充套件到供應鏈管理,證據保管或任何其他需要無可辯駁的所有權證明的情況。

另外一類用例著重於強制執行交易的規則管理。這些規則可以定義合約,這些合約可能包括使合約本身成為參與者的行為編碼。這些通常被稱為智慧合約。

我們將在隨後的SETT文章中仔細研究石墨烯上的智慧合約

共識是區塊鏈力量的主要貢獻者,特別是在參與者相互不知道對方並缺乏信任的情況下。透過定義由節點生成區塊並由其他節點驗證區塊的演演算法解決信任問題。

但是將專有資料或其他敏感資料放在可公開訪問的區塊鏈上可能並不理想。在這些情況下,區塊鏈可能會變得私密。私有區塊鏈可以使用更簡單的共識機制,這反過來又使其更容易部署在少數節點上,甚至可能只有一個節點。

石墨烯簡介

石墨烯區塊鏈不是單個應用程式。 它由許多庫和可執行檔案組成,以提供可部署的節點。

圖2提供了石墨烯原始碼包的圖解。

除了下麵顯示的軟體包之外,Graphene還依賴於標準的C ++ 11和Boost軟體包,同時還提供了大量的測試套件。

獲取石墨烯

石墨烯是GitHub上的開源軟體。 程式碼倉庫可以在Cryptonomex站點找到。

有三個專案需要克隆:graphene,graphene-ui和fc。

OCI的GitHub頁麵包括石墨烯和graphene-ui,它們是我們的研究基礎。 您可以透過訪問https://github.com/objectcomputing/graphene和https://github.com/objectcomputing/graphene-ui 來克隆OCI的石墨烯副本。

這兩個工具包的構建和部署說明包含在它們各自的Readme.md檔案中。

石墨烯有三個可執行檔案:witness_node,cli_wallet和genesis_util。 一旦編譯完成,你可以嘗試執行一個見證節點。

請註意,此示例顯示如何使用命令列選項執行見證節點。

在執行節點後,可以使用cli_wallet連線到節點。 在第二個終端視窗中,執行命令列錢包應用程式。

此時,您可以使用help命令來瞭解如何使用錢包。

使用石墨烯API程式設計

石墨烯的基本API基於遠端過程呼叫(RPC)。 可用的具體功能取決於由特定區塊鏈實體定義的合同條款。

首先透過登入API訪問公共認證模組。 透過身份驗證後,客戶端應用程式能夠收集其他遠端物件取用並呼叫它們。

FC庫用於管理傳輸細節,允許節點接受各種傳輸協議。

到目前為止,witness_node應用程式僅接受HTTP格式的請求。 在C++應用程式中,Graphene應用程式和FC庫一起工作,從而提供了一個簡單的程式設計模型。

下麵是一個來自cli_wallet應用程式的示例,展示瞭如何連線到節點伺服器,登入併進行其他呼叫。

這裡顯示的是 wdata 是從命令列、配置檔案等收集初始化資訊。然後建立客戶端連線,登入(表明已登入成功),建立一個錢包實體,以進行進一步呼叫。

尋找未來的SETT文章,以更深入地探索石墨烯API。

下一步

區塊鏈擁有許多應用,從金融服務到身份安全,再到供應鏈管理等等。 為了支援這些眾多的應用,區塊鏈有許多不同的實現。

我相信石墨烯是一個特別重要的區塊鏈框架,因為它的模組化特性。 透過從邏輯中分離節點間通訊支援,可以在另一種傳輸機制(例如OCI的OpenDDS)上替換石墨烯的邏輯元件。 該開源產品使基於OpenDDS的低功耗應用(如IIoT裝置),以盡可能少的開銷來增加區塊鏈相關功能。

我預計在其他領域,例如Grails,我們也會看到更多的區塊鏈技術應用。 隨著時間的推移,我希望看到OCI成為裁剪區塊鏈解決方案的領導者,無論是基於Graphene還是其他區塊鏈實現。

參考文獻

比特幣白皮書,開始它的所有檔案:https://bitcoin.org/bitcoin.pdf
以太坊白皮書,關於智慧合約的討論:http://www.the-blockchain.com/docs/Ethereum_white_paper-a_next_generation_smart_contract_and_decentralized_application_platform-vitalik-buterin.pdf
Bitshares白皮書集合涵蓋了石墨烯背後的理論:https://bitshares.org/technology
Coindesk,提供有關區塊鏈和加密貨幣的及時新聞資源:https://coindesk.com
加密貨幣價格的實時跟蹤器:https://coinmarketshares.com

相關閱讀:


只用200行Go程式碼寫一個自己的區塊鏈!

200行Go程式碼實現自己的區塊鏈——區塊生成與網路通訊

200行Go程式碼實現區塊鏈 —— 挖礦演演算法

區塊鏈及比特幣入門指南


特別推薦:


比特幣、以太坊、ERC20、PoW、PoS、智慧合約、閃電網路……

想深入瞭解及討論這些話題?高可用架構在知識星球(小密圈)建立了區塊鏈學習小組,共同學習區塊鏈包括數字貨幣前沿技術,歡迎點選連結加入。


區塊鏈學習小組


文作者 Coral Health,由魏佳翻譯。轉載譯文請註明出處,技術原創及架構實踐文章,歡迎透過公眾號選單「聯絡我們」進行投稿。


高可用架構

改變網際網路的構建方式

長按二維碼 關註「高可用架構」公眾號

贊(0)

分享創造快樂