#zmq #mempool #bitcoin

bitcoincore-zmqsequence

一个Rust库,用于监听来自比特币核心的zmq序列消息

1个不稳定版本

0.1.0 2023年6月22日

#15 in #zmq

MIT/Apache

16KB
246 代码行

bitcoincore-zmqsequence

一个ZeroMQ pubsequence监听器。允许保持比特币核心节点内存池的同步副本。示例

use anyhow::Result;
use bitcoincore_zmqsequence::ZmqSeqListener;
use ctrlc;
use std::str::FromStr;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
use url::Url;


fn main() -> Result<()> {
    let checker = NodeChecker::new(&ClientConfig {
        cookie_auth_path: None,
        ip_addr: "localhost".to_string(),
        user: "anon".to_string(),
        passwd: "anon".to_string(),
    })?;

    println!("Waiting to node Ok");
    checker.wait_till_node_ok(2, false, Duration::from_secs(5))?;
    println!("Node Ok");

    let stop_th = Arc::new(AtomicBool::new(false));
    let stop_th2 = stop_th.clone();
    ctrlc::set_handler(move || stop_th2.store(true, Ordering::SeqCst))?;
    let zmqseqlistener = ZmqSeqListener::start(&Url::from_str("tcp://127.0.0.1:29000")?)?;
    while !stop_th.load(Ordering::SeqCst) {
        let kk = zmqseqlistener.rx.recv()?;
        println!("{:?}", kk);
    }
    Ok(())
}

依赖项

~1.7–5.5MB
~118K SLoC