Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

readme: add contribute section #208

Merged
merged 2 commits into from
Dec 16, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,35 @@ A set of microservices that crawler data from a namada node, store them in a pos

> 🔧 This is currently being worked on. Don't expect things to work! 🔧

# Namadillo integration
## Namadillo integration

When using this project as a backend for [Namadillo](https://github.com/anoma/namada-interface), always checkout the latest tag, as the `main` branch could have an incompatible set of APIs.

## Contributing

If you feel like contributing to the this project, feel free to choose an issued labeled as `bug` or `good-first-issue`. If you want to add a new feature, we ask you to first open an issue so we discuss about it.

Our git process requires you to target `main` if developing a new feature. Instead, if fixing a bug, you should checkout the latest tag maintaining branch (e.g `1.0.0-maint`).

## Architecture

The indexer is composed of a set microservices and a webserver, each one of these lives in his own crate. Each microservice is responsible of indexing some data from the chain and store them in the postgres database. Right now, there are 4 microservices:

- `chain`: goes block by block and fetches information from transactions (e.g balances)
- `pos`: fetches the validator set each new epoch
- `rewards`: fetches PoS rewards each new epoch
- `governance`: fetches new proposal and the corresponding votes
- `parameters`: fetches the chain parameters
- `pos`: fetches the validator set each new epoch.
- `rewards`: fetches PoS rewards each new epoch.
- `governance`: fetches new proposal and the corresponding votes.
- `parameters`: fetches the chain parameters.
- `transactions`: fetches transaction starting from block height 0 (or the latest processed block height).

The `webserver` is responsible to serve the data via a REST API, which are described in the `swagger.yml` file in the project root.
We host a HTML version of the swagger at [https://anoma.github.io/namada-indexer/](https://anoma.github.io/namada-indexer/).

![Namada indexer architecture](docs/architecture.png "Architecture")

## How to run
# How to run

### Prerequisites
## Prerequisites

- Create the `.env` file in the root of the project. You can use the `.env_sample` file as a reference:

Expand All @@ -36,12 +44,12 @@ cp .env_sample .env
- [Either create a local chain](https://docs.namada.net/operators/networks/local-network)
- Or use a Public RPC

### With docker
## With docker

- Install [just](https://github.com/casey/just)
- Run `just docker-up`

### Without docker
## Without docker

- Install rust/cargo
- Update the `.env` values to match your setup, for example:
Expand Down
Loading