Quorum区块链开发入门

简介: title: Quorum企业以太坊环境搭建教程date: 2019-6-7 11:39:30categories:以太坊tags:企业以太坊QuorumQuorum是一个许可制的以太坊联盟区块链实现,包含了金融巨头JP摩根开发的一个GETH分支版本,可以在节点之间实现私有和快速的交易。

title: Quorum企业以太坊环境搭建教程
date: 2019-6-7 11:39:30
categories:

  • 以太坊
    tags:
  • 企业以太坊
  • 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个节点:

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。


原文:Quorum企业以太坊开发环境搭建

目录
相关文章
|
4月前
|
存储 开发框架 API
Codefi基于区块链的开发框架
Codefi基于区块链的开发框架
47 0
|
5月前
|
供应链 监控 安全
企业如何搭建自己的联盟链 | 区块链落地项目运用开发
企业如何搭建自己的联盟链 | 区块链落地项目运用开发
|
7月前
|
供应链 安全 物联网
区块链去中心化交易所源码|去中心化交易系统开发
随着区块链技术的发展,应用的扩展,区块链软件开√发也随之应用到物联网、供应链管理等领域,其中包含区块链交Y所系统,区块链去中心化交Y所,依托于区块链技术,具有去中心化、匿名性、信息不可纂改等特点
|
2月前
|
自然语言处理 安全 AndFix
区块链商城系统开发步骤指南/详细需求/源码功能/多语言/海外版
When developing a blockchain mall system, the following steps and requirements are usually required:
|
2月前
|
安全 中间件 测试技术
Web3.0区块链技术开发方案:mint铭文铭刻制度开发
Web3.0区块链技术开发方案:mint铭文铭刻制度开发
|
3月前
|
存储 开发框架 安全
区块链技术与智能合约开发:探索未来的数字世界
在数字化时代,区块链技术和智能合约已成为科技行业的热门话题。这项技术使得信息传输更加安全、透明和高效,同时也为各种应用场景提供了更多可能性。本文将介绍区块链技术和智能合约的基本概念,并讨论如何开发智能合约以及它们在不同领域的应用。
|
3月前
|
人工智能 供应链 安全
探索区块链技术与智能合约开发的边界
区块链技术和智能合约开发已经成为当代科技领域的热点话题。本文将从技术角度深入探讨区块链技术的原理、应用场景以及智能合约的开发过程,并探索其潜在边界和未来发展趋势。
|
3月前
|
安全 数据挖掘 区块链
区块链商城源码搭建开发技术方案丨成熟讲解
区块链积分商城系统开发技术丨成熟方案
101 0
|
3月前
|
算法 区块链 Python
区块链代币DAPP逻辑系统开发技术方案丨单边上扬模式开发逻辑
区块链代币DAPP逻辑系统开发技术方案丨单边上扬模式开发逻辑
|
3月前
|
供应链 物联网 区块链
区块链技术与智能合约开发:探索未来的数字经济
随着科技的不断发展,区块链技术和智能合约作为新型的数字经济基础设施逐渐崭露头角。本文将介绍区块链技术和智能合约的基本概念及其应用场景,并深入探讨如何进行智能合约的开发。
37 0

热门文章

最新文章