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_traversable::Traversable;
use brk_reader::Reader;
use brk_rpc::{Auth, Client};

pub fn main() -> color_eyre::Result<()> {
    color_eyre::install()?;

    let tmp = env::temp_dir().join("bitview_tree_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 tree = plugins.to_tree_node();

    let json = serde_json::to_string_pretty(&tree)?;

    let out_path = Path::new(env!("CARGO_MANIFEST_DIR")).join("tree.json");
    fs::write(&out_path, &json)?;
    eprintln!("Wrote {} bytes to {}", json.len(), out_path.display());

    fs::remove_dir_all(&tmp)?;

    Ok(())
}