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 (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T22:08:16.000Z (about 3 years ago)
- Last Synced: 2025-04-05T07:51:16.456Z (10 months ago)
- Topics: codechain, indexer
- Language: TypeScript
- Homepage:
- Size: 2.24 MB
- Stars: 21
- Watchers: 6
- Forks: 15
- 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 git@github.com: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
```