Go to file
2024-10-11 08:50:31 +10:00
docs modified the setup files to link to each other, and to have abstracts 2024-09-30 20:36:27 +10:00
libsodium@b6e1e94cfb cleaning up error reporting 2023-09-22 12:10:52 +10:00
mpir@dda9307f16 avoiding the implicit creation of the oid primary key to avoid sqlite backwards bug compatible quirks 2023-08-03 01:44:08 -07:00
msvc putting cmake changes to bed 2024-04-09 11:58:52 +10:00
nmake cleanup, and just do not like pdfs 2022-02-20 18:26:44 +10:00
samples Never really figured out why my code was breaking 2023-10-18 20:23:56 +10:00
sqlite3 moved utcmt to its proper directory 2024-02-14 21:48:06 +10:00
src in accordance with dry principle, removed duplicate wallet creation path 2024-09-08 11:11:59 +08:00
wxWidgets@3d7f929461 still syncing the .gitattributes in wxWidgets 2024-09-21 12:38:26 +10:00
.gitattributes notes on playing around with nixos 2024-08-25 14:22:09 +08:00
.gitconfig moving to ssh key based signing 2024-02-25 17:05:46 -08:00
.gitignore still struggling with the problem of making public ids public 2022-07-01 09:18:44 +10:00
.gitmodules minor correction on setup.md 2024-09-21 12:17:47 +10:00
.gitsigners reverting error in .gitsigners 2024-04-10 09:46:28 +08:00
README.md Readying the readme files for publication 2024-09-06 08:51:20 +08:00

#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 profit model. The current business plan being to eat SWIFT's lunch, 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.

copyright © and license

Prerequisites

pre-requisite, Pandoc to build the html documentation from the markdown files.

Windows pre-requisites: Visual Studio and git-bash. This software is supposed to be cross platform, and is unlikely to get traction with highly motivate early adopters unless it is cross platform, but currently only builds on Windows.

Download

The current state of the code is so incomplete and fragmentary that it is likely to be difficult for other people to usefully build on.

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).

# assuming Pandoc is installed, and git-bash if you are on
# windows
git clone --recurse-submodules https://gitea.rho.la/cheng/wallet.git
wallet/docs/mkdocs.sh

The above download relies on https for security, but https is vulnerable to enemy action by any adversary sufficiently powerful to have a certificate authority in his pocket, so our identity model relies on ssh keys, not domain names, so if you intend to make contributions, it would be preferable to create an account on gitea.rho.la with a fake email, upload your ssh public key to that account, and clone using ssh instead of https

Fork the repository and provide a comment explaining the fork, otherwise your login might be deleted as spam.

git clone --recurse-submodules gitea@gitea.rho.la:cheng/wallet.git
wallet/docs/mkdocs.sh

To build the docs, including the license file, you need Pandoc on the path.

cd wallet
docs/mkdocs.sh

Setup

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)

cd wallet
msvc/winConfig.bat

Or, if you are in the command shell or power shell,

msvc\winConfigure.bat

After a pull that gives you a status of modified submodules, to fix the submodules

git submodule update --init --recursive --remote

After a checkout or branch switch that gives you a status of modified submodules.

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

git config --local include.path ../.gitconfig

this will substantially mitigate the problem of submodules failing to update in pushes, pulls, checkouts, and switches.

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
  2. git graph to graph the commit tree with the committer name from .gitsigners that corresponds to the public key
  3. git alias to display the git aliases.
  4. git utcmt to make a commit without revealing your time zone.

Pre alpha release, which means it does not yet work even well enough for it to be apparent what it would do if it did work.