首页 » PHP教程 » php以太坊开辟技巧_Quorum联盟链开拓入门

php以太坊开辟技巧_Quorum联盟链开拓入门

访客 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

学习Quorum区块链的最好的办法,便是运行官方供应的7节点示例。
虽然有多种方法来搭建7个节点,我还是建议利用docker,由于这该当是最大略的办法。
下面我利用Google云的Ubuntu 8.04。
如果你在本地机器或AWS上有ubuntu,也是一样的。
请先确认docker和docker-compose已经安装就绪。

不才面的演示中,我们要搭建7个Quorum节点,然后稽核节点之间的私有交易是如何运作的。

php以太坊开辟技巧_Quorum联盟链开拓入门

1、搭建节点

运行下面的命令来搭建全部7个节点:

php以太坊开辟技巧_Quorum联盟链开拓入门
(图片来自网络侵删)

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

默认情形下,利用Tessera交易管理器和Istanbul BTF共识来搭建Quorum网络。
因此为了修正为Raft共识算法,我们设置环境变量QUORUM_CONSENSUS=raft,然后启动7个节点的后台运行。

你可以运行docker ps来查看每个容器的运行状态以及其ID。
须要稍等一下子以便容器启动就绪。

2、支配智能合约

如果要快速节制以太坊区块链开拓,推举汇智网的在线互动课程:

java以太坊开拓详解 | python以太坊开拓详解 | php以太坊开拓详解 | C#以太坊开拓详解

以太坊智能合约与DApp开拓入门 | 以太坊电商DApp实战 | ERC721以太坊通证明战

要在节点上支配智能合约,我们须要运行下面的命令进入该节点的geth掌握台:

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.js和simplestorage.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() method0

果真。

现在进入节点7的geth终端,同样利用ABI和合约地址创建合约实例,然后考试测验读取状态值:

>contract.get()42

和预期一样。

3、发送私有交易

现在我们考试测验在节点7和其他任选节点之间创建一个新的私有交易,调用合约的set()方法来修正状态值。
这须要利用节点的公钥,可以在quorum-examples/examples/7nodes/keys/目录下找到全部7个节点的对应公钥。

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

上面的脚本将设置合约状态值为4,并且仅对指定的节点保持可见。
你可以打开这些指定节点 的geth终端查看合约状态值,你看到的该当是4。

原文:Quorum企业以太坊环境搭建教程 - 汇智网

标签:

相关文章