global: snapshot

This commit is contained in:
nym21
2026-01-10 18:43:18 +01:00
parent 3bc0615000
commit 6f45ec13f3
311 changed files with 6916 additions and 7664 deletions
@@ -57,11 +57,13 @@ impl Vecs {
exit,
)?;
// Skip coinbase (first tx per block) since it has no fee
self.fee
.derive_from(indexer, indexes, starting_indexes, exit)?;
.derive_from_with_skip(indexer, indexes, starting_indexes, exit, 1)?;
// Skip coinbase (first tx per block) since it has no feerate
self.fee_rate
.derive_from(indexer, indexes, starting_indexes, exit)?;
.derive_from_with_skip(indexer, indexes, starting_indexes, exit, 1)?;
Ok(())
}
@@ -4,7 +4,10 @@ use brk_types::Version;
use vecdb::{Database, EagerVec, ImportableVec};
use super::Vecs;
use crate::{indexes, internal::{ComputedTxDistribution, ValueTxFull}, price};
use crate::{indexes, internal::{ComputedFromTxDistribution, ValueFromTxFull}, price};
/// Bump this when fee/feerate aggregation logic changes (e.g., skip coinbase).
const VERSION: Version = Version::ONE;
impl Vecs {
pub fn forced_import(
@@ -14,11 +17,12 @@ impl Vecs {
indexes: &indexes::Vecs,
price: Option<&price::Vecs>,
) -> Result<Self> {
let v = version + VERSION;
Ok(Self {
input_value: EagerVec::forced_import(db, "input_value", version)?,
output_value: EagerVec::forced_import(db, "output_value", version)?,
fee: ValueTxFull::forced_import(db, "fee", version, indexes, indexer, price)?,
fee_rate: ComputedTxDistribution::forced_import(db, "fee_rate", version, indexes)?,
fee: ValueFromTxFull::forced_import(db, "fee", v, indexes, indexer, price)?,
fee_rate: ComputedFromTxDistribution::forced_import(db, "fee_rate", v, indexes)?,
})
}
}
@@ -2,12 +2,12 @@ use brk_traversable::Traversable;
use brk_types::{FeeRate, Sats, TxIndex};
use vecdb::{EagerVec, PcoVec};
use crate::internal::{ComputedTxDistribution, ValueTxFull};
use crate::internal::{ComputedFromTxDistribution, ValueFromTxFull};
#[derive(Clone, Traversable)]
pub struct Vecs {
pub input_value: EagerVec<PcoVec<TxIndex, Sats>>,
pub output_value: EagerVec<PcoVec<TxIndex, Sats>>,
pub fee: ValueTxFull,
pub fee_rate: ComputedTxDistribution<FeeRate>,
pub fee: ValueFromTxFull,
pub fee_rate: ComputedFromTxDistribution<FeeRate>,
}