Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] create Backend and Coordinator docs #1821

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
13 changes: 13 additions & 0 deletions docs/.vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ export default defineUserConfig({
}, {
text: "FAQ",
link: "/FAQ/"
}, {
text: "Backend & Coordinator",
link: "/backend-coordinator/"
}, {
text: "Glossary",
link: "/glossary/"
Expand Down Expand Up @@ -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,
Expand Down
72 changes: 72 additions & 0 deletions docs/backend-coordinator/Backend.md
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 8 additions & 0 deletions docs/backend-coordinator/Coordinator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
{
"title": "Coordinator",
"description": "Insert description"
}
---

# Coordinator
25 changes: 25 additions & 0 deletions docs/backend-coordinator/README.md
Original file line number Diff line number Diff line change
@@ -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)