readme: updated

This commit is contained in:
nym21
2026-02-14 13:14:05 +01:00
parent fb7c92da79
commit 87f0c2c084
3 changed files with 129 additions and 190 deletions

View File

@@ -5,7 +5,10 @@
[![docs.rs](https://img.shields.io/docsrs/brk)](https://docs.rs/brk)
[![Supported by OpenSats](https://img.shields.io/badge/supported%20by-opensats-ff7b00)](https://opensats.org/)
Open-source on-chain analytics for Bitcoin. Combines functionality of [Glassnode](https://glassnode.com) (on-chain metrics), [mempool.space](https://mempool.space) (block explorer), and [electrs](https://github.com/romanz/electrs) (address index) into a single self-hostable package. [Bitview](https://bitview.space) is an analytics interface built entirely on BRK.
> "Shout out to Bitcoin Research Kit and researchbitcoin.net. Two data sources for On-Chain Data. Couldn't recommend them highly enough."
> — James Check (CheckOnChain), [What Bitcoin Did #1000](https://www.whatbitcoindid.com/episodes/wbd1000-checkmate)
Open-source on-chain analytics for Bitcoin. Combines functionality of [Glassnode](https://glassnode.com) (on-chain metrics), [mempool.space](https://mempool.space) (block explorer), and [electrs](https://github.com/romanz/electrs) (address index) into a single self-hostable package. Runs entirely off a Bitcoin node, no exchange feeds or external APIs required. [Bitview](https://bitview.space) is a hosted instance of BRK.
## Data
@@ -27,7 +30,7 @@ Browse metrics and charts visually. Use it free at [Bitview](https://bitview.spa
Query thousands of metrics and blockchain data in JSON or CSV. Freely accessible at [Bitview](https://bitview.space/api).
[Documentation](https://bitview.space/api) · [JavaScript](https://www.npmjs.com/package/brk-client) · [Python](https://pypi.org/project/brk-client) · [Rust](https://crates.io/crates/brk_client) · [LLM](https://bitview.space/api.json)
[Documentation](https://bitview.space/api) · [JavaScript](https://www.npmjs.com/package/brk-client) · [Python](https://pypi.org/project/brk-client) · [Rust](https://crates.io/crates/brk_client) · [LLM-friendly schema](https://bitview.space/api#tag/server/GET/api.json)
### Self-host
@@ -41,16 +44,21 @@ Build custom applications in Rust. Use the full stack or individual components (
[Reference](https://docs.rs/brk) · [Architecture](./ARCHITECTURE.md)
## Supporters
- [OpenSats](https://opensats.org/) (December 2024 June 2026)
[Become a supporter](mailto:support@bitcoinresearchkit.org)
## Links
- [Changelog](./CHANGELOG.md)
- [Support](./SUPPORT.md)
- [Contributing](https://github.com/bitcoinresearchkit/brk/issues)
- [Discord](https://discord.gg/WACpShCB7M)
- [X](https://x.com/_nym21_)
- [Nostr](https://primal.net/p/nprofile1qqsfw5dacngjlahye34krvgz7u0yghhjgk7gxzl5ptm9v6n2y3sn03sqxu2e6)
Development supported by [OpenSats](https://opensats.org/).
## License
[MIT](./LICENSE.md)

View File

@@ -1,153 +0,0 @@
# TODO
- __CRATES__
- _BUNDLER_
- _CLI_
- UX: launch
- if first, test read/write speed, add warning if too low (<2gb/s)
- check available disk space
- pull latest version and notify if out of date
- FEAT: add custom path support for config.toml
- _COMPUTER_
- BUG: **add rollback of states (in stateful)**
- FEAT: add support for per index computation
- FEAT: Add percentiles of cost basis weighted by amount invested compared to total invested
- BUG: fix min fee_rate which is always ZERO due to coinbase transaction
- BUG: before computing multiple sources check their length, panic if not equal
- DX: create usd versions of vecs structs instead of having options everywhere
- FEAT: datasets
- `sats` version of all price datasets (average and co)
- pools
- highest dominance
- consecutive blocks
- max consecutive blocks
- add indexes back to the mempool.space version of pools as we need the correct one for the API
- price
- oracle (https://utxo.live/oracle/UTXOracle.py)
- cohorts
- costs basis by percentile
- address counts relative to all datasets
- revived/sent supply datasets
- add `p2pk` group (sum of `p2pk33` and `p2pk65`)
- add utxo count, address count, supply data for by reused addresses in groups by address type
- add more date ranges (3-6 months, 5-7 years and more)
- % of volume
- indicators
- pi cycle
- https://mainnet.observer
- https://glassnode.com
- https://checkonchain.com
- https://researchbitcoin.net/exciting-update-coming-to-the-bitcoin-lab/
- https://mempool.space/research
- _ERROR_
- _FETCHER_
- _INDEXER_
- PERF: parse only the needed block number instead the last 100 blocks
- maybe using https://developer.bitcoin.org/reference/rpc/getblockhash.html
- _INTERFACE_
- DX: Maybe change `json` to:
```json
{
"price_close": {
"data": [115976.6, 115943.4],
"unit": "USD",
"range": {
"from": 19627,
"to": 19628
}
}
}
```
- DX: create pagination enum
- from to
- from option<count>
- to option<count>
- page + option<per page> default 1000 max 1000
- BUG: from/to/count params dont cap all combinations
- example: from -10,000 count 10, wont work if underlying vec isnt 10k or more long
- _LOGGER_
- BUG: remove colors from file
- _PARSER_
- _SERVER_
- api
- FEAT: copy mempool's rest api
- https://mempool.space/docs/api/rest
- FEAT: add extensions support (.json .csv …) instead of only format
- FEAT: if format instead of extension then don't download file
- BUG: ddos protection
- against API params varying in range
- search
- fuzzy on typo
- https://github.com/rapidfuzz/strsim-rs or stick with current impl
- create map of all single words
- do some kind of score with that ?
- FEAT: discoverability
- search
- ???: remove redirects ?
- FEAT: add support for https (rustls)
- _STORE_
- FEAT: save height and version in one file
- _STRUCTS_
- _TRAVERSABLE_
- _GLOBAL_
- PERF: https://davidlattimore.github.io/posts/2025/09/02/rustforge-wild-performance-tricks.html
- __DOCS__
- _README_
- FEAT: add a comparison table with alternatives
- FEAT: add faq
- __WEBSITES__
- _PACKAGES_
- DX: move the fetching logic from `bitview` website to an independent `brk` package which could be published to npm
- https://www.npmjs.com/package/@mempool/mempool.js
- auto publish with github actions
- _BITVIEW_
- EXPLORER
- FEAT: blocks (interval as length between)
- FEAT: transactions
- FEAT: addresses
- FEAT: miners
- FEAT: xpubs ?
- CHART
- FEAT: Make candlesticks a bi-series with a candlestick series and a line when too zoomed out (like the auto mode)
- FEAT: Add min/max markers back now that they can be ignored when scaling the chart (to avoids stuttering)
- BUG: selected unit sometimes changes when going back end forth
- FEAT: add support for custom charts
- BUG: price scale format depends on unit, hide digits for sats for example (if/when possible)
- FEAT: shows certain series as [scatter plots](https://github.com/tradingview/lightweight-charts/issues/1662) with a solid sma/ema
- mainly datasets with a big variance like raw `hash_rate`
- BUG: hide pane if no series on it
- BUG: fix (and reset) pane size (50/50) when changing charts
- UX: units: add short name / long name / title
- BUG: verify that "compare" folders aren't missing charts/datasets
- LEGEND
- UX: add link to explanation for each name (to glassnode ?)
- TABLE
- FEAT: pagination
- FEAT: exports (.json, .csv,…)
- UX: improve dataset selection
- UX: display 1k values (instead of 10k) but to avoid caching multiple times the same values apply everywhere
- SEARCH
- UX: improve
- UX:datasets add legend, and keywords ?
- FEAT: support height/address/txid
- GLOSSARY
- FEAT: Add ?
- NAV
- UX: move share button to footer ?
- FEAT: add hide sidebar button
- BUG: when clicking on already selected option, pushes to history, bad !
- GLOBAL
- BUG: improve behavior when local storage is unavailable by having a global state, otherwise the website forgets/don't save user's settings
- FEAT: Add manual theme switcher, maybe in a smart way to avoid using real estate ?
- UI: font:
- https://fonts.google.com/specimen/Space+Mono
- PERF: keep as many files as possible [under 14kb](https://endtimes.dev/why-your-website-should-be-under-14kb-in-size/)
- DX: [No classes](https://news.ycombinator.com/item?id=45287155)
- UX: [Organic animations](https://courses.joshwcomeau.com/playground/magic-wand-final)
- __GLOBAL__
- check `TODO`s in codebase
- rename `output` to `txout` or `vout`, `input` to `txin` or `vin`
- https://マリウス.com/thoughts-on-cloudflare/
- tor: https://news.ycombinator.com/item?id=45683380
- design: https://opencode.ai/
- design: https://vortex.dev/