Quorum企业以太坊环境搭建教程

Quorum是一个许可制的以太坊联盟区块链实现,包含了金融巨头JP摩根开发的一个GETH分支版本, 可以在节点之间实现私有和快速的交易。Quorum为保证隐私对节点之间的私有交易进行了专门的设计, 它使用Raft和Istanbul算法实现共识,使用Tessara和Constellation实现节点数据的加密和共享。 在Quorum网络中交易不需要付费,交易的验证是由投票共识算法完成的。总体上来讲Quorum 类似于以太坊,只是它更关注的企业环境下的交易隐私性与可控性,因此每个节点都需要Quorum 网管生成的密钥对。

学习Quorum区块链的最好的办法,就是运行官方提供的7节点示例。虽然有多种方法来搭建7个 节点,我还是建议使用docker,因为这应该是最简单的办法。下面我使用Google云的Ubuntu 18.04。 如果你在本地机器或AWS上有ubuntu,也是一样的。请先确认docker和docker-compose已经 安装就绪。

在下面的演示中,我们要搭建7个Quorum节点,然后考察节点之间的私有交易是如何运作的。

1、搭建节点

运行下面的命令来搭建全部7个节点:

1
2
3
git clone https://github.com/jpmorganchase/quorum-examples.git
cd quorum-examples
QUORUM_CONSENSUS=raft docker-compose up -d

默认情况下,使用Tessera交易管理器和Istanbul BTF共识来搭建Quorum网络。因此为了 修改为Raft共识算法,我们设置环境变量QUORUM_CONSENSUS=raft,然后启动7个节点 的后台运行。

你可以运行docker ps来查看每个容器的运行状态以及其ID。需要稍等一会儿以便 容器启动就绪。

2、部署智能合约

如果要快速掌握以太坊区块链开发,推荐汇智网的在线互动课程:

java以太坊开发详解 | python以太坊开发详解 | php以太坊开发详解 | C#以太坊开发详解

以太坊智能合约与DApp开发入门 | 以太坊电商DApp实战 | ERC721以太坊通证实战

要在节点上部署智能合约,我们需要运行下面的命令进入该节点的geth控制台:

1
docker exec -it quorum-examples_node1_1 geth attach /qdata/dd/geth.ipc

命令中的quorum-examples_node1_1是节点1的容器ID。上面的命令进入节点1的geth控制台, 现在我们可以在控制台中进行操作。

下面我们要运行部署合约的javascript脚本。如果你查看示例代码目录,可以看到在 quorum-examples/examples/7nodes目录下有private-contract.jssimplestorage.sol 文件。 在geth控制台运行:

1
> loadScript('/examples/private-contract.js')

命令执行需要稍等一会儿。一旦部署成功,上面的命令将返回合约地址,记得拷贝下来 或者抄到纸上。上述脚本在节点1上部署了一个简单的状态值为42的存储合约,交易是节点1 和节点7之间私有的,这意味着其他节点将看不到这个状态值。

要验证这一点,我们可以开启节点2的geth终端,使用ABI和合约地址创建合约实例:

1
2
3
4
5
6
> var abi=<Paste ABI here>;
> var address="<paste Contract Address here>";
> var contract=eth.contract(abi).at(address);>contract.get() //calling get() method
0

果然。

现在进入节点7的geth终端,同样使用ABI和合约地址创建合约实例,然后尝试读取状态值:

1
2
>contract.get()
42

和预期一样。

3、发送私有交易

现在我们尝试在节点7和其他任选节点之间创建一个新的私有交易,调用合约的set() 方法来修改状态值。这需要使用节点的公钥,可以在quorum-examples/examples/7nodes/keys/ 目录下找到全部7个节点的对应公钥。

1
contract.set(4,{from:eth.coinbase,privateFor:["<your preferred node public key>"]});

上面的脚本将设置合约状态值为4,并且仅对指定的节点保持可见。你可以打开这些指定节点 的geth终端查看合约状态值,你看到的应该是4。


原文:A Beginner guide to Quorum Blockchain

汇智网翻译整理,转载请标明出处

