qudag-cli 0.1.0

Command-line interface for QuDAG - Manage nodes, peers, and dark addresses
Documentation

QuDAG CLI

Command-line interface for the QuDAG quantum-resistant anonymous communication protocol.

Installation

Build from source:

cargo build --release
cp target/release/qudag /usr/local/bin/

Usage

Node Management

Start a QuDAG node:

qudag start --port 8000 --data-dir ./node-data --peers peer1.example.com:8000 peer2.example.com:8000

Stop the running node:

qudag stop

Check node status:

qudag status

Peer Management

List connected peers:

qudag peer list

Add a new peer:

qudag peer add peer3.example.com:8000

Remove a peer:

qudag peer remove peer3.example.com:8000

Network Management

Display network statistics:

qudag network stats

Test network connectivity:

qudag network test

DAG Visualization

Generate DAG visualization:

qudag dag --output dag.dot --format dot

Command Reference

qudag start

Starts a QuDAG node with the specified configuration.

Options:

  • --port <PORT>: Port to listen on (default: 8000)
  • --data-dir <DIR>: Data directory path (default: ./data)
  • --peers <ADDR>...: Initial peer addresses to connect to

qudag stop

Gracefully stops the running QuDAG node.

qudag status

Displays the current status of the running node including:

  • Connection status
  • Number of connected peers
  • DAG statistics
  • Network uptime

qudag peer

Peer management commands:

qudag peer list

Lists all currently connected peers with their addresses and connection status.

qudag peer add <ADDRESS>

Connects to a new peer at the specified address.

qudag peer remove <ADDRESS>

Disconnects from the specified peer.

qudag network

Network diagnostic commands:

qudag network stats

Displays comprehensive network statistics including:

  • Total peers
  • Active connections
  • Message throughput
  • Bandwidth usage
  • Average latency

qudag network test

Performs connectivity tests to all connected peers and reports results.

qudag dag

DAG visualization and analysis:

Options:

  • --output <FILE>: Output file path (default: dag_visualization.dot)
  • --format <FORMAT>: Output format (default: dot)

Generates a visual representation of the current DAG state.

Configuration

The CLI can be configured using a configuration file specified with the --config flag:

qudag --config config.toml start

Example configuration file (config.toml):

[node]
port = 8000
data_dir = "./node-data"
peers = ["peer1.example.com:8000", "peer2.example.com:8000"]

[network]
max_peers = 50
connection_timeout = 30

[logging]
level = "info"

Examples

Basic Node Operation

  1. Start a node:

    qudag start --port 8000
    
  2. In another terminal, check status:

    qudag status
    
  3. Add some peers:

    qudag peer add 192.168.1.100:8000
    qudag peer add node.qudag.example.com:8000
    
  4. Monitor network:

    qudag network stats
    qudag network test
    

DAG Analysis

Generate and view DAG visualization:

qudag dag --output current_dag.dot
dot -Tpng current_dag.dot -o dag.png
open dag.png  # or xdg-open on Linux

Troubleshooting

Common Issues

  1. Port already in use: Use a different port with --port
  2. Permission denied: Ensure proper permissions for data directory
  3. Connection refused: Check peer addresses and network connectivity

Debug Mode

Enable verbose logging:

RUST_LOG=debug qudag start

Log Files

Logs are written to:

  • stdout/stderr (console output)
  • <data-dir>/logs/qudag.log (file output)

Security Considerations

  • Keep your private keys secure
  • Use encrypted connections between peers
  • Regularly update to the latest version
  • Monitor for suspicious network activity

Contributing

See the main project repository for contribution guidelines.