Skip to content

An open source Bitcoin Core data extractor and visualizer

License

Notifications You must be signed in to change notification settings

kibo-money/kibo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kibō

Description

kibō (hope in japanese) is primarily an open source Bitcoin Core data extractor and visualizer (similar to Glassnode).

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.

Instances

URL Type Version Status Last Height Up Time Ratio
kibo.money Main Version Status Height Ratio
backup.kibo.money Backup Version Status Height Ratio
preview.kibo.money Dev Version Status Height Ratio

Please open an issue if you want to add another instance

Endpoints

If you running locally, you can replace https://kibo.money by http://localhost:3110

Roadmap

  • More Datasets/Charts
  • Simulations
  • Nostr integration
  • API Documentation
  • Descriptions
  • Docker support
  • Start9 support

Setup

Requirements

  • At least 16 GB of RAM
  • 1 TB of free space (will use 70% of that without defragmentation and 40% after)
  • A running instance of bitcoin-core with:
    • -txindex=1
    • -blocksxor=0
    • RPC credentials
    • Example: bitcoind -datadir="$HOME/.bitcoin" -blocksonly -txindex=1 -blocksxor=0 -rpcuser="satoshi" -rpcpassword="nakamoto"
  • Git

Manual

Mac OS and Linux only, Windows is unsupported

First we need to install Rust (https://www.rust-lang.org/tools/install)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

If you already had Rust installed you could update it just in case

rustup update

If you're on Ubuntu you'll probably also need to install open-ssl with

sudo apt install libssl-dev pkg-config

Optionally, you can also install cargo-watch for the server to automatically restart it on file change, which will be triggered by new code and new datasets from the parser (https://github.com/watchexec/cargo-watch?tab=readme-ov-file#install)

cargo install cargo-watch --locked

Then you need to choose a path where all files related to kibō will live

cd ???

We can now clone the repository

git clone https://github.com/kibo-money/kibo.git

In a new terminal, go to the parser's folder of the repository

cd ???/kibo/parser

Now we can finally start by running the parser, you need to use the ./run.sh script instead of cargo run -r as we need to set various system variables for the program to run smoothly

For the first launch, the parser will need several information such as:

  • --datadir: which is bitcoin data directory path, prefer $HOME to ~ as the latter might not work
  • --rpcuser: the username of the RPC credentials to talk to the bitcoin server
  • --rpcpassword: the password of the RPC credentials

Optionally you can also specify:

  • --rpcconnect: if the bitcoin core server's IP is different than localhost
  • --rpcport: if the port is different than 8332

Everything will be saved in a config.toml file, which will allow you to simply run ./run.sh next time

Here's an example

./run.sh --datadir=$HOME/Developer/bitcoin --rpcuser=satoshi --rpcpassword=nakamoto

In a new terminal, go to the server's folder of the repository

cd ???/kibo/server

And start it also with the run.sh script instead of cargo run -r

./run.sh

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/

Donate

image

bc1q950q4ukpxxm6wjjkv6cpq8jzpazaxrrwftctkt

image

lnurl1dp68gurn8ghj7ampd3kx2ar0veekzar0wd5xjtnrdakj7tnhv4kxctttdehhwm30d3h82unvwqhkxmmww3jkuar8d35kgetj8yuq363hv4

Geyser Fund