Quorum企业以太坊环境搭建教程相关推荐

  1. 初学以太坊--环境搭建篇

    Geth命令安装(windows版本) 由于在windows下编译安装geth需要go语言等一系列步骤,初学者比较有点懵,以下介绍一个最简单的方法 1.下载资源 官网: https://geth.et ...

  2. 以太坊环境以及Solidity学习笔记

    一.以太坊环境搭建 以太坊 私有链搭建 Geth+Mist钱包 以太坊 链私有链环境搭建(windows) S1:下载安装Geth.Mist客户端 S2:初始化创世纪节点 定义一个配置文件genesi ...

  3. Hyperledger Besu企业以太坊快速教程

    Hyperledger Besu企业以太坊快速教程 发表于 2020-01-17 |  分类于 以太坊 Besu是Hyperledger中的企业以太坊产品,其最大优势在于兼容以太坊主网. 本教程介绍如 ...

  4. 企业以太坊联盟:区块链挑战者

    5月初,印度IT服务和咨询巨头Wipro宣布已加入企业以太坊联盟(EEA),成为创始成员.该联盟围绕基于开放源码区块链的平台Ethereum而形成,于2月底正式推出,其中30个创始成员开发企业级区块链 ...

  5. php工程师进行以太坊开发的教程

    以太坊是备受关注的区块链,它基于密码学技术和P2P通信技术 构建了一个去中心化的平台,所有的交易同步保存在每个节点中, 通过将区块单向级联成链,以太坊有效的保证了交易的不可篡改: 智能合约平台 以太坊 ...

  6. Active Directory攻防实验室环境搭建教程(二)

    本文讲的是 Active Directory攻防实验室环境搭建教程(二), 这篇文章不是为了描述如何搭建配置非常完美的实验室.相反,本文的重点是实验室的具体环境,可以让你作为学习的工具快速,轻松地搞起 ...

  7. 最详细的Hadoop+Hbase+Hive完全分布式环境搭建教程(二)

    继续上次的教程,这次安装hbase与hive.之前有同学反应百度网盘中没有hbase安装包,这次补上了,在上篇博客的网盘链接中已经有了,最详细的Hadoop+Hbase+Hive完全分布式环境搭建教程 ...

  8. win2008怎么配置php,Win2008 PHP 配置环境搭建 教程

    Win2008 PHP 配置环境搭建 教程 一.准备工作 1.所需软件: MySQL数据库:本文用MySQL-essential-5.0.45-win32.msi PHP : 本文用php-5.2.4 ...

  9. 宝塔服务器环境好不好_服务器环境怎么搭建?(宝塔环境搭建教程)

    大家好,欢迎来到西安蓝蜻蜓网络讲坛,上期我们讲的是怎样购买服务器,很多小伙伴都知道了购买服务器的方式方法,那么购买服务器后需要怎么搭建服务器环境呢?那么今天,我们就来讲述下服务器环境怎么搭建? 以宝塔 ...

最新文章

  1. CodeForces 157A Game Outcome
  2. 网页图表Highcharts实践教程之图表区
  3. ubuntu下面制作ubuntu系统启动盘(转载+自己整理)
  4. OJ1031: 判断点在第几象限
  5. Bounce(弹走绵羊)lct裸题
  6. Mac下快速新建txt文件
  7. 利用IAR调试Mini2440
  8. JAVA基础知识总结17(网络编程)
  9. Linux : 终端命令整理
  10. Quartz 源码解析(一) —— 基本介绍
  11. qq连连看java版_Java实战_仿QQ连连看
  12. 如何才能提高团队工作效率
  13. 解决-win10软件默认安装路径为C盘——修改注册表
  14. vue渲染大量数据优化_Vue列表页渲染优化详解
  15. vuex mutaton与actions的区别
  16. Rimworld Mod制作教程12 集群AI机制介绍
  17. 平分秋色? 鹿死谁手?
  18. 聊聊我当年在培训学校做开发的经历
  19. Android基础篇 屏幕横竖屏切换(layout-land)下篇
  20. Mongo与robomongo

热门文章

  1. php mysql隔离_mysql隔离级别有几种
  2. android开发岗_android应用开发
  3. oracle11g数据文件路径,oracle11g修改数据文件路径
  4. java 之持久化和序列化(反序列化)
  5. 使用显式Intent向下一个活动传递数据
  6. php商城多属性选择,ecshop后台商品属性详解之复选属性
  7. fiddler实现模拟器抓吧_使用Fiddler对手机抓包
  8. 基于jquery的php分页,基于jQuery封装的分页组件
  9. tensorflow-TFRecord 用法
  10. tf.argsort