Quorum区块链开发入门教程
Quorum是JP摩根推出的企业级许可制以太坊联盟链,支持节点间私有交易,采用Raft或Istanbul共识及Tessara Constellation加密,无需gas费。通过官方7节点示例演示部署与私有合约操作:节点1和7间私有交易可见,其他节点无法访问。
你是否对Quorum这个由摩根大通推出的企业级区块链框架感到好奇?它本质上是一个许可制的以太坊联盟链,在节点之间实现了私有且快速的交易处理。先来说说它的核心定位:Quorum并非普通的公链,它更专注于企业环境下的交易隐私与可控性。为了保障隐私,节点之间的私有交易经过了专门设计,采用Raft或Istanbul BFT算法达成共识,再通过Tessera或Constellation实现数据的加密与共享。有趣的是,Quorum网络中的交易无需支付Gas费,验证工作完全由投票共识算法完成。不过,每个节点都需要由网络管理员生成的密钥对才能加入。
学习Quorum最直接的方式?运行官方提供的7节点示例即可。尽管有多种搭建方法,但使用Docker无疑是最省心的选择。下面基于Google Cloud上的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 BFT共识算法。若要改用Raft算法,只需设置环境变量 QUORUM_CONSENSUS=raft,然后让7个节点在后台启动。容器启动需要一点时间,可以使用 docker ps 查看每个容器的运行状态及其ID。
2、部署智能合约
容器就绪后,进入节点1的Geth控制台:
docker exec -it quorum-examples_node1_1 geth attach /qdata/dd/geth.ipc
命令中的容器ID可能因环境而异,请根据实际 docker ps 结果进行调整。进入控制台后,即可进行合约操作。
现在部署一个简单的存储合约。示例代码目录下已经包含了 private-contract.js 和 simplestorage.sol 两个文件,存放路径为 quorum-examples/examples/7nodes/。在Geth控制台中运行:
> loadScript('/examples/private-contract.js')
稍等片刻,部署成功后控制台会返回合约地址——务必记录下来。该脚本在节点1上部署了一个初始状态值为42的存储合约,并且交易仅在节点1和节点7之间私有可见,这意味着其他节点将无法获取这个状态值。
验证这一点非常简单。打开节点2的Geth终端,使用ABI与合约地址创建合约实例:
> var abi=
> var address="
> var contract=eth.contract(abi).at(address);
> contract.get()
0
结果返回0,而非42。这正是预期效果——节点2确实无法访问私有交易的状态。
再切换到节点7的Geth终端,使用同样的方式创建合约实例并读取状态值:
> contract.get()
42
节点7能正确读取到42。私有交易的隔离效果一目了然。
3、发送私有交易
现在尝试在节点7和其他任意节点之间创建一个新的私有交易,调用合约的 set() 方法来修改状态值。这需要用到对应节点的公钥,所有7个节点的公钥文件都存放在 quorum-examples/examples/7nodes/keys/ 目录下。
contract.set(4, {from: eth.coinbase, privateFor: ["
上述调用将合约状态值设置为4,并且仅对 privateFor 中指定的节点可见。你可以打开这些指定节点的Geth终端查看合约状态值,应该都会返回4。而其他未指定的节点,看到的仍然是之前的值。

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
CAD零基础入门教程:坐标输入、图层管理与基础绘图命令
本文面向CAD零基础学习者,系统讲解坐标输入、图层管理与基础绘图命令的核心用法。通过分步实操与常见问题排查,帮助新手建立精确绘图习惯,掌握规范出图的基础能力。
CAD从入门到项目交付:绘图、标注、图块与实战工作流
掌握CAD的核心在于建立“画得准、标得清、复用快、交付稳”的工作流。本文提供从环境设置、高频命令组合、标注规范、图块标准化到项目分阶段交付的完整路径,帮助初学者避免常见返工陷阱,独立完成可检查、可复用、可打印的工程图纸。
Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤
本文详细解析 Claude Code 登录前的账号类型区分方法,涵盖个人订阅、Teams 席位与企业 Enterprise 席位的授权路径差异。提供终端登录命令、环境变量排查及常见异常处理步骤,帮助用户快速完成正确授权并避免登录路径混淆。
Claude Code 文件修改前的权限模式配置与命令审批指南
本文详细介绍Claude Code在修改文件前的权限模式配置方法,包括defaultMode可选值、permissions allow与deny规则设置、多层级配置文件管理以及 status验证技巧,帮助开发者安全高效地使用AI编程助手。
Claude Code接入VS Code后先测扩展和终端命令
在VS Code中接入Claude Code后,建议优先验证扩展面板与集成终端两条入口。本文提供标准检查顺序、关键命令与常见故障排查路径,帮助你快速确认环境就绪,避免后续开发受阻。
- 热门数据榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2026-09-01 16:53
2026-09-01 16:52
2026-09-01 14:27
2026-09-01 14:12
2026-09-01 14:10
2026-09-01 14:07
2026-09-01 13:55
2026-09-01 13:47
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

