A Docker container for running a Fulcrum server and interfacing to it using a standard REST API.
Fulcrum is an indexer. An indexer is like a search engine, which crawls the blockchain and indexes the raw data into a database. The Full Node only tracks transactions. It does not track important data like address balances, UTXOs, and transaction histories. The Fulcrum indexer exists to track those things. It implements the Electrum protocol.
These instructions assume you are using Docker installed on a Ubuntu Linux operating system.
- Clone the repository:
git clone https://github.com/Permissionless-Software-Foundation/docker-fulcrum
- Create a
blockchaindirectory - Navigate to the directory for your architecture.
- Edit the mainnet.conf file to reflect your settings.
- Edit the docker-compose.yml file to point to where the database should live.
- Create a directory called
certsin the same directory as the docker-compose.yml file.
The electrum-cash library for interfacing with the Electrumx protocol requires an SSL certificate in order to operate. You need to generate a self-signed certificate for the REST API server to communicate with Fulcrum.
This does not effect the SSL connection to the REST API. It can still be secured using nginx or Apache and an SSL certificate from Let's Encrypt.
Follow these instructions to generate your own self signed certificate. You'll end up with two files: server.crt is the public key and certificate. server.key is the private key.
cd certs- Enter the newly created certs directory.sudo apt updatesudo apt install opensslopenssl genrsa -des3 -out server.pass.key 2048openssl rsa -in server.pass.key -out server.keyrm server.pass.keyopenssl req -new -key server.key -out server.csropenssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crtrm server.csr
- Update the
docker-compose.ymlfile with the path to where you want to store the blockchain data. docker compose builddocker compose up -d