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

2023-10-27

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个节点:

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控制台:

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控制台运行:

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

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

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

> 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和合约地址创建合约实例,然后尝试读取状态值:

>contract.get()
42

和预期一样。

3、发送私有交易

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

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

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


原文:A Beginner guide to Quorum Blockchain

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Quorum企业以太坊环境搭建教程 的相关文章

  • 【论文解读-未完成】-A Survey of Transformers-【一篇论文了解整个Transformers王国】

    论文链接 https arxiv org abs 2106 04554 论文时间 202106 论文单位 复旦大学 论文长度 40页 论文目录 A Survey of Transformers Transformers的文献综述 1 INT
  • 自动化测试框架总结

    自动化测试框架流程图 自动化测试框架模块 配置文件读取模块 日志模块 测试数据读取模块 测试执行模块 测试结果更新模块 异常处理模块 屏幕截图模块 自动化框架模块功能说明 配置文件读取模块 模块的主要功能是把测试项目的公共配置读取到脚本里
  • 智能家居_串口通信编程

    模拟串口 我要使用串口开发 那么 安卓系统必须要Root 让我有超级权限 串口就是文件 首先要打开串口文件 我们没有实体开发主板 使用虚拟串口驱动来代替实体开发主板 模拟android主板上的2个串口 模拟 开发板 插入了电脑 电脑就会显示

随机推荐

  • 2020东南大学网络空间安全保研夏令营(预推免)经验

    2020东南大学网安院保研夏令营 预推免 经验 前言 个人情况 本科某双非双一流CS专业 GPA 1 230 国家级省级奖项各有四五项 校级奖项若干 奖学金若干 项目只有一个大创 无论文 东大网安院说来话长 本来是不想报的 然鹅计算机学院的
  • mavne install 报错org.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.Invoca...

    maven install 报错 org apache maven surefire util SurefireReflectionException java lang reflect InvocationTargetException
  • java校验文件路径正则表达式_正则表达式判断是否是合法路径

    在页面前端使用一个文本框 输入条件是 c test 在java中File判断是可以通过的 可以创建的 File file new File filePath if file exists file mkdir 说明是一个合法的路径 但是在w
  • 哈师大计算机学院宿舍,新生攻略

    原标题 新生攻略 哈师大所有的 秘密 都在这了 你好 我是哈师大17级的新生 我想全面的了解一下咱们学校 应该去哪了解呀 这你可算是问对人了 听说最近哈尔滨师范大学学生会的官方微信平台出了非常全的新生攻略呢 快关注它们的公众号 hsdxsh
  • Linux系列

    测试代码如下 是一个输出 Tinywan字符串与循环轮数的死循环程序 每输出一行就休眠1秒 原始输出 前台执行该程序运行效果 程序每隔一秒会在终端输出一个字符串 此时如果键入 Ctrl C 程序会收到一个 SIGINT信号 如果不做特殊处理
  • APT 攻击溯源方法

    概述 当今世界正值百年未有之大变局 网络空间成为继陆 海 空 天之后的第五大疆域 安全威胁也随之延伸至网络空间 没有网络安全就没有国家安全 在新时代网络空间安全已经上升至国家安全的高度 高级持续性威胁 Advanced Persistent
  • #PCIE# PCIE基础知识篇(3)

    写在前面 本文章转载自老狼知乎 感谢分享 随着AMD新一代CPU的发布 PCIe 4 0 Gen4 也进入了人们的视线 然而Intel随后宣传PCIe 4 0对消费市场用处不大 AMD则反讽Intel吃不到葡萄说葡萄酸 正在吃瓜群众搬板凳看
  • could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the n

    如果你在创建自定义网络时 docker network create driver bridge my net出现下面的提示 Error response from daemon could not find an available no
  • 【Vue3项目】登录注册--双Token机制

    目录 前言 什么是双Token机制 双Token的实现流程 前言 最近同项目的伙伴告诉我们一个 新词汇 双Token登录机制 emmmmm 确实没了解过 据说是在实现token长期有效的同时 防止token被第三方盗用 提高用户信息的安全性
  • ReactNative系列之十三WebStorm的JSX语法配置及自动补全设置

    1 开发ReactNative常用工具 WebStorm Sublime Atom 2 配置WebStorm的ReactNative语法 a 下载 git clone https github com virtoolswebplayer R
  • ES 搜索20 (function_score 和 field_value_factor 自定义评分)

    自定义评分 设想有个网站供用户发布博客并且可以让他们为自己喜欢的博客点赞 我们希望将更受欢迎的博客放在搜索结果列表中相对较上的位置 同时全文搜索的评分仍然作为相关度的主要排序依据 可以简单的通过存储每个博客的点赞数来实现它 在搜索时 可以将
  • DHCP协议及其实验(eNSP)

    目录 一 DHCP 1 1 DHCP作用 1 2 DHCP地址池 1 3 DHCP报文类型 1 4 DHCP工作原理 对DHCP工作原理的思考 1 5 DHCP租期更新 1 6 DHCP重绑定 1 7 IP地址释放 二 DHCP实验 2 1
  • C++控制台RPG游戏:对话系统

    具体实现思路 CTalk类继承窗口基类 里面封装了updata 和onRander 方法 里面包含了结构体SArrTalk m pArrTalk 用来存对话数据 CTalk类控制对话的进行 以及数据的渲染 而对话的内容则存在相应的文件之中
  • 使用OpenCV,Haar级联检测器进行面部、眼睛、嘴部检测

    使用OpenCV Haar级联检测器进行面部 眼睛 嘴部检测 1 效果图 2 原理 2 1 Haar级联是什么 2 2 Haar级联的问题与局限性 2 3 Haar级联预训练的模型 3 源码 3 1 图像检测 3 2 实时视频流检测 参考
  • 【进阶】使用Excel进行回归分析,预测真实值

    预备阅读 进阶 使用Excel进行相关分析 前言 昨天学习了Excel中的相关分析 在数据分析中 相关分析和回归分析关系紧密 今天来学习下Excel中的回归分析 回归分析 回归分析 regressionanalysis 是确定两种或两种以上
  • 向量大小和归一化(vector magnitude & normalization)、向量范数(vector norm)、标量/向量/矩阵/张量

    一 向量大小 首先一个向量的长度或者大小一般记为 上图中的平面向量的大小计算如下 空间向量的大小计算如下 维复向量的大小计算如下 二 向量归一化 向量归一化即将向量的方向保持不变 大小归一化到1 向量的归一化向量为 三 向量范数 范数是一种
  • ant design pro上传图片到后端

    我们这里是前端将图片上传到后端 然后后端这里再上传到阿里云的OSS 并返回一个文件的路径给前端 先看效果 上传后生成的图片 前端 pageList js const props name avatar listType picture ca
  • Servlet基础_0300_Cookie

    web服务器和Client基础 1 web服务器可以向客户端写内容 2 web服务器向客户端写的内容只能是文本文件 3 浏览器客户端可以阻止web服务器写入东西 4 web服务器端的servlet只能拿自己webapp的写入的内容 Cook
  • Intellij IDEA安装Maven(非常详细)

    安装Maven 安装路径 点击链接进去直接下载所需的版本Maven官网 http maven apache org download cgi 最新版本下载方式 1 点击链接进入Maven官网 2 找到左侧栏的Download找到Files下
  • Quorum企业以太坊环境搭建教程

    Quorum是一个许可制的以太坊联盟区块链实现 包含了金融巨头JP摩根开发的一个GETH分支版本 可以在节点之间实现私有和快速的交易 Quorum为保证隐私对节点之间的私有交易进行了专门的设计 它使用Raft和Istanbul算法实现共识