diff --git a/README.md b/README.md index a9571fb..38856fe 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ The semi-honest setting can provide some degree of confidentiality, especially a Overcoming the community analysis concern requires a Sybil resistant, permissionless protocol where peers with no meaningful economic relationship can find each other. This involves an additional *coalition formation* protocol that sets up transaction construction using a market based mechanism. -While it is beneficial for privacy, interacting with strangers in a permissionless protocol invites distruption or attempts are surveillance. For honest peers to be able reliably transact, especially with the unanimity requirement, demands a byzantine fault tolerance from the transaction construction protocol. +While it is beneficial for privacy, interacting with strangers in a permissionless protocol invites disruption or attempts at surveillance. For honest peers to be able to reliably transact, especially with the unanimity requirement, demands a byzantine fault tolerance from the transaction construction protocol. In the course of a BFT interaction with untrusted peers, a participant may still use the other variants of the protocol to coordinate activity with the subset of peers they do know or trust, for instance by performing net-settlement within a larger BFT CoinJoin. diff --git a/cspell.json b/cspell.json new file mode 100644 index 0000000..c90a361 --- /dev/null +++ b/cspell.json @@ -0,0 +1,36 @@ +{ + "version": "0.2", + "language": "en-US,en-GB", + "useGitignore": true, + "files": [ + "**/*.{md,py,rs,nix,sh,toml,css}", + ".github/**/*.{yml,yaml,sh}", + "cspell.json" + ], + "ignorePaths": [ + ".git/**", + ".jj/**", + "/src/**", + "/book/**", + "/result/**" + ], + "dictionaries": [ + "bash", + "css", + "fonts", + "python", + "networking-terms", + "bitcoin-privacy", + "repo-tooling" + ], + "dictionaryDefinitions": [ + { + "name": "bitcoin-privacy", + "path": "./cspell/bitcoin-privacy.txt" + }, + { + "name": "repo-tooling", + "path": "./cspell/tooling.txt" + } + ] +} diff --git a/cspell/bitcoin-privacy.txt b/cspell/bitcoin-privacy.txt new file mode 100644 index 0000000..16c9b72 --- /dev/null +++ b/cspell/bitcoin-privacy.txt @@ -0,0 +1,30 @@ +# Bitcoin and privacy vocabulary +blockspace +CoinJoin +deanonymization +deanonymize +CLTV +CPFP +DLEQ +ECDH +feerate +finalizer +HTLCs +keytype +locktime +Merkle +MuSig +Payjoin +permissionless +preimages +PSBT +PSBTs +pubkeys +RIPEMD +scriptSig +scriptWitness +sighash +taptree +unlinkability +UTXO +xpub diff --git a/cspell/tooling.txt b/cspell/tooling.txt new file mode 100644 index 0000000..4275994 --- /dev/null +++ b/cspell/tooling.txt @@ -0,0 +1,21 @@ +# Repository tools, identifiers, and upstream authors +cacheprovider +DejaVu +devshell +DNSSEC +dontInstall +dylanowen +fontconfig +Graphviz +KaTeX +lzanini +mdBook +mmdc +NixOS +nixpkgs +pkgs +pytest +PyYAML +stdenv +toplevel +unfetched diff --git a/nix/spellcheck.nix b/nix/spellcheck.nix index 3739ccf..4ace583 100644 --- a/nix/spellcheck.nix +++ b/nix/spellcheck.nix @@ -3,6 +3,12 @@ perSystem = { pkgs, ... }: { + checks.cspell = pkgs.runCommand "cspell" { nativeBuildInputs = [ pkgs.cspell ]; } '' + cd ${../.} + cspell --config cspell.json --no-progress --show-suggestions + touch $out + ''; + checks.typos = pkgs.runCommand "typos" { nativeBuildInputs = [ pkgs.typos ]; } '' cd ${../.} typos