bitviewd 0.12.2

The self-hostable Bitview Bitcoin data daemon
Documentation
use std::{env, fs, path::Path};

use bitview::ImportContext;
use bitview_default::DefaultPlugins;
use bitview_query::Vecs;
use brk_reader::Reader;
use brk_rpc::{Auth, Client};
use vecdb::ReadOnlyClone;

pub fn main() -> brk_error::Result<()> {
    let tmp = env::temp_dir().join("brk_search_gen");
    fs::create_dir_all(&tmp)?;

    let client = Client::new("http://127.0.0.1:1", Auth::None)?;
    let reader = Reader::new_without_rlimit(tmp.join("blocks"), &client);
    let context = ImportContext::new(&tmp);
    let plugins = DefaultPlugins::import(context, &reader)?;

    let plugins_ro = plugins.read_only_clone();

    let vecs = Vecs::build(&plugins_ro);

    let out_path = Path::new(env!("CARGO_MANIFEST_DIR")).join("series.txt");
    let content = vecs.series_names().join("\n");
    fs::write(&out_path, &content)?;
    eprintln!(
        "Wrote {} series to {}",
        vecs.series_names().len(),
        out_path.display()
    );

    fs::remove_dir_all(&tmp)?;

    Ok(())
}