Introduction
Grassroots Economics has written a set of (Free) Open Source Software (FOSS) to provide a platform to setup and run community asset vouchers.
Guiding Principles
- Reduce dependence on global supply chains by building own devices, or repurposing existing ones.
- Reduce dependence on centralized data/cloud storage providers for services and infrastructure.
- Reduce dependence on as-a-service providers by running self-hosted open source alternatives.
- Reduce risk of vendor lock-ins by defining a foundational protocol for transfer of value (the TCP/IP of currency)
- Improve the conditions for privacy also for poor populations that mostly have to trade their data for free airtime for big-data comms (whatsapp, facebook, twitter etc)
- Enable, educate and encourage self-custody of identity, private keys and data.
- Enable, educate and encourage individual sovereignity in choosing and using digital tools.
- Democratize protocols by exposing rich APIs so that theoretically anyone could make an alternative app for any app.
- Encourage diversity of tooling and services on every level of protocol, application and network development.
- Improve resilience by developing for offline and local transmission (without internet) use-cases as first priority.
Technology Setup
Generally, the technical setup is done by a local Platform Service Provider like Grassroots Economics.
The setup is GNU/Linux-first. No guarnatee or support will be provided for proprietary OS platforms.
Open Source and Copyleft
Ensure that you trust the software being used. Even if it is open source now, that improvements and upgrades will remain open source.
Even if it is open source, ensure that it is clear and transparent enough to reasonably understand and maintain.
All software components written by Grassroots Economics are licensed under the AGPL 3.0 License (opens in a new tab) unless otherwise explicitly stated in the code repository or file.
Distributed Ledger
We highly recommend using abstractions that enable portability to other ledger systems. Even if a ledger chain is benevolent and reasonable to use now, does not mean it remains that way forever.
A long term goal should be for communities to collaborate in creating their own ledger systems, where members of the communities hold nodes that decentralize and secure the ledger with low hardware requirements.
Interfaces/Wallets
Provide and preserve abstractions that enable use of any wallet and network provider.
Offer wallet custody system, aswell as recovery systems for lost keys and passwords.
Data Sharing
Given the consent of the communities, anonymized transaction data can be recorded and displayed.
Provide full understanding and transparency of the scope of data that is shared, and the possible risks and effects caused by data sharing.
Ensure that the intelligence that is yielded from shared data is given back in full to the communities, to own and to do with as they see fit.
System design principles
Specific principles for system design and contribution are described below with emphasis on software development and infrastructure:
-
Avoid lock-ins: No part of the system should rely on and/or integrate with libraries or services that cannot be reasonably understood and adapted. Nor should the work required to replace a component be unreasonable large as a result of external dependencies. Adaptable dependencies should expose an implementable interface.
-
Lean dependency graph: The base should make use of primitives and standard libraries as much as possible.
-
No soft lock-in to virtual environments: Too many modern software projects only provides reasonable ease of use through mechanisms like Docker or similar frameworks. Care should be taken to incur minimum penalty for using the application and tooling in a local host environment. Documentation must exist and be maintained to facilitate this.
-
Coherent configurations regardless of entry-point: Merged ini/toml-format configuration files constitute configuration schemas and overrides, translating to a configuration directive vocabulary overridable by environment variables of the same name.
-
CLI tooling framework: Layered definitions of command line arguments, so that concepts common for each layer is only defined in one place. Full and intuitive control of overriding configuration directives with command line arguments and flags. Easy generation of base resource objects (such as rpc, wallet) directly from rendered configurations. Facilitate and encourage use of chainable commands (e.g. UNIX pipelines).
Architecture
Summary:
- Fully Open Source under AGPL 3.0 License.
- Automates the full lifecycle of blockchain transactions.
- Supported on Celo (opens in a new tab) and can be extended to support any EVM-compatible blockchain.
- Includes a broad collection CLI tools for most common chain operations.
- Supports both local and containerized environments.
- Support last mile front-end APIs and integrations.