/cosmos-watcher

Primary LanguageGoApache License 2.0Apache-2.0

cosmos-watcher

Status of Last Deployment:

General

The cosmos-watcher is a standalone process that takes

2 env var running via docker:

  • chain_id - blockchain network_id,
  • graphql - connection string to graphql hasura api,
  • rabbitmq - connection string to rabbitMQ message broker,
  • queue - queue name for rabbitMQ message broker,

5 env var running directly & without run.sh script:

  • rpc - a zone RPC address,
  • height - a starting block number,
  • rabbitmq - connection string to rabbitMQ message broker,
  • queue - queue name for rabbitMQ message broker,
  • chain_id - blockchain network_id to validate rpc address,

and listens to the given zone starting from the given block number.

Usage

Running in a container:

  • docker build -t cosmos-watcher:v1 .
  • docker run --env chain_id=<network like cosmoshub-4> --env graphql=<graphql endpoint like https://ip:port/v1/graphql> --env rabbitmq=amqp://<login>:<pass>@<ip>:<default_port=5672> --env queue=<message_broker_queue_name> -it --network="host" cosmos-watcher:v1

Responsibilies

The watcher listens to the new blocks, parses them, and assembly the information into the zone-neutral data structures.

block {
   chain_id:    <string>, the zone chain id
   block_time:  <timestamp> 
   block_num:   <number>
   txs:         array [transaction]
}

transaction {
   hash:        <string>
   sender:      <string>
   accepted:    <boolean>
   msgs:        array [message]
}

message {
        type: (transfer | ibc_transfer | create_channel | create_connection | create_client | open_channel | close_channel)
        <data related to message type>
}

the newly created object of the block type is sent to the queue.

Supported blockchains

Repository Branch Supported zone Workflow status
master, cosmoshub cosmoshub-4 (cosmoshub)
irishub irishub-1 (irishub)
akash akashnet-2 (akash.network)
sentinelhub sentinelhub-2 (sentinel)
persistence core-1 (persistence)
regen regen-1 (regen-network)
osmosis osmosis-1 (osmosis)
crypto-org crypto-org-chain-mainnet-1 (crypto.org)
starname iov-mainnet-ibc (starname)
sifchain sifchain-1 (sifchain)
konstellation darchub (konstellation)
stargaze stargaze-1 (stargaze)
cronos cronosmainnet_25-1 (cronos)
injective injective-1 (injective)
dig dig-1 (dig)
bitsong bitsong-2b (bitsong)
juno juno-1 (juno)
chihuahua chihuahua-1 (chihuahua)
alteredcarbon alteredcarbon (alteredcarbon)
cheqd cheqd-mainnet-1 (cheqd)
bitcanna bitcanna-1 (bitcanna)
desmos desmos-mainnet (desmos)
likecoin likecoin-mainnet-2 (likecoin)
fetchai fetchhub-3 (fetchhub)
gravity-bridge gravity-bridge-3 (gravity-bridge)
sommelier sommelier-3 (sommelier)
impacthub impacthub-3 (impacthub)
vidulum vidulum-1 (vidulum)
comdex comdex-1 (comdex)
panacea panacea-3 (panacea)
secret secret-4 (secret)
kichain kichain-2 (ki)
certik shentu-2.2 (shentu)
terra columbus-5 (terra)
band laozi-mainnet (band)
kava kava-9 (kava)
cyber bostrom (bostrom)
microtick microtick-1 (microtick)
axelar axelar-dojo-1 (axelar)
emoney emoney-3 (emoney)