天天看点

使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络

Quorum 简介

Quorum(企业以太坊)是由J.P.Morgan主导,在基于以太坊源码开发的一套联盟链产品。合约与应用开发模式与以太坊基本一致,以太坊的开发人员可以很容易切换到Quorum平台上面来,甚至一些以太坊上的合约、应用也可以轻松的移植过来。

Quorum也得到业界的广泛关注,J.P.Morgan与Microsoft建立了紧密的合作关系,共同推广Quorum;Quorum也登录了Azure、阿里云等云服务端的BaaS平台。

Quorum与Ethereum的主要区别在于:

  1. 提供了Transaction和Contract的私有化功能
  2. 替换的共识机制,用IBFT与Raft共识取代了以太坊的PoW共识
  3. 加入了网络与节点的权限管理,从以太坊的开放式变成了许可制
  4. 交易处理性能方面得到了很大的提升

Quorum 架构

使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络

Quorum网络由以下几大模块构成:

  • Quorum Node

    Quorum Node 是 以太坊geth的一个轻量级的分叉,这样可以充分利用以太坊日益增大的研发社区,同时在未来也会跟着geth的版本持续升级。

  • Privacy Manager

    Quorum提供了Tessera和Constellation新旧两种私有交易方案, Tessera目前已经可以用于生产环境,并且会持续改进升级,而Constellation只继续提供支持不再升级。Quorum的隐私管理由以下两个子模块组成:

    • Transaction Manager: 负责管理私有交易。它存储并允许访问加密的交易数据,与其他参与者的Privacy Manager交换加密后的数据,但不能访问任何敏感的私钥。
    • Enclave: 用于加解密私有交易信息,与 Transaction Manager 是一对一的关系

Quorum的原生部署

Quorum 开发者文档中提供了两种部署方式:

  • Docker

    可以通过以下命令行,拉取quorum、tessera、constellation容器模板

docker pull quorumengineering/quorum
docker pull quorumengineering/tessera
docker pull quorumengineering/constellation
           

docker方式确实很方便,但是quorum文档中的介绍到此就打住了,并没有对docker配置进行详细说明,让人很难照着这个方式继续走下去…

  • 源代码
    1. 下载代码
git clone https://github.com/jpmorganchase/quorum.git
           
  1. 编译代码, 需要先安装go运行环境
cd quorum
make all
           
  1. 运行test
make test
           

我卡在了编译环节,试了很多办法也走不下去,此路也不通…

在阿里云BaaS中部署Quorum网络

开通BaaS服务

首先当然是要开通阿里云BaaS服务,具体参考阿里云文档

创建企业以太坊网络

  1. 登录阿里云BaaS控制台,打开“企业以太坊”下的“概览”页面:
    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  2. 在概览页面中点击“创建以太坊”
    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  3. 填写以太坊基本资料:
参数 说明
名称 以太坊网络的名称,建议填写与业务相关的名称,便于识别。
网络ID 以太坊网络的ID,创建后不能修改。
共识机制 目前只支持istanbul(IBFT)共识,暂时还未开放Raft共识。
燃料限制 GASLIMIT值,代表了这个交易的执行最多被允许使用的计算步骤。
地域 您的区块链基础设施所在的地域。建议选择与业务应用系统相同的地域。
备注 填写关于组织的其他说明。
增加节点 添加需要创建的默认节点名称。IBFT共识需要3F+1个节点,所以最少要添加4个节点。
使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络

4. 点击“创建”,开始创建以太坊网络。创建大概要花费15-40分钟进行资源配置

5. 配置完成后,在“我的以太坊”列表中可以看到新创建的Quorum网络。

使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络

管理区块链网络

区块链运行监控

  1. 查看区块链网络监控

    在“我的以太坊”列表中,点击以太坊ID,会打开Quorum区块链网络监控工具,可以看到区块链与各个节点的运行状态与实时数据。

    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  2. 查看区块浏览器

    在“我的节点”列表中,点击任意节点的“监控”操作,可以打开区块浏览器。可以查看所有的区块与交易数据。

    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  3. 查看运行日志

    在控制台左边菜单中,点击“日志”可以查看最新的运行日志。

    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络

节点管理

  1. 在当前用户下添加节点

    在“我的以太坊”列表中,点击“增加节点”,填写节点名称与描述,即可增加一个新节点到网络中

    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  2. 邀请其他阿里云BaaS用户加入以太坊网络

    在“我的以太坊”列表中,点击“邀请”按钮,将邀请链接与邀请码发给其他阿里云BaaS用户,用户按照页面指引,一步步操作即可加入。

    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  3. 添加阿里云以外的Quorum节点到网络

    参考第一步增加节点,在填写节点信息时勾上“外部节点”选项即可。然后在“我的节点”列表中,点击节点名称,打开节点配置,修改以下节点参数:

    • IP: Quorum 节点和节点 tx-manager 的公网IP地址
    • TMPort: 节点 tx-manager 的服务端口
    • P2pPort: Quorum 节点的 P2P 通信端口
    • TMPub: 节点 tx-manager 使用的身份公钥
    • NodePub: Quorum 节点的公钥
    • WSPort: 可选,Quorum 节点 websocket 服务端口
    • RpcPort: 可选, Quorum 节点 RPC 服务端口
      使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  4. 设置节点安全配置

    在“我的节点”列表中,点击节点名称,打开节点配置而。然后在“安全设置”中设置该节点的RPC 接口的用户名和密码。以后的客户端与应用程序连接都需要用到该用户名密码。

    使用阿里云BaaS快速搭建Quorum企业以太坊网络Quorum 简介Quorum 架构Quorum的原生部署在阿里云BaaS中部署Quorum网络
  5. 节点投票

    如果新加入的节点要成为“验证节点”参与共识算法打包区块,则需要半数以上的用户投票通过。投票方法为,在节点列表中,点击该节点的“投票”操作即可。等收到足够的票数后,该节点将转成“验证节点”。

访问区块链网络

至此,在阿里云上已经成功搭建好Quorum网络。客户端访问需要提供节点访问地址与安全信息(用户名、密码)。访问地址可以在“我的节点”中找到,安全信息可以在节点设置中查看或设置。

继续阅读