mycitadel / mycitadel-desktop

MyCitadel Wallet app for Linux, Windows & MacOS desktop made with GTK+3
https://mycitadel.io
GNU Affero General Public License v3.0
154 stars 14 forks source link

Add a document describing the architecture #38

Open vlad20012 opened 2 years ago

vlad20012 commented 2 years ago

Add a document describing the architecture of the wallet. Or write it in the README. In particular I wonder how the wallet communicates with the bitcoin network. Does it use bitcoin p2p protocol (compact filters/Neutrino) or some kind of special servers (like Electrum)? Does it reveal my wallet addresses to some server (like Electrum)?

dr-orlovsky commented 2 years ago

Yes, we'll do that thing.

Briefly, the architecture is very simple: the whole wallet is just a UI layer on top of descriptor-wallet library by LNP/BP Standards Association.

The library itself does not do any network communication. The only network communication performed by the wallet is electrum server, which you can change on wallet settings page. It defaults to blockstream server, but nothing prevents you from runung your own personal server on your node. The only other network communication is requests to Kraken exchange public API for the exchange rate. No other network communications are performed.