Paragraph TBD.

1. Introduction to ConsensusJ

This section is TBD. For now the project README is the best place to get started.

2. JSON-RPC Clients

2.1. Generic

The module consensusj-jsonrpc contains JsonRpcClientHttpUrlConnection which is a generic JSON-RPC client.

2.2. Bitcoin

The module cj-btc-jsonrpc contains BitcoinClient and ExtendedBitcoinClient.

2.3. Class Diagrams

For some class diagrams see ConsensusJ JSON-RPC Inheritance.

3. Module Dependency Graphs

3.1. consensusj-rx-zeromq

This module is independent of the core JSON-RPC clients. It has no dependencies on bitcoinj, or anything cryptocurrency or JSON-RPC related.

Failed to generate image: Could not find the 'mmdc' executable in PATH; add it to the PATH or specify its location using the 'mmdc' document attribute
flowchart TD
    consensusj-rx-zeromq --> RxJava3
    consensusj-rx-zeromq --> JeroMQ

classDef external fill:#999;
class RxJava3 external;
class JeroMQ external;

3.2. Core JSON-RPC

The core JSON-RPC modules have no dependencies on bitcoinj or anything cryptocurrency-related.

Failed to generate image: Index 1 out of bounds for length 1
flowchart TD
    consensusj-jsonrpc --> Jackson
    consensusj-jsonrpc-gvy --> Groovy
    consensusj-jsonrpc-gvy --> consensusj-jsonrpc
    consensusj-jsonrpc-cli --> Commons-CLI
    consensusj-jsonrpc-cli --> consensusj-jsonrpc
    consensusj-jrpc-echod --> consensusj-jsonrpc
    consensusj-jrpc-echod --> Micronaut
    consensusj-rx-jsonrpc --> consensusj-jsonrpc
    consensusj-rx-jsonrpc --> RxJava3

classDef external fill:#999;
class Jackson external;
class Groovy external;
class Commons-CLI external;
class Micronaut external;
class RxJava3 external;
class JeroMQ external;