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 是用 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 社区以获得支持。
按照 Getting Started 入门中的说明操作后,您应该拥有一个完全生成的本地 GoQuorum 网络。 您可以通过以下方式与网络交互以试用 GoQuorum 的功能。
如果您还没有这样做,请进入网络目录并运行 start.sh( network/3-nodes-raft-tessera-bash 是快速入门的默认设置,如果您更改了任何设置,文件夹名称将会不同)。
该网络带有一些简单的合约来演示 GoQuorum 的隐私功能。 在这个演示中你可以:
● 在节点 1 和 2 之间发送私人交易
● 显示只有节点 1 和 2 能够查看合约的初始状态
● 让节点 1 更新合约的状态,区块被网络验证包含更新交易,再次验证只有节点 1 和 2 能够看到合约的更新状态
发送私人交易
从节点 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/ 中的日志文件,以查看每个节点使用这个新的私有事务验证块。 一旦包含交易的区块经过验证,您就可以再次检查每个节点 1、4 和 2 的状态。
在终端窗口 1(节点 1)中:
结果是:
在终端窗口 2(节点 2)中:
结果是:
在终端窗口 3(节点 3)中:
结果是:
这里你有:所有节点都在验证相同的交易区块链,私人交易仅包含 512 bit hush 代替交易数据,并且只有私人交易的各方能够查看和更新交易的状态 私人合同。
您还可以尝试使用我们的 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(包含在快速入门选项中),您也可以尝试在该 UI 中执行上述步骤。
1. 在浏览器中打开 http://localhost:8999 。
2. 转到合同选项并部署合同注册表
修改日期 | 修改人 | 备注 |
2021-06-11 17:30:08[当前版本] | 超级系统管理员 | 内容更新 |
2021-06-11 17:22:49 | 郑小军 | 内容更新 |
2021-06-11 17:21:58 | 郑小军 | 内容更新 |
2021-06-11 17:20:41 | 郑小军 | 内容更新 |
附件类型 | PNG |
|