Bitcoin Research Kit
Description
The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node.
brk: Wrapper around all otherbrk-*cratesbrk_cli: A command line interface to interact with the Bitcoin Research Kitbrk_computer: A Bitcoin dataset computer, built on top of brk_indexerbrk_core: The Core (Structs and Errors) of the Bitcoin Research Kitbrk_exit: An exit blocker built on top of ctrlcbrk_fetcher: A Bitcoin price fetcherbrk_indexer: A Bitcoin Core indexer built on top of brk_parserbrk_logger: A clean logger used in the Bitcoin Research Kit.brk_parser: A very fast Bitcoin Core block parser and iterator built on top of bitcoin-rustbrk_query: A library that finds requested datasets.brk_server: A server that serves Bitcoin data and swappable front-ends, built on top of brk_indexer, brk_fetcher and brk_computerbrk_vec: A very small, fast, efficient and simple storable Vec.
Servers
| URL | Front-end | Version | Status | Last Height | Up Time Ratio |
|---|---|---|---|---|---|
| kibo.money | kibo.money |
Feel free to open an issue if you want to add another instance
Setup
Hardware
Recommended
Minimum
To be determined
Software
- Unix based operating system (Mac OS or Linux)
- Ubuntu users need to install
open-sslviasudo apt install libssl-dev pkg-config
- Ubuntu users need to install
- Bitcoin
- Example:
bitcoind -datadir="$HOME/.bitcoin" -blocksonly
- Example:
- Rust
- Install:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Update:
rustup update
- Install:
Install
If it's your first time running brk, it will need several information such as:
--bitcoindir PATH: path to bitcoin core data directory,???/bitcoin--outputdir PATH: path to various outputs, if you have enough space on your main disk~/.brkis fine
Everything will be saved at ~/.config/brk/config.toml, which will allow you to simply run brk run next time
If you need more options please run brk -h to see what parameters are available.
Here's an example
Then the easiest to let others access your server is to use cloudflared which will also cache requests. For more information go to: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
Update
or
Donate
bc1q950q4ukpxxm6wjjkv6cpq8jzpazaxrrwftctkt
Old README
kibÅ (hope in japanese) is primarily an open source Bitcoin Core data extractor and visualizer (similar to Glassnode) which goal is to empower anybody with data about Bitcoin for free.
The project is split in 3 parts:
- First you have the extractor (parser), which parses the block data files from your Bitcoin Core node and computes a very wide range of datasets which are stored in compressed binary files
For the curious, it takes at the very least 24 hours to parse all the blocks and compute all datasets. After that it will wait for a new block and take between 1 and 3 minutes to be up to date
- Then there is the website on which you can view, among other things, all datasets in various charts
- Finally there is the server which serves the website and the generated data via an API
Whether you're an enthusiast, a researcher, a miner, an analyst, a trader, a skeptic or just curious, there is something for everyone !
This project was created out of frustration by all the alternatives that were either very expensive and thus discriminatory and against bitcoin values or just very limited and none were open-source and verifiable. So while it's not the first tool trying to solve these problems, it's the first that is completely free, open-source and self-hostable.
If you are a user of mempool.space, you'll find this to be very complimentary, as it offers a macro view of the chain over time instead of a detailed one.
Endpoints
If you running locally, you can replace
https://kibo.moneybyhttp://localhost:3110
- /: Website
- /api: A JSON with all available datasets, with their respective id and endpoint, better viewed in a Firefox based browser
- /api/TIMESCALE-to-ID:
TIMESCALEcan bedateorheight, andIDis the id with_replaced by-, let's takedate-to-close(price at the end of each day) as an example- /api/date-to-close: current year's values in a json format
- /api/date-to-close?chunk=2009: values from the year 2009 in a json format
- /api/date-to-close?all=true: all values in a json format
- You can also specify the extension to download a file, either
.jsonor.csvto get the dataset in a CSV format; like so: