bdjuno

module
v0.0.0-...-52431d2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2021 License: MIT

README

BDJuno

GitHub Workflow Status Go Report Card Codecov

BDJuno (shorthand for BigDipper Juno) is the Juno implementation for BigDipper.

It extends the custom Juno behavior by adding different handlers and custom operations to make it easier for BigDipper showing the data inside the UI.

All the chains' data that are queried from the LCD and RPC endpoints are stored inside a PostgreSQL database on top of which GraphQL APIs can then be created using Hasura.

Installation

Install the binaries

To install the binary simply run make install.

Note: Requires Go 1.13+.

Database

Before running the parser, you need to:

  1. Create a PostgreSQL database.
  2. Run the SQL queries you find inside the schema folder inside such database to create all the necessary tables.

Running the parser

To parse the chain state, you need to use the following command:

bdjuno parse <path/to/config.toml>

# Example
# bdjuno parse config.toml 

The configuration must be a TOML file containing the following fields:

[cosmos]
prefix = "desmos"
modules = []

[rpc]
address = "<rpc-ip/host>:<rpc-port>"

[grpc]
address = "<grpc-ip/host>:<grpc-port>"
insecure = true

[api]
address = "<client-ip/host>:<client-port>"

[cosmos]
prefix = "desmos"
modules = []

[database]
type = "postgresql"

[database.config]
host = "<db-host>"
port = 5432
name = "<db-name>"
user = "<db-user>"
password = "<db-password>"

Example of a configuration to parse the chain state from a local Cosmos full-node:

Open here
[cosmos]
prefix = "desmos"
modules = []

[rpc]
address = "http://localhost:26657"

[grpc]
address = "localhost:9090"
insecure = true

[api]
address = "http://localhost:1317"

[cosmos]
prefix = "desmos"
modules = [
    "auth",
    "bank",
    "consensus",
    "distribution",
    "gov",
    "mint",
    "modules",
    "pricefeed",
    "slashing",
    "staking"
]

[database]
type = "postgresql"

[database.config]
host = "localhost"
port = 5432
name = "bdjuno"
user = "user"
password = "password"

Testing

If you want to test the code, you can do so by running

make test-unit

Note: Requires Docker.

This will:

  1. Create a Docker container running a PostgreSQL database.
  2. Run all the tests using that database as support.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL