Files
psf-memo-indexer/README.md
T
2026-06-02 16:54:13 -07:00

1.8 KiB

psf-memo-indexer

Indexes Memo protocol transactions on Bitcoin Cash. Architecture mirrors psf-slp-indexer-g2.

Overview

Two processes:

  • Block indexer — IBD from block 525000, then ZMQ new-block processing
  • TX indexer — mempool transactions via ZMQ after IBD signals /tx-start

Data is stored in psf-memo-db via REST.

Developer documentation

Architecture, theory of operation, and design tradeoffs: dev-docs/.

Requirements

  • node ^20
  • npm ^10
  • BCH full node (RPC + ZMQ)
  • Running psf-memo-db

Installation

cd psf-memo-indexer
npm install
cp .env-example .env

Usage

Start the database:

cd ../psf-memo-db && npm start

Block indexer:

npm run block-indexer

TX indexer (separate terminal):

npm run tx-indexer

Configuration

See .env-example. Key variables:

Variable Default Description
PSF_MEMO_DB_URL http://localhost:5021 psf-memo-db URL
START_BLOCK_HEIGHT 525000 First block to index
RPC_IP / RPC_PORT 172.17.0.1 / 8332 Full node RPC
ZMQ_PORT 28332 Full node ZMQ
TX_REST_API_PORT 5455 TX indexer control API

Tests

npm test

Production (Docker)

Docker files live under production/docker, matching psf-slp-indexer-g2:

cd production/docker
cp block-indexer/.env-example block-indexer/.env
cp tx-indexer/.env-example tx-indexer/.env
cp memo-db/.env-example memo-db/.env
docker-compose build
docker-compose up -d

Services: memo-db (port 5021), block-indexer, tx-indexer (port 5455).

License

GPL v3