bitfeed/server/README.md
2022-06-10 20:07:16 +00:00

2.3 KiB

Building and Running the Bitfeed API Server

Prerequisites

Installation

Set the MIX_TARGET environment variable to choose a build target (defaults to "personal")

"personal" - tailored to low traffic personal deployments. resource-intensive features & dependencies disabled

export MIX_TARGET=personal

or

"public" - tailored to high traffic, high performance public deployments.

export MIX_TARGET=public

feature "public" "personal"
Spend index
mix do deps.get
mix do deps.compile

Configuration

The API server expects the following environment variables to be set:

variable usage
MIX_ENV compilation environment, either "prod" or "dev"
PORT Port to expose the API (front end connects to this)
LOG_LEVEL Tailor logging verbosity. either "error", "info" (default) or "debug"
RPC_POOLS Number of connection pools for RPC requests to Bitcoin Core
RPC_POOL_SIZE Number of connections maintained per pool (RPC_POOLS x RPC_POOL_SIZE should be substantially lower than rpcworkqueue in bitcoin.conf)
TARGET build target "public" or "personal"
BITCOIN_HOST Bitcoin node host address
BITCOIN_ZMQ_RAWBLOCK_PORT Bitcoin node ZMQ port for block events (to match zmqpubrawblock in bitcoin.conf)
BITCOIN_ZMQ_RAWTX_PORT Bitcoin node ZMQ port for transaction events (to match zmqpubrawtx in bitcoin.conf)
BITCOIN_ZMQ_SEQUENCE_PORT Bitcoin node ZMQ port for sequence events (to match zmqpubsequence in bitcoin.conf)
BITCOIN_RPC_PORT Bitcoin node RPC port
either
BITCOIN_RPC_USER Bitcoin node RPC user
BITCOIN_RPC_PASS Bitcoin node RPC password
or
BITCOIN_RPC_COOKIE absolute path to a Bitcoin node RPC authentication .cookie file

Running in development

Compile and run in an interactive local shell:

iex -S mix

Building for production

mix release

Running production build

_build/prod/rel/prod/bin/prod start