diff --git a/.gitattributes b/.gitattributes index dc37cdc..afbb2c0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,6 +5,7 @@ # Force the following filetypes to have unix eols and encoding, so that Windows does not break them. # If a file is going to be used on linux and windows, we want it invariant, # rather than automatically translated, because automatic translation always screw things up. +* text=auto eol=lf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 .gitignore text eol=lf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 .gitattributes text eol=lf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 .gitmodules text eol=lf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 diff --git a/.gitconfig b/.gitconfig index b82a964..de3488f 100644 --- a/.gitconfig +++ b/.gitconfig @@ -1,7 +1,7 @@ [core] autocrlf = input whitespace = -tab-in-indent,tabwidth=4,indent-with-non-tab,trailing-space,space-before-tab - safecrlf + safecrlf=warn [apply] whitespace = fix ignoreWhitespace = no @@ -9,25 +9,5 @@ lg = log --max-count=6 --oneline --pretty='format:%C(auto)%h %d %Creset%p %C("#60A0FF")%cr %Cgreen %cn %G? %GT trust%Creset%n%s%n' graph = log --max-count=18 --graph --pretty=format:'%C(auto)%h %s %Cgreen(%cr) %C(bold blue)%cn %G?%Creset' --abbrev-commit alias = ! git config --get-regexp ^alias\\. | sed -e s/^alias\\.// -e s/\\ /\\ =\\ / | grep -v ^'alias ' | sort - fixws = !"\ - if (! git diff-files --quiet .) && \ - (! git diff-index --quiet --cached HEAD) ; then \ - git commit -m FIXWS_SAVE_INDEX && \ - git add -u :/ && \ - git commit -m Fix_whitespace && \ - git rebase --whitespace=fix HEAD~2 && \ - git reset HEAD~ && \ - git reset --soft HEAD~ ; \ - elif (! git diff-files --quiet .) ; then \ - git add -u :/ && \ - git commit -m Fix_whitespace && \ - git rebase --whitespace=fix HEAD~ && \ - git reset HEAD~ ; \ - elif (! git diff-index --quiet --cached HEAD) ; then \ - git commit -m FIXWS_SAVE_INDEX && \ - git rebase --whitespace=fix HEAD~ && \ - git reset --soft HEAD~ ; \ - fi" - check-whitespace = !"git diff --check $(git hash-object -t tree /dev/null) HEAD" [commit] gpgSign = true diff --git a/.gitignore b/.gitignore index 5a7be92..52149e2 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ sqlite3/sqlite-doc/ *.vcxproj.filters *.html *.htm -wallet.cppcheck +*.cppcheck # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/docs/blockdag_consensus.md b/docs/blockdag_consensus.md index fad0b24..9e2d919 100644 --- a/docs/blockdag_consensus.md +++ b/docs/blockdag_consensus.md @@ -81,7 +81,7 @@ its total. On each block of the chain, a peer’s rank is the bit position of the highest bit of the running total that rolled over when its stake was added for that -block. +block. So if Bob has a third of the stake of Carol, and $N$ is a rank that corresponds to bit position higher than the stake of either of them, then diff --git a/docs/libraries.md b/docs/libraries.md index 287a424..93a48a5 100644 --- a/docs/libraries.md +++ b/docs/libraries.md @@ -145,7 +145,7 @@ It has become painfully apparent that building a blockchain is a very large proj Polkadot is a blockchain ecosystem, and substack a family of libraries for constructing blockchains. It is a lot a easier to refactor an existing -blockchain than to start entirely from scratch. [Near] is way ahead of me, +blockchain than to start entirely from scratch. [Near] is way ahead of me, because not suffering from not invented here syndrome. Polkadot is designed to make its ecosystem subordinate to the primary @@ -553,7 +553,7 @@ generate proofs that prove something about the results of hashes and elliptic point operations, making very difficult to produce a proof that a pile of proofs in the pre-image of a merkle tree have been verified. I suspect that a prover might take a very very long time to produce such a -proof. +proof. The proofs are succinct, in that you can prove something about a gigantic pile of data and the size of the proof and the time taken to verify scarcely diff --git a/docs/merkle_patricia_dag.md b/docs/merkle_patricia_dag.md index 0d226b3..911cf9a 100644 --- a/docs/merkle_patricia_dag.md +++ b/docs/merkle_patricia_dag.md @@ -263,7 +263,7 @@ information from the peer that has the node with more children. stroke-width="1" stroke-linecap="round" > + font-weight="400" fill-rule="evenodd" fill="black" > diff --git a/docs/number_encoding.md b/docs/number_encoding.md index 84c6ba4..e3f2a46 100644 --- a/docs/number_encoding.md +++ b/docs/number_encoding.md @@ -1,7 +1,7 @@ --- # katex title: Number encoding -... +--- # The problem to be solved As computers and networks grow, any fixed length fields @@ -90,7 +90,7 @@ are similarly represented by four base 58 characters. And so on, for arbitrarily large values. A truly enormous number is going to start with `zzzz....`, `z` being the representation of $58-1$ in base 58. -This amounts to shifting the underlying value to the appropriate range, then displaying it as the shifted base 58 value. +This amounts to shifting the underlying value to the appropriate range, then displaying it as the shifted base 58 value. We display a value in the range $0\le n \lt 58/2$ as itself, diff --git a/docs/replacing_TCP.md b/docs/replacing_TCP.md index 22c3cc5..4cee798 100644 --- a/docs/replacing_TCP.md +++ b/docs/replacing_TCP.md @@ -428,7 +428,7 @@ his private network address space, nor his subnet of the globally routable address space, gets sent to the internet facing network interface. Further, he would like every computer on his network to be automatically -assigned a globally routable address if it uses a name in the global system, +assigned a globally routable address if it uses a name in the global system, or a private fd:: address if it is using a name not in the global system, so that the first time his computer tries to access the network with the domain name he just assigned, it gets a unique network address which will never diff --git a/docs/rootDocs/README.md b/docs/rootDocs/README.md index a6517ca..15fb852 100644 --- a/docs/rootDocs/README.md +++ b/docs/rootDocs/README.md @@ -28,18 +28,25 @@ winConfigure.bat Should the libraries change in a subsequent `pull ` you will need ```bat -pull -f --recurse-submodules +git pull +rem you get a status message indicating libraries have been updated. +git pull -force --recurse-submodules winConfigure.bat ``` +in order to rebuild the libraries. + +The `--force` is necessary, because `winConfigure.bat` changes +many of the library files, and therefore git will abort the pull. + [cryptographic software is under attack]:./docs/contributor_code_of_conduct.html#code-will-be-cryptographically-signed "Contributor Code of Conduct" {target="_blank"} -winConfigure.bat also configures the repository you just created to use +`winConfigure.bat` also configures the repository you just created to use `.gitconfig` in the repository, causing git to to implement GPG signed commits -- because [cryptographic software is under attack] from NSA -entryists, and shills, who seek to introduce backdoors. +entryists and shills, who seek to introduce backdoors. This may be inconvenient if you do not have `gpg` installed and set up. @@ -48,32 +55,40 @@ This may be inconvenient if you do not have `gpg` installed and set up. 1. `git lg` to display the gpg trust information for the last four commits. For this to be useful you need to import the repository public key `public_key.gpg` into gpg, and locally sign that key. -1. `git fixws` to standardise white space to the project standards -1. `git graph` to graph the commit tree +1. `git graph` to graph the commit tree with signing status 1. `git alias` to display the git aliases. ```bash -# To verify that the signature on future pulls is unchanged. +# To verify that the signature on future pulls is +# unchanged. gpg --import public_key.gpg gpg --lsign 096EAE16FB8D62E75D243199BC4482E49673711C -# We ignore the Gpg Web of Trust model and instead use -# the Zooko identity model. -# We use Gpg signatures to verify that remote repository -# code is coming from an unchanging entity, not for -# Gpg Web of Trust. Web of Trust is too complicated -# and too user hostile to be workable or safe. -# Never --sign any Gpg key related to this project. --lsign it. -# Never check any Gpg key related to this project against a -# public gpg key repository. It should not be there. -# Never use any email address on a gpg key related to this project -# unless it is only used for project purposes, or a fake email, -# or the email of an enemy. ``` +We ignore the Gpg Web of Trust model and instead use the Zooko +identity model. + +We use Gpg signatures to verify that remote repository code +is coming from an unchanging entity, not for Gpg Web of Trust. Web +of Trust is too complicated and too user hostile to be workable or safe. + +Never --sign any Gpg key related to this project. --lsign it. + +Never check any Gpg key related to this project against a public +gpg key repository. It should not be there. + +Never use any email address on a gpg key related to this project +unless it is only used for project purposes, or a fake email, or the +email of an enemy. We don't want Gpg used to link different email +addresses as owned by the same entity, and we don't want email +addresses used to link people to the project, because those +identities would then come under state and quasi state pressure. + To build the documentation in its intended html form from the markdown files, execute the bash script file `docs/mkdocs.sh`, in an environment where -`pandoc` is available. On Windows, if Git Bash and Pandoc has been -installed, you should be able to run a shell file in bash by double clicking on it. +`pandoc` is available. On Windows, if Git Bash and Pandoc +has been installed, you should be able to run this shell +file in bash by double clicking on it. [Pre alpha release](./RELEASE_NOTES.html), which means it does not yet work even well enough for it to be apparent what it would do if it did work. diff --git a/docs/scale_clients_trust.md b/docs/scale_clients_trust.md index ca8e388..84fa3af 100644 --- a/docs/scale_clients_trust.md +++ b/docs/scale_clients_trust.md @@ -279,7 +279,7 @@ which claims: setup, with the best of SNARKs, support for recursion and low verification cost ... - ... transpiled to ZK bytecode, which can be executed efficiently in our VM running inside a STARK. + ... transpiled to ZK bytecode, which can be executed efficiently in our VM running inside a STARK. So, if you have their VM that can run inside a stark, and their ZK bytecode, you can write your own ZK language to support a friendly diff --git a/docs/writing_and_editing_documentation.md b/docs/writing_and_editing_documentation.md index 1be88ed..2e817f0 100644 --- a/docs/writing_and_editing_documentation.md +++ b/docs/writing_and_editing_documentation.md @@ -32,7 +32,7 @@ navigation at your fingertips.] This layout is in some way automatically generated on the server, which sucks. Probably relies on server side include, which is the easiest way to -do it.The documentation needs to be in every install and every repository. +do it.The documentation needs to be in every install and every repository. Thus wxWidgets documentation on the server has nice organizational style, but on each person's individual installed copy, disorganized crap. @@ -55,7 +55,7 @@ and any subdirectories. On reflection, we will not use any cleverness to have a single header bar file that all html files use because each top bar of each html file will b different, having different items highlighted, and according to its depth in -the tree, a different number of '../' prepended to the links in the top bar. +the tree, a different number of '../' prepended to the links in the top bar. Each markdown file and directory in a directory should have a short human friendly name, which will correspond to the name in the top bar,