https://github.com/forbole/soljuno
https://github.com/forbole/soljuno
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/forbole/soljuno
- Owner: forbole
- License: cc0-1.0
- Created: 2021-08-18T10:16:54.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-03T04:06:22.000Z (over 3 years ago)
- Last Synced: 2025-02-09T09:17:49.352Z (over 1 year ago)
- Language: Go
- Size: 2.03 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
SolJuno

> This branch is intended to be used with Solana.
> SolJuno is a Solana blockchain data aggregator and exporter that provides the ability for developers and clients to query for indexed chain data.
## Table of Contents
- [Background](#background)
- [Usage](#usage)
- [GraphQL integration](#graphql-integration)
- [Contributing](#contributing)
- [License](#license)
## Background
This version of Juno is a fork of [FissionLabs's Juno](https://github.com/fissionlabsio/juno).
The main reason behind the fork what to improve the original project by:
1. allowing different databases types as data storage spaces;
2. creating a highly modular code that allows for easy customization.
We achieved the first objective by supporting both PostgreSQL and MongoDB. We also reviewed the code design by using a database interface so that you can implement whatever database backend you prefer most.
On the other hand, to achieve a highly modular code, we implemented extension points through the `worker.RegisterBlockHandler`, `worker.RegisterTxHandler` and `worker.RegisterInstructionHandler` methods. You can use those to extend the default working of the code (which simply parses and saves the data on the database) with whatever operation you want.
## Usage
To know how to setup and run Juno, please refer to the [docs folder](.docs).
## Testing
If you want to test the code, you can do so by running
```shell
$ make test-unit
```
**Note**: Requires [Docker](https://docker.com).
This will:
1. Create a Docker container running a PostgreSQL database.
2. Run all the tests using that database as support.
## GraphQL integration
If you want to know how to run a GraphQL server that allows to expose the parsed data, please refer to the following guides:
- [PostgreSQL setup with GraphQL](.docs/postgres-graphql-setup.md)
## Contributing
Contributions are welcome! Please open an Issues or Pull Request for any changes.
## License
[CCC0 1.0 Universal](https://creativecommons.org/share-your-work/public-domain/cc0/)