Compare commits

...

2 Commits

Author SHA1 Message Date
reaction.la
7f59262175
still fixing README -- two README's now 2024-08-29 14:52:00 +08:00
reaction.la
6d4fb43622
two versions of README.md, one github markdown, and one pandoc markdown 2024-08-28 19:20:36 +08:00
4 changed files with 154 additions and 11 deletions

View File

@ -9,7 +9,13 @@ it will not be private for much longer).
You cannot have truly end to end encryption, except you control your own keys directly. You cannot have truly end to end encryption, except you control your own keys directly.
To make an actually useful social net requires a lot of engineers doing a lot of work, which requires funding, which requires a a profit model. The current business plan being to [eat SWIFT's lunch](./docs/manifesto/SWIFT.html), by creating an environment in which one can create and operate the necessary Daos. To make an actually useful social net requires a lot of engineers doing a lot of work,
which requires funding, which requires a a profit model.
The current business plan being to [eat SWIFT's lunch](./docs/manifesto/SWIFT.html),
by creating an environment in which one can create and operate the necessary Daos.
We need uncensorable speech to save civilisation, but uncensorable speech does not pay the bills.
Uncensorable money does pay the bills.
The rest of the documentation is in Pandoc markdown, rather than Gitea or Github markdown, so you will have to build it before any of these links work. The rest of the documentation is in Pandoc markdown, rather than Gitea or Github markdown, so you will have to build it before any of these links work.
@ -103,7 +109,6 @@ update in pushes, pulls, checkouts, and switches.
[cryptographic software is under attack]:./docs/setup/contributor_code_of_conduct.html#code-will-be-cryptographically-signed [cryptographic software is under attack]:./docs/setup/contributor_code_of_conduct.html#code-will-be-cryptographically-signed
"Contributor Code of Conduct" "Contributor Code of Conduct"
{target="_blank"}
It will, however, also implement signed commits, and insist you have set up a key pair as It will, however, also implement signed commits, and insist you have set up a key pair as
explained in the contributor code of conduct because [cryptographic software is under attack] from NSA explained in the contributor code of conduct because [cryptographic software is under attack] from NSA

114
docs/rootDocs/README.md Normal file
View File

@ -0,0 +1,114 @@
---
title: >-
README
---
## About
Wallet is open source software intended to become the manager of hierarchical
deterministic keys for a social network that a superset of the Bitmessage social net,
for securely pseudonymous uncensorable public communication,
and securely private communication. (Telegraph looks like
it will not be private for much longer).
You cannot have truly end to end encryption, except you control your own keys directly.
To make an actually useful social net requires a lot of engineers doing a lot of work,
which requires funding, which requires a a profit model.
The current business plan being to [eat SWIFT's lunch](./docs/manifesto/SWIFT.html),
by creating an environment in which one can create and operate the necessary Daos.
We need uncensorable speech to save civilisation, but uncensorable speech does not pay the bills.
Uncensorable money does pay the bills.
The rest of the documentation is in Pandoc markdown, rather than Gitea or Github markdown, so you will have to build it before any of these links work.
[pre alpha documentation (mostly a wish list)](docs/index.htm)
[copyright © and license](./license.txt)
pre-requisite, Pandoc to build the html documentation from the markdown files.
Windows pre-requisites: Visual Studio and git-bash
To obtain the source code from which the project can be built,
including this README.html, from the bash command line (git-bash in windows).
```bash
git clone --recurse-submodules missing url
```
To build the docs, you need pandoc on the path.
```bash2
cd wallet/docs
./mkdocs.sh
```
To configure and build the required third party libraries in windows, then
build the program and run unit test for the first time, you need to have
Visual studio build tools at their default location)
```bash2
cd wallet
./winConfigure.bat
```
Or, if you are in the command shell or power shell,
```bat
.\winConfigure.bat
```
After a pull from remote in which the submodules have changed, the pull
fails to automatically update the submodules by default, and when you
switch or checkout branches, the switch fails to automatically switch
and checkout the brances.
After a pull that gives you a status of modified submodules.
```bash
git submodule update --init --recursive --remote
```
After a checkout or branch switch that gives you a status of modified submodules.
```bash
git submodule update --recursive
```
The documentation is in pandoc flavored markdown, which is
conveniently edited in vscode with the `markdown lint` and `Pandoc`
extensions included and, if you have launched `code` in the docs directory,
with `file/preferences/Extensions/Markdown/Styles` set to
`pandoc_templates\\style.css`, that being the style used by the `mkdocs.sh` documentation build script.
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.
if you add the recommended repository configuration defaults to your local repository configuration
```bash
git config --local include.path ../.gitconfig
```
this will substantially mitigate the problem of submodules failing to
update in pushes, pulls, checkouts, and switches.
[cryptographic software is under attack]:./docs/setup/contributor_code_of_conduct.html#code-will-be-cryptographically-signed
"Contributor Code of Conduct"
{target="_blank"}
It will, however, also implement signed commits, and insist you have set up a key pair as
explained in the contributor code of conduct because [cryptographic software is under attack] from NSA
entryists and shills, who seek to introduce backdoors.
`.gitconfig` also adds several git aliases:
1. `git lg` to display the git log with committer name from `.gitsigners` that corresponds to the public key
1. `git graph` to graph the commit tree with the committer name from `.gitsigners` that corresponds to the public key
1. `git alias` to display the git aliases.
1. `git utcmt` to make a commit without revealing your time zone.
[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.

View File

@ -16,7 +16,7 @@ that frequently strange and overcomplicated design decisions are made,
decisions), decisions whose only apparent utility is to provide paths for decisions), decisions whose only apparent utility is to provide paths for
hostile organizations to exploit subtle, complex, and unobvious security holes. hostile organizations to exploit subtle, complex, and unobvious security holes.
McAffee reported that this is a result of plants - the state plants engineers McAffee reported that this is a result of plants -- the state plants engineers
in nominally private organizations to create backdoors. Shortly after he in nominally private organizations to create backdoors. Shortly after he
reported this he was arrested and murdered by the US government. (To be reported this he was arrested and murdered by the US government. (To be
precise he was arrested at the instigation of the US government, and then precise he was arrested at the instigation of the US government, and then
@ -131,10 +131,11 @@ identified cryptographically, rather than through the domain name system.
then at the root of your repository then at the root of your repository
```bash ```bash
ssh-keygen -t ed25519 - C gandalf -f .git/gandalf #to create your key pair nm=gandalf
git config user.signingkey .git/gandalf.pub #tell git to use this key pair ssh-keygen -t ed25519 -C $nm -f .git/$nm #to create your key pair
git config user.name gandalf #will be ignored git config user.signingkey .git/$nm.pub #tell git to use this key pair
git config user.email gandalf@ #fake email will be ignored git config user.name $nm #will be ignored
git config user.email $nm@ #fake email will be ignored
git config include.path ../.gitconfig #sets various defaults, ssh signing among them git config include.path ../.gitconfig #sets various defaults, ssh signing among them
``` ```
@ -143,7 +144,7 @@ git config include.path ../.gitconfig #sets various defaults, ssh signing among
to the .gitsigners file to publish your public key to anyone to the .gitsigners file to publish your public key to anyone
who wants to make sure that commits are from the nym that they who wants to make sure that commits are from the nym that they
claim to be -- at least claim to be when their commits are claim to be -- at least claim to be when their commits are
displayed by the git aliases of `.gitconfig` displayed by the git lg alias provided by `.gitconfig`
The nym in `.gitsigners` is the one that matters, though `user.email` The nym in `.gitsigners` is the one that matters, though `user.email`
and `user.name` should be the same or sufficiently related to and `user.name` should be the same or sufficiently related to
@ -266,13 +267,13 @@ practice people only used Zooko identity, and Web of Trust was a cloud
of confusing complexity and user hostile interface on top of Zooko identity. of confusing complexity and user hostile interface on top of Zooko identity.
What gpg identity is primarily used for in practice is to make sure you What gpg identity is primarily used for in practice is to make sure you
are getting the latest release from the same repository managed by the same person as are getting the latest release from the same repository managed by the same person as
you got the previous release - which is Zooko identity, not Web of Trust you got the previous release -- which is Zooko identity, not Web of Trust
identity, and has no real relationship to email. Zooko identity is about identity, and has no real relationship to email. Zooko identity is about
constancy of identity, Web of Trust is about rightful use of email constancy of identity, Web of Trust is about rightful use of email
addresses. Web of trust was a true names mechanism, and today no one addresses. Web of trust was a true names mechanism, and today no one
speaks the truth under their true name. speaks the truth under their true name.
Web of trust was designed for a high trust society - but in a high trust Web of trust was designed for a high trust society -- but in a high trust
society you don't need it, and in a low trust society, the name servers were society you don't need it, and in our low trust society, the name servers were
too vulnerable to enemy action, and died, leaving the Web of Trust user too vulnerable to enemy action, and died, leaving the Web of Trust user
interface in every installed copy of gpg a useless obstacle. interface in every installed copy of gpg a useless obstacle.

View File

@ -3085,6 +3085,29 @@ This is by far the simplest and most direct way of allowing the world to get at
[Git Book for Git daemon](https://git-scm.com/book/en/v2/Git-on-the-Server-Git-Daemon) [Git Book for Git daemon](https://git-scm.com/book/en/v2/Git-on-the-Server-Git-Daemon)
When you have submodules, an issue arises with people accessing the submodules through different protocols.
The fix is to make `.gitmodules` protocol agnostic by using relative urls. As for example
```.gitmodules
[submodule "libsodium"]
path = libsodium
url = ../libsodium.git
branch = rho-fork
[submodule "mpir"]
path = mpir
url = ../mpir.git
branch = rho-fork
[submodule "wxWidgets"]
path = wxWidgets
url = ../wxWidgets.git
branch = rho-fork
```
This will enable recursive cloning and all that to work regardless of the root protocol.
After amending the `.gitmodules` file you need to execute the command `git submodule sync`,
and now that you are using relative urls, when the base url changes, `git submodule sync --recursive`
### Gitweb ### Gitweb
Does much the same thing as git-daemon, makes your repository public with a Does much the same thing as git-daemon, makes your repository public with a