Skip to content

Permissionless-Software-Foundation/psf-slp-db

Repository files navigation

psf-slp-db

js-standard-style semantic-release

Overview

This is a REST API that provides access to a series of LevelDB instances. These Level databases are used to index SLP tokens on a blockchain. Each DB instance has a CRUD REST API for access by other applications.

The purpose of this code repository is to allow optimizations for parallel processing. By creating a REST API to these databases, multiple processes can access the same DB.

Requirements

  • node ^20.16.0
  • npm ^10.8.1
  • Docker ^24.0.7
  • Docker Compose ^1.27.4

Installation

Production Environment

The docker directory contains a Dockerfile for building a production deployment.

docker-compose pull
docker-compose up -d
  • You can bring the containers down with docker-compose down
  • You can bring the containers back up with docker-compose up -d.

Development Environment

A development environment will allow you modify the code on-the-fly and contribute to the code base of this repository. Ubuntu v20 is the recommended OS for creating a dev environment. Other operating systems may cause issues.

git clone https://github.com/Permissionless-Software-Foundation/psf-slp-db
cd psf-slp-db
./install-mongo-sh
npm install
npm start

Configuration

This app is intended to be started via a bash shell script. See the environment variables used to configure this app in the config/env/common.js file.

File Structure

The file layout of this repository follows the file layout of Clean Architecture. Understaning the principles laid out this article will help developers navigate the code base.

Usage

  • npm start Start server on live mode
  • npm run docs Generate API documentation
  • npm test Run mocha tests

Documentation

API documentation is written inline and generated by apidoc. Docs can be generated with this command:

  • npm run docs

Visit http://localhost:5020/ to view docs

There is additional developer documentation in the dev-docs directory.

Dependencies

IPFS

Snapshots pinned to IPFS will be listed here.

License

MIT