diff --git a/README.md b/README.md index c40c6e99a..9bab4a06f 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ If you need help regarding the software specifically, please check out [Discussi * How to contribute to Wasabi. * ## [Wasabi FAQ](https://github.com/WalletWasabi/WasabiDoc/tree/master/docs/FAQ/) * Frequently asked questions. + * ## [Backend & Coordinator](https://github.com/WalletWasabi/WasabiDoc/tree/master/docs/backend-coordinator/) + * Explanations of common words. * ## [Wasabi Glossary](https://github.com/WalletWasabi/WasabiDoc/tree/master/docs/glossary/) * Explanations of common words. diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index 44c362763..1ce7fa3bb 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -102,6 +102,9 @@ export default defineUserConfig({ }, { text: "FAQ", link: "/FAQ/" + }, { + text: "Backend & Coordinator", + link: "/backend-coordinator/" }, { text: "Glossary", link: "/glossary/" @@ -226,6 +229,16 @@ export default defineUserConfig({ ] }], + "/backend-coordinator/": [{ + text: "Backend and Coordinator", + collapsable: false, + sidebarDepth: 2, + children: [ + "/backend-coordinator/Backend.md", + "/backend-coordinator/Coordinator.md" + ] + }], + "/glossary/": [{ text: "Glossary", collapsable: false, diff --git a/docs/backend-coordinator/Backend.md b/docs/backend-coordinator/Backend.md new file mode 100644 index 000000000..293dd2ab4 --- /dev/null +++ b/docs/backend-coordinator/Backend.md @@ -0,0 +1,72 @@ +--- +{ + "title": "Backend", + "description": "Documentation about the Wasabi backend and how to use it.This is the Wasabi documentation, an archive of knowledge about the open-source, non-custodial and privacy-focused Bitcoin wallet for desktop." +} +--- + +# Backend + +[[toc]] + + +The Wasabi backend creates and serves the block filters to the Wasabi clients that use these to synchronize their wallet. + +The filters Wasabi uses are custom filters (not the same block filters bitcoind creates), as they are native segwit v0 and native segwit v1 only. + +The bitcoin node, used for the backend, can be pruned. + +## How to run a Backend + +- Dependencies: +Same (dotnet) dependencies as the Wasabi client + bitcoind (can be Bitcoin Core or Knots). + +### Manually + +A backend can be run in the following way: + +- Clone the Wasabi repository + +``` +git clone --depth=1 --single-branch --branch=master https://github.com/WalletWasabi/WalletWasabi.git +``` + +- Navigate to the Backend directory + +``` +cd WalletWasabi/WalletWasabi.Backend +``` + +Start +- Run the Backend to create the backend data directory +``` +dotnet run +``` + +The data directory is now created in ~/.walletwasabi/backend. + +The config needs to be edited for the Wasabi backend to communicate to bitcoind. + +Edit the following line in the backend `Config.json` file: +``` +"BitcoinRpcConnectionString": "user:password", +``` + +Enter the bitcoin RPC username and password. +Or specify the cookie file. + +Save the changes. +Now run bitcoind and the Wasabi backend. +It will start generating the filters. + +### Using nix + +The backend can be run using nix. +This will download and install all Wasabi dependencies (not bitcoind). + +Nix needs to be installed, then execute `nix build` in the WalletWasabi root directory. + +Alternatively `nix build .#all` can be run, which will build and run the tests. + +After running nix build a directory is created called `result`, this contains: bin, lib, deploy. +bin contains executables, inlcuding WalletWasabi.Backend and should be run to start the backend. diff --git a/docs/backend-coordinator/Coordinator.md b/docs/backend-coordinator/Coordinator.md new file mode 100644 index 000000000..6fb949fc2 --- /dev/null +++ b/docs/backend-coordinator/Coordinator.md @@ -0,0 +1,8 @@ +--- +{ + "title": "Coordinator", + "description": "Insert description" +} +--- + +# Coordinator \ No newline at end of file diff --git a/docs/backend-coordinator/README.md b/docs/backend-coordinator/README.md new file mode 100644 index 000000000..276e80c21 --- /dev/null +++ b/docs/backend-coordinator/README.md @@ -0,0 +1,25 @@ +--- +{ + "title": "Backend & Coordinator", + "description": "All the information for those Wasabikas interested in helping Wasabi Wallet users by running a backend and/or a coordinator. This is the Wasabi documentation, an archive of knowledge about the open-source, non-custodial and privacy-focused Bitcoin wallet for desktop." +} +--- + +# Backend & Coordinator + +This is the place with documentation about how a Wasabi backend and coordinator work and how they can be run. + +A backend is necessary for Wasabi users to synchronize their wallet. + +A coordinator is necessary for Wasabi users to be able to coinjoin. + +## Chapters + +### Backend + +- [Backend](/backend-coordinator/Backend.md) + +### Coordinator + +- [Coordinator](/backend-coordinator/Coordinator.md) +