What is Command Reference?

This document provides a comprehensive reference guide for all command-line utilities available in Quorum, a permissioned variant of Ethereum. It outlines the functionalities of each utility, including geth, clef, puppeth, and others. This reference serves as a centralized resource for developers and users to understand and effectively utilize these tools in their Quorum-based applications.

Why is Command Reference important?

Command Reference is critical for a number of reasons:

  • Streamlined Development: Provides a clear and organized understanding of available commands and their functions, facilitating efficient development and deployment of Quorum-based applications.
  • Troubleshooting and Maintenance: Acts as a valuable troubleshooting resource, helping users identify and resolve issues related to Quorum’s command-line utilities.
  • Community Collaboration: Enables developers to effectively share knowledge and best practices regarding Quorum’s command-line tools, fostering a strong and collaborative community.

Using Command Reference

This document is structured to provide clear and concise information about each command-line utility. Each utility will have its own dedicated section, detailing its purpose, usage, and available options.

The following structure is used for each utility:

  • Utility Name: The name of the command-line utility, e.g., geth.
  • Description: A brief overview of the utility’s purpose and key functionalities.
  • Usage: A basic syntax example demonstrating how to use the utility.
  • Options: A comprehensive list of all available options, including their descriptions and usage.
  • Examples: Practical examples showcasing common usage scenarios for the utility.

Command-line Utilities

This section provides detailed information about each command-line utility available in Quorum.

geth

Description: The geth command is a core utility in Quorum, used for interacting with the Ethereum blockchain. It allows users to perform a wide range of operations, including:

  • Node Management: Start, stop, and configure Quorum nodes.
  • Account Management: Create, manage, and interact with Ethereum accounts.
  • Transaction Processing: Send and receive Ethereum transactions.
  • Contract Deployment: Deploy smart contracts to the blockchain.
  • Block Exploration: Explore the blockchain’s data, including blocks, transactions, and state changes.

Usage:

geth [options]
          

Options:

Examples:

  • Start a Quorum node with the default configuration:
geth
          
  • Start a Quorum node with a specific data directory:
geth --datadir=/path/to/data
          
  • Start a Quorum node with the JSON-RPC server enabled:
geth --rpc
          

clef

Description: The clef command is a utility specifically designed for Quorum, used for managing and interacting with private keys and accounts. It provides features for:

  • Key Generation: Creating new private keys and associated addresses.
  • Key Import and Export: Importing and exporting private keys in various formats.
  • Account Management: Managing and accessing multiple accounts.
  • Transaction Signing: Signing transactions using private keys.
  • Password Management: Setting and managing passwords for private keys.

Usage:

clef [command] [options]
          

Commands:

  • create: Create a new private key and account.
  • import: Import a private key from a file or string.
  • export: Export a private key to a file or string.
  • sign: Sign a transaction using a private key.
  • list: List all available accounts.
  • password: Set or manage a password for a private key.

Options:

  • --password: Specify a password to protect the private key.
  • --keystore: Set the location of the keystore directory.
  • --from: Specify the account to use for signing transactions.
  • --to: Specify the recipient address for transactions.
  • --value: Set the value (in wei) for transactions.
  • --data: Specify the data payload for transactions.

Examples:

  • Create a new private key and account:
clef create
          
  • Import a private key from a file:
clef import --keyfile /path/to/keyfile.json
          
  • Sign a transaction:
clef sign --from 0x1234... --to 0x5678... --value 1000000000000000000
          

puppeth

Description: The puppeth command is a utility used for setting up and configuring new Quorum networks. It provides a guided process for:

  • Network Initialization: Creating a new genesis block and configuration for a private blockchain.
  • Node Deployment: Deploying and configuring Quorum nodes on the network.
  • Account Creation: Generate and manage accounts for participating nodes.
  • Contract Deployment: Deploy pre-configured smart contracts to the network.

Usage:

puppeth
          

Options:

  • --network: Specify the name of the network to be created.
  • --genesis: Set the path to a custom genesis block configuration file.
  • --nodes: Specify the number of nodes to be deployed on the network.
  • --accounts: Specify the number of accounts to be created.
  • --password: Specify a password to protect the keystore.
  • --config: Set the path to a configuration file for the network.
  • --verbosity: Set the logging verbosity level.

Examples:

  • Create a new Quorum network with 3 nodes:
puppeth --network mynetwork --nodes 3
          
  • Create a new Quorum network using a custom genesis block:
puppeth --network mynetwork --genesis /path/to/genesis.json
          

Important Notes:

  • This document provides an overview of the most commonly used command-line utilities in Quorum.
  • For detailed information and advanced options, refer to the official documentation and resources available on the Quorum repository.