石墨烯項目簡介

知識庫 技術 鏈聞研究院 2018-07-25

鏈聞 ChainNews:
本文簡單介紹了區塊鏈以及石墨烯,並簡單的說明了如何使用石墨烯 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/graphenehttps://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 還是其他區塊鏈實現。

更多精彩內容,關注鏈聞 ChainNews 公眾號(id:chainnewscom),或者來微博@ 鏈聞 ChainNews與我們互動!轉載請註明版權和原文鏈接!

相關推薦

推薦中...