2021-06-11 17:06:49 版本 : GoQuorum Wizard
作者: 姜天雨 于 2021年06月11日 发布在分类 / 区块链基础知识 / 底层框架资料 / GoQuorum 下,并于 2021年06月11日 编辑
 历史版本

修改日期 修改人 备注
2021-06-11 17:30:08[当前版本] 超级系统管理员 内容更新
2021-06-11 17:22:49 郑小军 内容更新
2021-06-11 17:21:58 郑小军 内容更新
2021-06-11 17:20:41 郑小军 内容更新

Get started

GoQuorum Wizard


GoQuorum Wizard is a command line tool that allows users to set up a development GoQuorum network on their local machine in less than 2 minutes.


是一个命令行工具,允许用户在不到 2 分钟的时间内在他们的本地端的机器上设置一个开发 GoQuorum 网络。  


使用 GoQuorum Wizard

GoQuorum Wizard 是用 Javascript 编写的,旨在从commans line作为全局NPM 模块运行。 确保已安装 Node.js/NPM (版本 10 或更高版本)。

 

使用 npx 运行wizard,无需安装:

您还可以安装wizard npm

注意:许多 npm 安装没有安装全局模块的权限,会抛出 EACCES 错误。 Here is the recommended solution from NPM

 

依赖关系

以下是根据您运行向导的模式所需的依赖项(除了 Nodejs 10+):

 

Bash

 

Java (运行 Tessera Cakeshop 时)

Docker 组合:

 

Docker

docker-compose

库伯:

 

Docker (用于在网络创建期间生成资源)

kubectl

minikube 、启用了 Kubernetes Docker 桌面或其他一些 Kubernetes context

 

选项

您还可以在运行 quorum-wizard 时提供这些标志:

You can also provide these flags when running quorum-wizard :

 

与网络互动

要探索 GoQuorum 的功能并部署私有合约,请按照 Interacting with the Network .

工具

Wizard 在您的网络部署提供了一些有用工具的选项。 在 Tools page 上了解更多信息。

 

发展

将此 repo 复制到您的本地计算机。

npm install 以获取所有依赖项。

npm run test:watch 自动对更改运行测试

npm run start 自动构建对 src 目录中任何文件的更改

npm link 在运行全局 npm 命令时使用您的开发版本

quorum-wizard 运行(或者,您可以运行 node build/index.js

 

贡献

GoQuorum Wizard 基于开源构建,我们邀请您贡献增强功能。 经过审核,您需要先完成贡献者许可协议 (CLA),然后我们才能合并。 如果您对贡献过程有任何疑问,可以通过 GoQuorum Slack community 社区获得解答。

获得帮助

卡在某个步骤? 请加入我们的 GoQuorum Slack community 社区以获得支持。

 

Interacting


与网络互动

按照 Getting Started 入门中的说明操作后,您应该拥有一个完全生成的本地 GoQuorum 网络。 您可以通过以下方式与网络交互以试用 GoQuorum 的功能。

 

启动网络

如果您还没有这样做,请进入网络目录并运行 start.sh network/3-nodes-raft-tessera-bash 是快速入门的默认设置,如果您更改了任何设置,文件夹名称将会不同)。


展示隐私

该网络带有一些简单的合约来演示 GoQuorum 的隐私功能。 在这个演示中你可以:

     在节点 1 2 之间发送私人交易

     显示只有节点 1 2 能够查看合约的初始状态

     让节点 1 更新合约的状态,区块被网络验证包含更新交易,再次验证只有节点 1 2 能够看到合约的更新状态

 

Command Line 使用 geth

发送私人交易

从节点 1 向节点 2 发送一个示例私有合约(这由节点 2 的公钥表示通过 privateFor: ["QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc="] in private-contract.js ):  


记下打印到终端的 TransactionHash

 

检查 GoQuorum 节点

您可以通过使用 ./attach.sh 打开 geth JavaScript 控制台来检查任何 GoQuorum 节点。 对于此演示,您将检查节点 1、节点 2 和节点 3

 

