Sign inSign up

erolagnab/qctl

By erolagnab

•Updated almost 8 years ago

Test quorum-tools docker build

Image
0

1.1K

erolagnab/qctl repository overview

⁠Summary

A CLI (qctl) provides a set of tools for Quorum Network management (using Docker⁠, minium 4G RAM for 7-node network):

  • Bring up a simple Quorum Network. E.g.:
    qctl quorum -f samples/7nodes-istanbul.yml up
    qctl quorum -f samples/7nodes-intanbul.yaml down
    
  • Bring up a managed Quorum Network by exposing additional APIs⁠: add new Quorum nodes, start/stop existing Quorum nodes
    qctl quorum -f samples/7nodes-istanbul.yml up --enable-operator
    <Ctrl+C> to stop and destroy the network
    
  • Istanbul BFT utilities: encode/decode extraData - TODO

And more! Just run qctl --help for help and additional information

⁠Table of Contents

Getting started⁠

How to⁠

Quorum Network Configuration⁠

Operator APIs⁠

Development⁠

⁠Getting started
  • Download cross-compiled binaries
  • Build from source
    • Require Go 1.11.x (Go modules are used so unset GOPATH) and make
    • Clone this repo and run make, binary will be available under build/ folder
⁠How to

See docs/qctl.md⁠ for details of different commands

⁠Quorum Network Configuration

See samples⁠

⁠Operator APIs

When bringing up a managed Quorum Network with --enable-operator flag, the following APIs are exposed

⁠GET /v1/nodes

Response:

[
    {
        "id": "0",
        "url": "http://localhost:22000",
        "privacy-address": "xyz=",
        "validator-address": "0xaf234abcd"
    },
    ...
]

If request header Accept has value application/yaml, the response would be

quorum:
  nodes:
    Node1:
      privacy-address: BULeR8JyUWhiuuCMU/HLA0Q5pzkYT+cHII3ZKBey3Bo=
      url: http://localhost:22000
    Node2:
      privacy-address: QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc=
      url: http://localhost:22001
    ...
⁠PUT /v1/nodes

Request:

[
	{
    	"quorum": {
            "image": "quorumengineering/quorum:latest",
            "config": {
                "verbosity" : "5"
            }
        },
        "tx_manager": {
            "image": "quorumengineering/tessera:latest",
            "config": {
            }
        }
	},
	...
]

Response:

[
    {
        "id": "7",
        "url": "http://localhost:22000",
        "privacy-address": "xyz=",
        "validator-address": "0xaf234abcd"
    },
    ...
]
⁠POST /v1/nodes/{idx}

Request:

{
  "target": "quorum/tx_manager",
  "action": "stop/start/restart/fn_setRaftId",
  "fnArgs": ["12"]
}
⁠GET /v1/nodes/{idx}/{target}/logs

Logs are streamed to response body

⁠Development
  • Go 1.11.x
  • Unset GOPATH

Tag summary

Content type

Image

Digest

Size

8.7 MB

Last updated

almost 8 years ago

docker pull erolagnab/qctl