2021-06-11 14:14:50 版本 : 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 上的GoQuorum(Qubernetes)

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

 

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

 

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

 

从头开始创建网络

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

 

创建部署在云中的网络

Quorum Cloud 提供了Quorum 网络如何在云平台上运行的示例。它使用Terraform通过AWS ECS Fargate,S3 和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. 包含GoQuorum和Kubernetes资源的目录的路径。


 

与正在运行的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

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