BCH Explorer - Backend
3.8K
For the backend use the following mempool-config.json file:
{
"MEMPOOL": {
"NETWORK": "mainnet",
"BACKEND": "electrum",
"ENABLED": true,
"HTTP_PORT": 8999,
"SPAWN_CLUSTER_PROCS": 0,
"API_URL_PREFIX": "/api/v1/",
"POLL_RATE_MS": 1000,
"CACHE_DIR": "./cache",
"CLEAR_PROTECTION_MINUTES": 5,
"RECOMMENDED_FEE_PERCENTILE": 50,
"INITIAL_BLOCKS_AMOUNT": 8,
"MEMPOOL_BLOCKS_AMOUNT": 8,
"INDEXING_BLOCKS_AMOUNT": -1,
"BLOCKS_SUMMARIES_INDEXING": true,
"BLOCK_LIMIT_SIZE_BYTES": 32000000,
"PRICE_FEED_UPDATE_INTERVAL": 600,
"USE_SECOND_NODE_FOR_MINFEE": false,
"EXTERNAL_ASSETS": [],
"EXTERNAL_MAX_RETRY": 1,
"EXTERNAL_RETRY_INTERVAL": 0,
"USER_AGENT": "mempool",
"STDOUT_LOG_MIN_PRIORITY": "debug",
"AUTOMATIC_BLOCK_REINDEXING": false,
"POOLS_JSON_URL": "https://raw.githubusercontent.com/BitcoinCash1/mining-pools/master/pools.json",
"POOLS_JSON_TREE_URL": "https://api.github.com/repos/BitcoinCash1/mining-pools/git/trees/master",
"ADVANCED_TRANSACTION_SELECTION": false
},
"CORE_RPC": {
"HOST": "127.0.0.1",
"PORT": 8332,
"USERNAME": "mempool",
"PASSWORD": "secret"
},
"ELECTRUM": {
"HOST": "127.0.0.1",
"PORT": 50001,
"TLS_ENABLED": false
},
"ESPLORA": {
"REST_API_URL": "http://127.0.0.1:3000"
},
"SECOND_CORE_RPC": {
"HOST": "127.0.0.1",
"PORT": 8332,
"USERNAME": "mempool",
"PASSWORD": "mempool"
},
"DATABASE": {
"ENABLED": true,
"HOST": "127.0.0.1",
"PORT": 3306,
"SOCKET": "/var/run/mysqld/mysqld.sock",
"DATABASE": "mempool",
"USERNAME": "mempool",
"PASSWORD": "your_password"
},
"SYSLOG": {
"ENABLED": true,
"HOST": "127.0.0.1",
"PORT": 514,
"MIN_PRIORITY": "debug",
"FACILITY": "local7"
},
"STATISTICS": {
"ENABLED": true,
"TX_PER_SECOND_SAMPLE_PERIOD": 150
},
"MAXMIND": {
"ENABLED": false,
"GEOLITE2_CITY": "/usr/local/share/GeoIP/GeoLite2-City.mmdb",
"GEOLITE2_ASN": "/usr/local/share/GeoIP/GeoLite2-ASN.mmdb",
"GEOIP2_ISP": "/usr/local/share/GeoIP/GeoIP2-ISP.mmdb"
},
"BISQ": {
"ENABLED": false,
"DATA_PATH": "/bisq/statsnode-data/btc_mainnet/db"
},
"LIGHTNING": {
"ENABLED": false,
"BACKEND": "lnd",
"STATS_REFRESH_INTERVAL": 600,
"GRAPH_REFRESH_INTERVAL": 600,
"LOGGER_UPDATE_INTERVAL": 30,
"FORENSICS_INTERVAL": 43200
},
"LND": {
"TLS_CERT_PATH": "tls.cert",
"MACAROON_PATH": "readonly.macaroon",
"REST_API_URL": "https://localhost:8080"
},
"CLIGHTNING": {
"SOCKET": "lightning-rpc"
},
"SOCKS5PROXY": {
"ENABLED": false,
"USE_ONION": true,
"HOST": "127.0.0.1",
"PORT": 9050,
"USERNAME": "",
"PASSWORD": ""
},
"PRICE_DATA_SERVER": {
"TOR_URL": "",
"CLEARNET_URL": "https://finance.melroy.org/v1"
},
"EXTERNAL_DATA_SERVER": {
"MEMPOOL_API": "https://mempool.space/api/v1",
"MEMPOOL_ONION": "http://mempoolhqx4isw62xs7abwphsq7ldayuidyx2v2oethdhhj6mlo2r6ad.onion/api/v1",
"LIQUID_API": "https://liquid.network/api/v1",
"LIQUID_ONION": "http://liquidmom47f6s3m53ebfxn47p76a6tlnxib3wp6deux7wuzotdr6cyd.onion/api/v1",
"BISQ_URL": "https://bisq.markets/api",
"BISQ_ONION": "http://bisqmktse2cabavbr2xjq7xw3h6g5ottemo5rolfcwt6aly6tp5fdryd.onion/api"
}
}
After you created the mempool-config.json file, we can build the backend (using npm run build) OR use the pre-build Docker image. In this example we will leverage Docker in order to run the BCH Explorer backend.
I'm using Docker compose to start the Docker container, and mount the correct files/folders.
Next, we will create a bch-explorer-compose.yml file (chang the left side of the mounting volumes to your needs):
version: "3"
services:
bch-explorer-backend:
image: danger89/bch-explorer-backend
container_name: bch-explorer-backend
restart: always
volumes:
- /home/your_username/location_to/mempool-config.json:/backend/mempool-config.json
- /home/your_username/location_to/cache:/backend/cache
- /var/run/mysqld/mysqld.sock:/run/mysqld/mysqld.sock
network_mode: "host"
To start the Docker container, use: docker-compose --file bch-explorer-compose.yml up -d (omit the -d if you do NOT want to start the service in the background).
Note #1: As you can see, I run the service in host network mode, but you can also create a dedicated Docker bridge network. In that case, be sure you are able to connect Fulcrum and BCHN full node services as well.
Note #2: I'm using the MariaDB (MySQL) server on my host machine, you can also create a dedicated database docker container (eg. using mariadb image) in the Docker compose config, and connect the two services.
We still use MySQL (MariaDB) as the database to index our data, just like the upstream project.
But we use the BCHN full node software as your Bitcoin Cash full-node. Furthermore, in order to lookup addresses you need to have an Electrum server backend, we use Fulcrum as our Bitcoin Cash SPV server.
Content type
Image
Digest
sha256:93bf12d13…
Size
88.9 MB
Last updated
9 months ago
docker pull danger89/bch-explorer-backend