建议为您正在检查的每个节点使用单独的终端窗口。 在每个终端中,确保您位于网络目录中,然后:

 

      在终端 1 中运行 ./attach.sh 1 以附加到节点 1

      在终端 2 中运行 ./attach.sh 2 以附加到节点 2

      在终端 3 中运行 ./attach.sh 3 以附加到节点 3

     要查看刚刚发送的私人交易,请在其中一个终端中运行以下命令:

你应该用之前打印到终端的 TransactionHash 替换这个 hash。 这将打印表单的结果:

 

 

请注意“0x25”“0x26”(十进制为 37 38)的 v 字段值,这表明该交易具有私有负载(输入)。

 

检查合同状态

对于 3 个节点中的每一个,您将使用 geth JavaScript 控制台创建一个名为 address 的变量,您将分配给节点 1 创建的合约地址。 可以通过两种方式找到合约地址:

 

      在节点 1 的日志文件中: qdata/logs/1.log

      通过在调用 eth.getTransactionReceipt(txHash) ( Ethereum API documentation ( 以太坊 API 文档)后读取 contractAddress 参数,其中 txHash 是发送交易后打印到终端的hush

 

确定合约地址后,在每个终端中运行以下命令:

 

接下来,您将使用 eth.contract 在每个终端中使用 simpleStorage ABI 定义一个合同类:



函数调用现在在合约实例上可用,您可以在合约上调用这些方法。 让我们从检查合约的初始值开始,确保只有节点 1 2 可以看到初始化值。

 

在终端窗口 1(节点 1)中:

                

结果是:

在终端窗口 2(节点 2)中:

                

结果是:

在终端窗口 3(节点 3)中:

                

结果是:

请注意,节点 1 2 能够读取私有合约的状态,其初始值为 42

 

如果您查看  private-contract.js ,您将看到这是创建合同时设置的值。

 

节点 3 无法读取状态。

 

更新合约状态

接下来,您将让节点 1 将状态设置为值 4,并验证只有节点 1 2 能够查看新状态。

 

在终端窗口 1(节点 1)中:

 

              

结果是:

您可以检查 qdata/logs/ 中的日志文件,以查看每个节点使用这个新的私有事务验证块。 一旦包含交易的区块经过验证,您就可以再次检查每个节点 14 2 的状态。

 

在终端窗口 1(节点 1)中:

               

结果是:

在终端窗口 2(节点 2)中:

               

结果是:

在终端窗口 3(节点 3)中:

               

结果是:

这里你有:所有节点都在验证相同的交易区块链,私人交易仅包含 512 bit hush 代替交易数据,并且只有私人交易的各方能够查看和更新交易的状态 私人合同。

 

使用 Remix

您还可以尝试使用我们的 GoQuorum Plugin ,存储合约执行上述所有步骤在 Remix 中。 按照 Getting Started ( 入门) 中的说明激活 remix plugin,使用节点的 GoQuorum Tessera url 连接到节点:

 

节点 1 默认值:

     GoQuorum RPC: http://localhost:22000

     Tessera: http://localhost:9081

 

 

节点 2 默认值:

     GoQuorum RPC: http://localhost:22001

     Tessera: http://localhost:9082

 

 

节点 3 默认值:

     GoQuorum RPC: http://localhost:22002

     Tessera: http://localhost:9083

使用 Cakeshop

如果您选择在您的网络中包含 Cakeshop(包含在快速入门选项中),您也可以尝试在该 UI 中执行上述步骤。

 

1.    在浏览器中打开  http://localhost:8999

2.    转到合同选项并部署合同注册表

  1. 进入沙箱,从合约库中选择 SimpleStorage 示例合约,并使用 Private For 设置为第二个节点的公钥进行部署 ( QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc= )
  2. 返回主 Cakeshop 页面,再次转到 Contracts 选项,您应该能够看到刚刚部署的合同。
  3. 从这里与它交互,并使用页面右上角的下拉菜单在节点之间切换。

 附件

附件类型

PNGPNG

历史版本-目录  [回到顶端]
    区块链服务网络发展联盟