logo
vision scalability social net revelation
changelog contributing code of conduct notice readme

README

1 About

Very shortly after Bitcoin started to catch on, a great many very smart people pursued a great many clever technologies for making it scalable and or private. Among them, Zero knowledge, for if not everyone has to download everyone else’s transactions, you get both scalability and privacy.

In 2016, when zero knowledge blockchains were still a conjecture impossible to implement in practice, a proposal for scalable and private level two bitcoin was floated.

We now, finally, have some blockchains that implement the required technology, though with the exception of litecoin’s Hogex, they are more working technology demonstrations than practical blockchains. And we have, allegedly working, the grail bridge that would enable a scalable and private level two bitcoin over them, the grail bridge being a working tech demo of the 2016 hand waved proposal.

So I am treating this as a solved problem, even though the solution is not actually out yet in useful form, and am working on related technologies that a world of scalable and private level two bitcoin is going to need.

Wallet is open source software intended to become the manager of hierarchical deterministic keys for a social network that is 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 civilization, but uncensorable speech does not pay the bills. Uncensorable money does pay the bills.

If people are actually using bitcoin as money, they will not want everyone they transact with to know the IP address of a machine likely to contain the secrets that control a great deal of money, so the requirements to enable monetary freedom have large overlap to the requirements to enable freedom of speech.

copyright © and license

2 Install

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:

# git-bash if you are on windows
git clone --recurse-submodules git clone --recurse-submodules https://gitea.rho.la/rho/wallet.git

But, because currently pre-alpha, building it will not do you much good, unless you intend to contribute, in which case you should have an ssh enabled account on Rho, and clone it over ssh as described in Contributing.

2.1 Git configuration

2.2 Windows

Pre-requisites: Visual Studio and git-bash.

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 launch the visual studio native tools environment, which is most easily done from the gui, then

cmake -B build -S .
cd build
cmake --build . --config Debug
cmake --build . --config Release
cd ..
msvc\wallet.sln

Or if you have the visual studio tools environment enabled in git-bash, which is not trivial to set up but very convenient.

cmake -B build -S .
cd build
cmake --build . --config Debug
cmake --build . --config Release
cd ..
start msvc/wallet.sln

2.3 Linux

Building and running on fedora (40+) and debian (trixie) is currently supported.

The recommended development environment on linux is vscodium.

First ensure the necessary packages are installed:

2.3.1 Debian

GCC version ≥ 13 is required to build, so trixie or later is required. If your compiler is out of date, you will get error messages about std::format, because C++20 is not fully supported in GCC version 12.

sudo apt update
sudo apt install build-essential cmake libsecret-1-dev libgtk-3-dev libsqlite3-dev

2.3.2 Fedora

(For fedora >=40)

dnf install gcc-c++ make cmake libsecret-devel gtk3-devel sqlite sqlite-devel
dnf clean all

2.3.3 Building

To build on linux, you need * the gtk library files, which on Debian are apt install libgtk-3-dev * libsecret, which on linux is apt install libsecret-1-0 libsecret-1-dev and on Arch are pacman -S libsecret

To build the docs you will need Pandoc. If you launch codium (or the spyware Visual Studio Code) in the docs directory it will create a build subdirectory, and execute cmake -G Ninja .. && cmake --build . in it. Or you can just do the same manually.

To build the wallet executable, in the project root directory run

cmake -B build -S .

You are likely to get a huge number of cmake errors complaining about missing libraries. For each library that CMake complains about, for example GSTREAMER

apt-cache search GSTREAMER | grep dev

You are likely to get far too many hits, but it will always be obvious which one is the correct one. Install it. Once cmake ceases to complain about missing libraries:

cmake --build build
# optional, use multithreading (helpful for wxWidgets)
# cmake --build build --parallel $(nproc)

this will build the project including submodules. Afterwards, to run the wallet:

./build/wallet -dct

The command line argument -dct runs and displays the unit test.

Once you have one successful build, you will find that on linux, editing and debugging is most conveniently done in vscodium. On Linux the project is set up for vscodium development.

On Windows using Microsoft Visual studio, you will find that though you need cmake to build the static libraries, msvc/wallet.sln is more convenient for debugging and developing the program. Developing on vscodium in windows is difficult, because Microsoft is enshitifying its development environment, which will eventually necessitate a move from Visual Studio Community Edition to LLVM-MinGW vscodium, but for the moment, the Microsoft debugger is just nicer, despite the walls Microsoft are building around it to lock users into their ecosystem, to spy on their users, and to steal their users intellectual property.

Since Windows 11 is spyware, one should use Windows 10 Enterprise LTSC, which slightly less spyware and slightly less bloated.

3 Please contribute

Contributing {target=“_blank”}

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.

Creative Commons License reaction.la gpg key 154588427F2709CD9D7146B01C99BB982002C39F
This work is licensed under the Creative Commons Attribution 4.0 International License.