--- theme: name: terminal-light --- # Road to compact filters - `rust-bitcoin` provides the robust types to parse P2P messages - `bdk_chain` has nice methods on `IndexedTxGraph` like `apply_block_relevant` - Missing link is a library to find and maintain TCP connections, interpret P2P messages, and relay relevant blocks to BDK - My project `https://github.com/rustaceanrob/kyoto` attempts to fill the gaps # Miscellaneous Details - Configurable with known peers or may be completely bootstrapped with DNS - Supports arbitrary number of outbound connections (although finding CBF peers can be challenging) - Scripts may be added up front when building or as the node is running - Calling `Node::run` will run the node continuously while the application is running - Usable on the "client side" or an always-on "server side" application - `rust-bitcoin` handles serialization and deserialization of P2P messages, and `tokio` enables flexible concurrency ```toml [dependencies] bitcoin_hashes = "0.14.0" bitcoin = { version = "0.32.0", features = [ "serde", "rand-std", ], default-features = false } tokio = { version = "1.37", default-features = false, features = [ "rt-multi-thread", "sync", "time", "io-util", "net", "macros", ] } # Optional dependencies rusqlite = { version = "0.31.0", features = ["bundled"], optional = true } ``` # Swift example