Skip to content

Commit 9156249

Browse files
committed
update docs
1 parent 1268a5f commit 9156249

8 files changed

+221
-3
lines changed

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
Firma is a tool to create bitcoin multisig wallets with private keys stored on offline devices.
66

7-
The offline device could be a [CLI](cli) terminal or a spare [android](android) phone.
7+
The offline device could be a [CLI](cli) terminal or a spare [Android](android) phone.
88

99
Information is transferred between devices through QR codes. Since PSBT could become large some kB, more than 1 QR code could be needed, those QRs are chained with QR [structured append](https://segno.readthedocs.io/en/stable/structured-append.html)
1010

11+
Wallets data are saved in the local filesystem (see [datadir](/docs/datadir.md)) and optionally encrypted with an externally provided key (on Android everything is encrypted by the default with a key protected by native keystore).
12+
1113
It is based on:
1214
* [bitcoin core](https://bitcoincore.org/)
1315
* [PSBT](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki) (Partially Signed Bitcoin Transaction)
@@ -119,7 +121,7 @@ Check the bin [readme](cli/README.md) for an example with CLI
119121
gpg --decrypt encryption_key.gpg | firma-offline --read-stdin random --key-name bitcoin-key
120122
```
121123

122-
On android, system keystore is used to encrypt 32 random bytes, so that physical attacks need to break the secure element if the device has one.
124+
On Android, system keystore is used to encrypt 32 random bytes, so that physical attacks need to break the secure element if the device has one.
123125
</details>
124126

125127
<details>

docs/datadir.dot

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
digraph G {
2+
".firma" -> "[network]"
3+
4+
"[network]" -> wallets
5+
"[network]" -> keys
6+
"[network]" -> psbts
7+
"[network]" -> "daemon_opts"
8+
9+
keys -> "[key name]"
10+
"master_secret" [shape=Square]
11+
"descriptor_public_key" [shape=Square]
12+
"[key name]" -> "master_secret"
13+
"[key name]" -> "descriptor_public_key"
14+
15+
wallets -> "[wallet name]"
16+
"wallet" [shape=Square]
17+
"wallet_indexes" [shape=Square]
18+
"daemon_opts" [shape=Square]
19+
"wallet_signature" [shape=Square]
20+
"[wallet name]" -> "wallet"
21+
"[wallet name]" -> "wallet_indexes"
22+
"[wallet name]" -> "wallet_signature"
23+
24+
psbts -> "[psbt name]"
25+
"psbt" [shape=Square]
26+
"[psbt name]" -> "psbt"
27+
}

docs/datadir.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Datadir
2+
3+
Firma operates saving data in a datadir which defaults to `$HOME/.firma` but could be configured.
4+
5+
Datadir is organized like this.
6+
7+
![datadir](datadir.svg)
8+
9+
All squares are json files while circles are directories.

docs/datadir.svg

+181
Loading
File renamed without changes.
File renamed without changes.
File renamed without changes.

lib/src/entities/identifier.rs

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ impl Display for Kind {
4747
}
4848
}
4949

50-
5150
impl FromStr for Kind {
5251
type Err = io::Error;
5352

0 commit comments

Comments
 (0)