https://github.com/codechain-io/codechain-indexer
A blockchain data indexing tool for CodeChain
https://github.com/codechain-io/codechain-indexer
codechain indexer
Last synced: 7 months ago
JSON representation
A blockchain data indexing tool for CodeChain
- Host: GitHub
- URL: https://github.com/codechain-io/codechain-indexer
- Owner: CodeChain-io
- License: apache-2.0
- Created: 2018-09-06T00:53:38.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T22:08:16.000Z (over 2 years ago)
- Last Synced: 2023-03-02T04:16:25.691Z (over 2 years ago)
- Topics: codechain, indexer
- Language: TypeScript
- Homepage:
- Size: 2.24 MB
- Stars: 21
- Watchers: 6
- Forks: 14
- Open Issues: 57
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CodeChain Indexer [](https://travis-ci.org/CodeChain-io/codechain-indexer) [](https://codecov.io/gh/Codechain-io/codechain-indexer)
A blockchain data indexing tool for CodeChain
## Table of Contents
- [Install](https://github.com/CodeChain-io/codechain-indexer#install)
- [Before start](https://github.com/CodeChain-io/codechain-indexer#before-start)
- [Run](https://github.com/CodeChain-io/codechain-indexer#run)## Install
#### Requirements
The software dependencies required to install and run CodeChain-indexer are:
- Latest version of the [CodeChain](https://github.com/CodeChain-io/codechain)
- PostgreSQL [`v11.*`](https://www.postgresql.org/download/)
- Nodejs higher than version 10#### Download
Download CodeChain-indexer code from the GitHub repository
```
git clone [email protected]:kodebox-io/codechain-indexer.git
cd codechain-indexer
```#### Install packages
Use yarn package manager to install packages
```
yarn install
```## Before start
#### Dependency
- Get CodeChain ready with the CodeChain RPC server
- Get PostgreSQL database ready for indexing block data#### Create the database and user on the PostgreSQL
##### Update configuration
Update ./create_user_and_db.sql and config/* files before creating database schema.
If you want to create a production datatabase, please create config/production.json by copying config/dev.json##### Mac
```
# Download postgresql with Homebrew
brew install postgresql
brew services start postgresql# Create users and databases
psql postgres -f create_user_and_db.sql# Create tables for production
NODE_ENV=production yarn migrate# Create tables for development
yarn run migrate
```##### Ubuntu
```
# Download postgresql
sudo apt install postgresql postgresql-contrib# Create users and databases
sudo -u postgres psql -f create_user_and_db.sql# Create tables for production
NODE_ENV=production yarn migrate# Create tables for development
yarn migrate
```## Run (for development)
```
yarn run start# You can change the host of CodeChain and DB host on the config/dev.json
```### Check CCCChanges
If you run the Indexer with the environment `ENABLE_CCC_CHANGES_CHECK` variable,
the Indexer checks to see if CCCChanges is well calculated.
If you want to receive an email when an error is found, please set the `SENDGRID_API_KEY` and `SENDGRID_TO` variables.
If you want to receive a slack notification, please set the `SLACK_WEBHOOK` variable.## Run (for production)
```
yarn build
NODE_ENV=production node ./build/index.js# You can change the host of CodeChain and DB host on the config/production.json
```## Test
```
# Create the test database
NODE_ENV=test yarn run migrate# Start testing
yarn run test
```## API document
```
NODE_ENV=dev yarn run start# Swagger UI is running at "http://host:port/api-docs/"
```## Tools
#### Delete all database data
```
yarn run reset
```