About
Kyoto is aiming to be a simple, memory-conservative, and private Bitcoin client for developers to build wallet applications. To read more about the scope, usage recommendations, and implementation details, see DETAILS.md.
Running an example
To run the Signet example, in the root directory:
cargo run --example signet
Getting Started
The following snippet demonstrates how to build a Kyoto node. See the docs for more details on the NodeBuilder, Node, Client, and more.
use HashSet;
use ;
let address = from_str
.unwrap
.require_network
.unwrap
.into;
let mut addresses = new;
addresses.insert;
let builder = new;
// Add node preferences and build the node/client
let = builder
// Add the peers
.add_peers
// The Bitcoin scripts to monitor
.add_scripts
// Only scan blocks strictly after an anchor checkpoint
.anchor_checkpoint
// The number of connections we would like to maintain
.num_required_peers
// Create the node and client
.build_node
.unwrap;
Minimum Supported Rust Version (MSRV) Policy
The kyoto core library with default features supports an MSRV of Rust 1.63. To build the library with Rust 1.63, the database feature requires a pinned dependency: cargo update -p allocator-api2 --precise "0.2.9".
While connections over the Tor protocol are supported by the feature tor, the dependencies required cannot support the MSRV. As such, no MSRV guarantees will be made when using Tor, and the feature should be considered experimental.
Integration Testing
To run the integrations against your bitcoind instance, in the root of the project:
chmod +x scripts/integration.sh
sh scripts/integration.sh "path/to/bitcoin/folder"
To run the unit tests, cargo fmt, clippy, and an example:
sh scripts/pr.sh
Contributing
Please read CONTRIBUTING.md to get started.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.