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

修改日期 修改人 备注
2022-06-09 14:13:54[当前版本] 尹紫娟 更新数据
2021-06-11 17:30:48 超级系统管理员 内容更新
2021-06-11 17:29:56 超级系统管理员 内容更新
2021-06-11 14:24:02 郑小军 内容更新

快速入门

概述

您可以通过多种方式开始使用GoQuorum。使用我们的Wizard生成本地网络到配置和创建完整网络从零起点做起。

 

GoQuorum Wizard

最简单方法是使用 GoQuorum Wizard 去建立和运行网络的。此命令行工具 (command-line tool) 创建了一个本地GoQuorum网络,该网络可以在几分钟之内启动并准备就绪。

 

Wizard 提供用于配置网络的选项,并生成所有资源以使用docker-compose 在容器中运行,或通过使用bash脚本在本地运行。

 

Wirzard 需要 Nodejs ,并且只能在Linux / Mac上运行。

 

npm install -g quorum-wizard

quorum-wizard

 

要探索GoQuorum的功能并部署私人合同,请遵循 Interacting with the Network 与网络交互的说明。

 

GoQuorum Example 示例网络

GoQuorum Examples 提供了一种快速创建预先配置以示例GoQuorum 网络的方法,该网络可以使用Vagrant在虚拟机环境中运行,可以在使用docker-compose 的容器中运行,也可以通过使用bash脚本在本地运行以自动创建网络。

 

Kubernetes 上的GoQuorumQubernetes

使用 qubernetes 运行可配置的N节点GoQuorum 网络在 Kubernetes 上。

 

对于本地开发,请使用 kind Minikube 。对于长时间运行的网络,请使用云服务(适用于ecample Google Kubernetes EngineAzure KSAWS EKS)或自托管的Kubernetes 群集。

 

Qubernetes 支持Raft Istanbul 共识算法,多种版本以及具有任意数量节点的网络。 Qubernetes repository 包含 examples 可以在Kubernetes上运行。

 

从头开始创建网络

Creating a Network From Scratch 将逐步介绍如何创建和配置适用于RaftIstanbul共识的 GoQuorum网络。它还显示了如何启用隐私并根据需要添加/删除节点。

 

创建部署在云中的网络

Quorum Cloud 提供了Quorum 网络如何在云平台上运行的示例。它使用Terraform通过AWS ECS FargateS3 EC2 创建在AWS 上部署的7节点Quorum 网络。



安装

可通过从源代码构建或通过下载预构建的发行版二进制文件来安装GoQuorum Tessera 并将其用作Docker 容器。


两种安装方式:通过源代码构建、通过下载预构建的发行版二进制文件。

      Quorum

      Tessera

下载后,将二进制文件添加到PATH 中以使其易于调用


容器

存在用于GoQuorum Tessera Docker 容器,可以在 quorumengineering Docker repository 中找到:

Docker containers exist for GoQuorum and Tessera and can be found at the:


通过源代码构建

GoQuorum

1.   克隆存储库并构建源:

二进制文件位于 $REPO_ROOT/build/bin 中。 将该文件夹添加到 PATH 中以使其易于调用 geth bootnode ,或将这些二进制文件复制到 PATH 中已存在的文件夹中,例如 /usr/local/bin


补充 PATH 的一种简单方法是将 PATH=$PATH:/path/to/repository/build/bin 添加到您的 ~/.bashrc or ~/.bash_aliases 文件中。



2.     运行测试

Tessera

Tessera Quorum隐私管理器的生产就绪型实现。 它正在积极开发中,并定期添加新功能。

请遵循Tessera项目页面上的安装说明 Tessera 项目页面

 

Qubernetes 入门

Qubernetes 是一个用于生成GoQuorum网络资源,Kubernetes GoQuorum资源以及管理GoQuorum Kubernetes 部署并与之交互的项目。

qctl golang命令行工具,用于创建和操作最小配置,并与正在运行的Kubernetes网络进行交互。

 

安装二进制文件

Obtain the binaries from the repository 从存储库中获取二进制文件。

获取

需要golang版本> 1.13


测试 qctl 是否已正确安装。

 

Dependencies

 

Docker

 

  Kubernetes 运行时 例如,minikube

   查看适用于您的操作系统的minikube完整安装说明 这里

启动网络

必须设置两个路径,作为环境变量或命令标志:

 

        QUBE_CONFIG or --config. 通往 minimal configuration .

        QUBE_K8S_DIR or --k8sdir. 包含GoQuorumKubernetes资源的目录的路径。


 

与正在运行的K8s GoQuorum网络进行交互

 

 

升级到 GoQuorum 2.6.0

 

GoQuorum 2.6.0 将基础 geth 版本从 1.8.18 升级到 1.9.7 如果新功能作为 geth 1.9.7 的一部分添加,请参阅 Ethereum 1.9.0 以获取完整列表。

 

GoQuorum 2.6.0 上运行的节点可以共存于其他节点在较低版本的 GoQuorum 上运行的网络上,因此支持逐节点升级到 GoQuorum 2.6.0。建议的升级过程如下所述:

 

      关闭需要升级到 GoQuorum 2.6.0 的节点。修改 genesis.json 文件以包含 istanbulBlock petersburgBlock 。将来当整个网络升级到 GoQuorum 2.6.0 时,应将此值设置为适当的值。这很重要,因为 gas 计算逻辑在 geth 1.9.7 中发生了变化。不正确设置此值会导致 Bad block error

 

      GoQuorum 2.6.0 已弃用创世属性 maxCodeSize maxCodeSizeChangeBlock 。为了允许跟踪多个 maxCodeSize 值的变化,一个新的属性 maxCodeSizeConfig 被添加到 genesis。如果多次更改 maxCodeSize ,可能会导致任何新节点加入网络时出现 Bad block error GoQuorum 2.6.0 中的变化解决了这个问题,并允许跟踪 maxCodeSize genesis 的历史变化,从而允许它在网络生活中多次更改。通过在 GoQuorum 2.6.0 中执行 init 时的这一更改,geth 将强制使用 maxCodeSizeConfig

 

      使用修改后的 genesis.json 执行 geth --datadir path/to/datadir init genesis.json

        GoQuorum 2.6.0 中启动节点



 附件

附件类型

PNGPNG

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