Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content

A desktop bitcoin wallet with an embedded full node

License

Notifications You must be signed in to change notification settings

luisschwab/bonsai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bonsai 盆栽

A desktop bitcoin wallet with an embedded full node
Powered by BDK and Floresta

About

Bonsai is built as a showcase of bdk_floresta, a novel chain-source crate for BDK, which embbeds Floresta, an extremely lightweight full-node implementation that leverages Utreexo to keep a compact representation of the UTXO set in under 2KB, and a small memory footprint. It allows wallet synching with zero requests to untrusted third-party APIs. The vast majority of wallets rely on third-party indexing servers (e.g. Esplora and Electrum protocols), which represent a huge privacy leak for users due to IP address and Bitcoin address correlation. Removing this security hole is a must for sovereign Bitcoin usage.

This application aims to show to developers the full set of capablities that bdk_floresta allows for building wallet applications with a nice and sleek user interface.

Running

This application is written in Rust. You need to have cargo installed.

just is used as a convenience tool for command running, installing it is advised.

# List available commands
~$ just
bonsai
    build                     # Build `bonsai` [alias: b]
    check                     # Check code: formatting, compilation, and linting [alias: c]
    delete item="data-signet" # Delete files: data-signet, settings, target, lockfile [alias: d]
    fmt                       # Format code [alias: f]
    hot                       # Run with experimental hot-reloading [alias: h]
    run                       # Run the code [alias: r]
    run-release               # Run the code in release mode [alias: rr]

# Run the application in release mode
~$ just run-release

Tabs

Bonsai has a few tabs that allow the user to monitor, configure and interact with the embedded node.

Wallet

WIP

Metrics

In the Metrics tab, the user can START, RESTART and STOP the node, see node metrics (such as node status, IBD progress, uptime, user agent and peer count), and monitor the node's logs.

Network

In the Network tab, the user can see information about peers the node is connected to, connect to new peer, disconnect or ban a peer, and see a dynamic diagram of the node's network messages (WIP).

Utreexo

In the Utreexo tab, the user can see statistics about the Utreexo accumulator, such as leaf count, root count, accumulator and proof cache size, as well as a dynamic QR code that allows exporting the node's validation. This can be scanned by other devices so that they can start running at the same height as Bonsai without trust assumptions.

Blockchain

In the Blockchain tab, the user can see a live feed of validated blocks, as well as inspect any block by fetching them from the P2P network.

Settings

In the Settings tab, the user can tweak the node's seetings as they please, including switching the network, setting a custom user agent, SOCKS5 proxy, fixed peer, and maximum number of outbound peers.

About

Implementation and Design

This application was developed using iced, a Rust-based GUI framework.

Shoutout to US Graphics Company for the beautiful Berkeley Mono font.

This was designed to have a sleek pseudo-TUI aesthetic, using the Gruvbox Dark color palette.

About

A desktop bitcoin wallet with an embedded full node

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •  

Languages