This application crawls the Bitcoin Cash (BCH) blockchain and indexes all the SLP token transactions. This code base is intended to be a replacement for SLPDB. The work is based on this report and the work was funded by this Flipstarter.
This indexer is one part of a collection of blockchain infrastructure. To understand how all the pieces fit together, read the Cash Stack Documentation.
Current status: Beta
This project is using conventional development milestones:
- Alpha = Under active development. Bugs are expected, things are expected to break.
- Beta = Some bugs still exist, but code is mature enough for careful roll-out into production.
- Production = Code has been heavily tested and code commits have slowed in frequency. App is ready for normal operators.
Regular status updates will be reported at the bi-weekly PSF Technical Steering Committee meetings. Updates will also be reported in this Telegram channel.
See the developer documentation for more information.
- Installing the psf-slp-indexer
- Additional Infrastructure Videos in the 'Dev Ops & Infrastructure' section.
- Written in standard JavaScript, using the Clean Architecture design pattern.
- 100% unit test coverage. This allows for operational reliability and easy code collaboration.
- GPLv2 Licensed to encourage wide adoption and free use throughout the BCH ecosystem.
- LevelDB used for fast, efficient indexing and querying.
- Drastically reduced memory usage, compared to SLPDB.
- Fast indexing using transaction maps.
- Docker container for easy deployment and horizontal scaling.
- Ubuntu Linux OS v20.4+
- node ^14.17.0
- npm ^7.13.0
Customize the slp-indexer.sh bash shell script to point to the a BCH full node with the standard JSON RPC. docker-bchn is recommended.
git clone https://github.com/Permissionless-Software-Foundation/psf-slp-indexer
cd psf-slp-indexer
npm install
./slp-indexer.sh
See the developer documentation for more information.
npm start
Start server on live modenpm run docs
Generate API documentationnpm test
Run mocha testsdocker-compose build
Build a 'production' Docker containerdocker-compose up
Run the docker container