This is a REST API server based on Koa. It's essentially a mirror image of ipfs-bch-wallet-service. Where ipfs-bch-wallet-service is intended to be coupled to bch-api to provide blockchain service, ipfs-bch-wallet-consumer provides a localized REST API for consuming that blockchain service.
When started, this web server starts an IPFS node and connects to an ipfs-bch-wallet-service server over the IPFS network. It then pipes that connection over its own localized REST API.
More details are available at CashStack.info.
- node ^20.16.0
- npm ^10.8.1
- Docker ^24.0.7
- Docker Compose ^1.27.4
To run this software, you must have an instance of go-ipfs running in daemon mode, with the --enable-pubsub-experiment
flag set. Here are instruction for installing go-ipfs.
Clone this repository and install npm dependencies. You'll also need to install MongoDB if you don't already have it installed:
git clone https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer
cd ipfs-bch-wallet-consumer
./install-mongo-sh
sudo npm install -g node-pre-gyp
npm install
cd shell-script
./local-external-ipfs-node.sh
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
.
This program is intended to started with a Bash shell script. In that script, you can set the following environment variables:
# The IPFS ID of the service running ipfs-bch-wallet-service
export PREFERRED_P2WDB_PROVIDER=12D3KooWCNpwHbHmkNSJsqu3CQVVe3iW8g6e1gn3kWTPahj2igiy
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.
The file layout of this repository differs from the koa-api-boilerplate. Instead, it follows the file layout of Clean Architecture.
npm start
Start server on live modenpm run docs
Generate API documentationnpm test
Run mocha tests
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.
This repository is forked from ipfs-service-provider.
Snapshots pinned to IPFS will be listed here.