Skip to content

A (local) REST API that proxies BCH wallet services delivered over IPFS (global).

License

Notifications You must be signed in to change notification settings

Permissionless-Software-Foundation/ipfs-bch-wallet-consumer

Repository files navigation

ipfs-bch-wallet-consumer

js-standard-style semantic-release

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.

Requirements

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

Installation

Development Environment

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

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.

Configuration

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

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 differs from the koa-api-boilerplate. Instead, it follows the file layout of Clean Architecture.

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

This repository is forked from ipfs-service-provider.

IPFS

Snapshots pinned to IPFS will be listed here.

License

MIT

About

A (local) REST API that proxies BCH wallet services delivered over IPFS (global).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages