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.
To install the binary simply run make install
.
Note: Requires Go 1.13+.
Before running the parser, you need to:
- Create a PostgreSQL database.
- Run the SQL queries you find inside the
schema
folder inside such database to create all the necessary tables.
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"
If you want to test the code, you can do so by running
make test-unit
Note: Requires Docker.
This will:
- Create a Docker container running a PostgreSQL database.
- Run all the tests using that database as support.