Compare commits

..

2 Commits

Author SHA1 Message Date
nym21 65685c23e1 release: v0.0.56 2025-06-13 18:03:28 +02:00
nym21 2f74748cea computer: stateful: reset when reorg detected 2025-06-13 18:03:09 +02:00
7 changed files with 51 additions and 55 deletions
Generated
+14 -14
View File
@@ -388,7 +388,7 @@ dependencies = [
[[package]] [[package]]
name = "brk" name = "brk"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"brk_cli", "brk_cli",
"brk_computer", "brk_computer",
@@ -407,7 +407,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_cli" name = "brk_cli"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"bitcoincore-rpc", "bitcoincore-rpc",
"brk_computer", "brk_computer",
@@ -432,7 +432,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_computer" name = "brk_computer"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"bitcoin", "bitcoin",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -453,7 +453,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_core" name = "brk_core"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"bincode", "bincode",
"bitcoin", "bitcoin",
@@ -474,7 +474,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_exit" name = "brk_exit"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"brk_logger", "brk_logger",
"ctrlc", "ctrlc",
@@ -483,7 +483,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_fetcher" name = "brk_fetcher"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"brk_core", "brk_core",
"brk_logger", "brk_logger",
@@ -496,7 +496,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_indexer" name = "brk_indexer"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"bitcoin", "bitcoin",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -514,7 +514,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_logger" name = "brk_logger"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"color-eyre", "color-eyre",
"env_logger", "env_logger",
@@ -524,7 +524,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_parser" name = "brk_parser"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"bitcoin", "bitcoin",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -539,7 +539,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_query" name = "brk_query"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"brk_computer", "brk_computer",
"brk_core", "brk_core",
@@ -557,7 +557,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_server" name = "brk_server"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"axum", "axum",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -586,7 +586,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_state" name = "brk_state"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"bincode", "bincode",
"brk_core", "brk_core",
@@ -600,7 +600,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_store" name = "brk_store"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"arc-swap", "arc-swap",
"brk_core", "brk_core",
@@ -610,7 +610,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_vec" name = "brk_vec"
version = "0.0.55" version = "0.0.56"
dependencies = [ dependencies = [
"arc-swap", "arc-swap",
"brk_core", "brk_core",
+14 -14
View File
@@ -4,7 +4,7 @@ members = ["crates/*"]
package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node" package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node"
package.license = "MIT" package.license = "MIT"
package.edition = "2024" package.edition = "2024"
package.version = "0.0.55" package.version = "0.0.56"
package.homepage = "https://bitcoinresearchkit.org" package.homepage = "https://bitcoinresearchkit.org"
package.repository = "https://github.com/bitcoinresearchkit/brk" package.repository = "https://github.com/bitcoinresearchkit/brk"
@@ -22,19 +22,19 @@ axum = "0.8.4"
bincode = { version = "2.0.1", features = ["serde"] } bincode = { version = "2.0.1", features = ["serde"] }
bitcoin = { version = "0.32.6", features = ["serde"] } bitcoin = { version = "0.32.6", features = ["serde"] }
bitcoincore-rpc = "0.19.0" bitcoincore-rpc = "0.19.0"
brk_cli = { version = "0.0.55", path = "crates/brk_cli" } brk_cli = { version = "0.0.56", path = "crates/brk_cli" }
brk_computer = { version = "0.0.55", path = "crates/brk_computer" } brk_computer = { version = "0.0.56", path = "crates/brk_computer" }
brk_core = { version = "0.0.55", path = "crates/brk_core" } brk_core = { version = "0.0.56", path = "crates/brk_core" }
brk_exit = { version = "0.0.55", path = "crates/brk_exit" } brk_exit = { version = "0.0.56", path = "crates/brk_exit" }
brk_fetcher = { version = "0.0.55", path = "crates/brk_fetcher" } brk_fetcher = { version = "0.0.56", path = "crates/brk_fetcher" }
brk_indexer = { version = "0.0.55", path = "crates/brk_indexer" } brk_indexer = { version = "0.0.56", path = "crates/brk_indexer" }
brk_logger = { version = "0.0.55", path = "crates/brk_logger" } brk_logger = { version = "0.0.56", path = "crates/brk_logger" }
brk_parser = { version = "0.0.55", path = "crates/brk_parser" } brk_parser = { version = "0.0.56", path = "crates/brk_parser" }
brk_query = { version = "0.0.55", path = "crates/brk_query" } brk_query = { version = "0.0.56", path = "crates/brk_query" }
brk_server = { version = "0.0.55", path = "crates/brk_server" } brk_server = { version = "0.0.56", path = "crates/brk_server" }
brk_state = { version = "0.0.55", path = "crates/brk_state" } brk_state = { version = "0.0.56", path = "crates/brk_state" }
brk_store = { version = "0.0.55", path = "crates/brk_store" } brk_store = { version = "0.0.56", path = "crates/brk_store" }
brk_vec = { version = "0.0.55", path = "crates/brk_vec" } brk_vec = { version = "0.0.56", path = "crates/brk_vec" }
byteview = "=0.6.1" byteview = "=0.6.1"
clap = { version = "4.5.40", features = ["string"] } clap = { version = "4.5.40", features = ["string"] }
clap_derive = "4.5.40" clap_derive = "4.5.40"
+15 -13
View File
@@ -1289,7 +1289,7 @@ impl Vecs {
base_version + self.height_to_opreturn_supply.inner_version(), base_version + self.height_to_opreturn_supply.inner_version(),
)?; )?;
let mut chain_state: Vec<BlockState>; let mut chain_state: Vec<BlockState> = vec![];
let mut chain_state_starting_height = Height::from(self.chain_state.len()); let mut chain_state_starting_height = Height::from(self.chain_state.len());
let stateful_starting_height = match separate_utxo_vecs let stateful_starting_height = match separate_utxo_vecs
@@ -1322,25 +1322,27 @@ impl Vecs {
.collect::<Vec<_>>(); .collect::<Vec<_>>();
chain_state_starting_height chain_state_starting_height
} }
Ordering::Less => { Ordering::Less => Height::ZERO,
// todo!("rollback instead");
chain_state = vec![];
chain_state_starting_height = Height::ZERO;
Height::ZERO
}
}; };
if stateful_starting_height.is_zero() {
info!("Starting processing utxos from the start");
separate_utxo_vecs
.par_iter_mut()
.try_for_each(|(_, v)| v.state.price_to_amount.reset())?;
}
let starting_height = starting_indexes let starting_height = starting_indexes
.height .height
.min(stateful_starting_height) .min(stateful_starting_height)
.min(Height::from(self.height_to_unspendable_supply.len())) .min(Height::from(self.height_to_unspendable_supply.len()))
.min(Height::from(self.height_to_opreturn_supply.len())); .min(Height::from(self.height_to_opreturn_supply.len()));
if starting_height.is_zero() {
info!("Starting processing utxos from the start");
// todo!("rollback instead");
chain_state = vec![];
chain_state_starting_height = Height::ZERO;
separate_utxo_vecs
.par_iter_mut()
.try_for_each(|(_, v)| v.state.price_to_amount.reset())?;
}
if starting_height == Height::from(height_to_date_fixed.len()) { if starting_height == Height::from(height_to_date_fixed.len()) {
return Ok(()); return Ok(());
} }
+4 -4
View File
@@ -14,16 +14,16 @@ fn main() -> color_eyre::Result<()> {
Binance::fetch_1d().map(|b| { Binance::fetch_1d().map(|b| {
dbg!(b.last_key_value()); dbg!(b.last_key_value());
}); })?;
Kraken::fetch_1d().map(|b| { Kraken::fetch_1d().map(|b| {
dbg!(b.last_key_value()); dbg!(b.last_key_value());
}); })?;
Binance::fetch_1mn().map(|b| { Binance::fetch_1mn().map(|b| {
dbg!(b.last_key_value()); dbg!(b.last_key_value());
}); })?;
Kraken::fetch_1mn().map(|b| { Kraken::fetch_1mn().map(|b| {
dbg!(b.last_key_value()); dbg!(b.last_key_value());
}); })?;
dbg!(fetcher.get_date(Date::new(2025, 6, 5))?); dbg!(fetcher.get_date(Date::new(2025, 6, 5))?);
dbg!(fetcher.get_height( dbg!(fetcher.get_height(
+1 -7
View File
@@ -110,13 +110,7 @@ impl TryFrom<(&mut Vecs, &Stores, &Client)> for Indexes {
vecs.height_to_blockhash vecs.height_to_blockhash
.iter() .iter()
.get(*height) .get(*height)
.is_none_or(|saved_blockhash| { .is_none_or(|saved_blockhash| &rpc_blockhash != saved_blockhash.as_ref())
let b = &rpc_blockhash != saved_blockhash.as_ref();
if b {
dbg!(rpc_blockhash, saved_blockhash.as_ref());
}
b
})
}) })
.unwrap_or(starting_height); .unwrap_or(starting_height);
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "kibo.money", "name": "brk",
"short_name": "kibo", "short_name": "brk",
"description": "A better, FOSS, Bitcoin-only, self-hostable Glassnode", "description": "A better, FOSS, Bitcoin-only, self-hostable Glassnode",
"categories": [ "categories": [
"bitcoin", "bitcoin",
+1 -1
View File
@@ -2,7 +2,7 @@
// File auto-generated, any modifications will be overwritten // File auto-generated, any modifications will be overwritten
// //
export const VERSION = "v0.0.54"; export const VERSION = "v0.0.55";
/** @typedef {0} DateIndex */ /** @typedef {0} DateIndex */
/** @typedef {1} DecadeIndex */ /** @typedef {1} DecadeIndex */