bitcoind-rest-api

Crates.iobitcoind-rest-api
lib.rsbitcoind-rest-api
version0.1.6
sourcesrc
created_at2022-10-21 18:53:06.770273
updated_at2022-11-18 16:50:14.408609
descriptionRequest data from Bitcoind through rest api endpoints
homepage
repository
max_upload_size
id693835
size66,139
Joe Gesualdo (joegesualdo)

documentation

README

Bitcoind Rest API

Request data from Bitcoind through rest api endpoints.

☠️⚠️ Work In Progress ⚠️☠️

Install

Add package to Cargo.toml file

$ cargo install bitcoind-rest-api

Setup:

Must have these environment variable set for the terminal to work. Could go in your .zshrc or .bashrc:

export BITCOIND_PASSWORD="..."
export BITCOIND_USERNAME="..."
export BITCOIND_URL="127.0.0.1:8332"

Start Server

To start server at the default host and port of 127.0.0.1:3030, run:

 $ bitcoind-rest-api

To start server at a specified port, pass the PORT argument

 $ bitcoind-rest-api 3031

Could optionally pass the environment variable to the script:

 BITCOIND_PASSWORD=... BITCOIND_USERNAME=...BITCOIND_URL=... bitcoind-rest-api

Serve over HTTPS

To serve over https, must have the following environment variables set:

IS_TLS_ENABLED=true TLS_CERT_PATH="<CERT_PATH_HERE>" TLS_KEY_PATH="<KEY_PATH_HERE>"

Endpoints

The endpoints used should map directly to rpc commands and parameters, where the command name is the url path and the arguments are query params. If a rpc argument is optional, then the query param is also optional - and same for required arguments. For example, the getchaintxstats command takes two arguments, nblocks and blockhash, so the url path to request the same information would be localhost:3030/api/v1/getchaintxstats?nblocks={...}&blockhash={...}

The following endpoints have been implemented:


getblockcount

GET /api/v1/getblockcount

getblockstats

GET /api/v1/getblockstats?hash_or_height={blockhash or height}

getchaintxstats

GET /api/v1/getchaintxstats?n_blocks={nblocks}&blockhash={blockhash}

getdifficutly

GET /api/v1/getdifficutly

getnetworkhashps

GET /api/v1/getnetworkhashps?n_blocks={nblocks}&height={height}

gettxoutsetinfo

Not: This will take a few seconds (or longer) to return

GET /api/v1/gettxoutsetinfo?hash_type={hash_type}

getblockhash

GET /api/v1/getblockhash?height={height}

getblock

GET /api/v1/getblock?blockhash={blockhash}&verbosity={verbosity}

getblockchaininfo

GET /api/v1/getblockchaininfo

Related

License

MIT © Joe Gesualdo

Commit count: 0

cargo fmt