Home

Awesome

Quorum Tools

⚠️ Project Deprecation Notice ⚠️

Quorum Tools has been deprecated, and we are no longer supporting the project.

If you have any questions or concerns, please reach out to the ConsenSys protocol engineering team on #Discord or by email.

Description

This project contains tools for running Quorum clusters and integration testing Quorum.

Installation

Install Quorum 2.0 and Constellation so they're on your PATH.

Install Haskell Stack.

Now, in the project directory:

$ stack setup # this is only necessary to run once
$ stack build

At this point, you can run any of the built binaries using stack exec:

$ stack exec -- local-new

Or you can use stack install to install them on your machine (make sure ~/.local/bin is on your $PATH):

$ stack install
$ local-new

To run all integration tests in batch, make sure that you can sudo (for packet filtering), and then run:

$ stack test

The following invocation might help to enable packet filtering during the test suite, if sudo requires a password on your machine:

$ sudo whoami && stack test

To run tests interactively, you can run them from the REPL:

$ stack ghci quorum-tools:lib

Tests

Here are some high-level cluster tests that we include in our suite:

The test sources are located in src/QuorumTools/Test/.

Running a cluster

We also include scripts for running a cluster without necessarily testing it.

local-new runs indefinitely, with multiple geths forked from the process. While the cluster is up and running, you can inspect the logs from the geth nodes (e.g. tail -f geth1.log), or send in transactions -- e.g. local-spam -g 1 -r 10 will send 10 transactions per second to geth 1 while it is running. Additionally you can attach to a geth node via its IPC file under gdata: geth attach gdata/geth1.geth.ipc. If the local-new process is stopped, you can restart the cluster from the existing datadirs under gdata by issuing local-start.