Quorum企業以太坊環境搭建教程

Quorum是一個許可制的以太坊聯盟區塊鏈實現,包含了金融巨頭JP摩根開發的一個GETH分支版本,能夠在節點之間實現私有和快速的交易。Quorum爲保證隱私對節點之間的私有交易進行了專門的設計,它使用Raft和Istanbul算法實現共識,使用Tessara和Constellation實現節點數據的加密和共享。在Quorum網絡中交易不須要付費,交易的驗證是由投票共識算法完成的。整體上來說Quorum相似於以太坊,只是它更關注的企業環境下的交易隱私性與可控性,所以每一個節點都須要Quorum網管生成的密鑰對。javascript

學習Quorum區塊鏈的最好的辦法,就是運行官方提供的7節點示例。雖然有多種方法來搭建7個節點,我仍是建議使用docker,由於這應該是最簡單的辦法。下面我使用Google雲的Ubuntu 18.04。若是你在本地機器或AWS上有ubuntu,也是同樣的。請先確認docker和docker-compose已經安裝就緒。php

在下面的演示中,咱們要搭建7個Quorum節點,而後考察節點之間的私有交易是如何運做的。java

一、搭建節點

運行下面的命令來搭建所有7個節點:node

git clone https://github.com/jpmorganchase/quorum-examples.git
cd quorum-examples
QUORUM_CONSENSUS=raft docker-compose up -d

默認狀況下,使用Tessera交易管理器和Istanbul BTF共識來搭建Quorum網絡。所以爲了修改成Raft共識算法,咱們設置環境變量QUORUM_CONSENSUS=raft,而後啓動7個節點 的後臺運行。python

你能夠運行docker ps來查看每一個容器的運行狀態以及其ID。須要稍等一下子以便容器啓動就緒。git

二、部署智能合約

若是要快速掌握以太坊區塊鏈開發,推薦匯智網的在線互動課程:github

java以太坊開發詳解 | python以太坊開發詳解 | php以太坊開發詳解 | C#以太坊開發詳解算法

以太坊智能合約與DApp開發入門 | 以太坊電商DApp實戰 | ERC721以太坊通證明戰docker

要在節點上部署智能合約,咱們須要運行下面的命令進入該節點的geth控制檯:ubuntu

docker exec -it quorum-examples_node1_1 geth attach /qdata/dd/geth.ipc

命令中的quorum-examples_node1_1是節點1的容器ID。上面的命令進入節點1的geth控制檯,如今咱們能夠在控制檯中進行操做。

下面咱們要運行部署合約的javascript腳本。若是你查看示例代碼目錄,能夠看到在quorum-examples/examples/7nodes目錄下有private-contract.jssimplestorage.sol 文件。在geth控制檯運行:

> loadScript('/examples/private-contract.js')

命令執行須要稍等一下子。一旦部署成功,上面的命令將返回合約地址,記得拷貝下來或者抄到紙上。上述腳本在節點1上部署了一個簡單的狀態值爲42的存儲合約,交易是節點1和節點7之間私有的,這意味着其餘節點將看不到這個狀態值。

要驗證這一點,咱們能夠開啓節點2的geth終端,使用ABI和合約地址建立合約實例:

> var abi=<Paste ABI here>;
> var address="<paste Contract Address here>";
> var contract=eth.contract(abi).at(address);

>contract.get() //calling get() method
0

果真。

如今進入節點7的geth終端,一樣使用ABI和合約地址建立合約實例,而後嘗試讀取狀態值:

>contract.get()
42

和預期同樣。

三、發送私有交易

如今咱們嘗試在節點7和其餘任選節點之間建立一個新的私有交易,調用合約的set()方法來修改狀態值。這須要使用節點的公鑰,能夠在quorum-examples/examples/7nodes/keys/目錄下找到所有7個節點的對應公鑰。

contract.set(4,{from:eth.coinbase,privateFor:["<your preferred node public key>"]});

上面的腳本將設置合約狀態值爲4,而且僅對指定的節點保持可見。你能夠打開這些指定節點的geth終端查看合約狀態值,你看到的應該是4。


原文:A Beginner guide to Quorum Blockchain

匯智網翻譯整理,轉載請標明出處

相關文章
相關標籤/搜索