Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • elmau/silkaj
  • Mr-Djez/silkaj
  • jbar/silkaj
  • clients/python/silkaj
  • Bernard/silkaj
  • cebash/silkaj
  • jytou/silkaj
  • c-geek/silkaj
  • vincentux/silkaj
  • jeanlucdonnadieu/silkaj
  • matograine/silkaj
  • zicmama/silkaj
  • manutopik/silkaj
  • atrax/silkaj
14 results
Select Git revision
Show changes
Showing
with 1321 additions and 2 deletions
docs/images/v0.8_pipeline.png

26.9 KiB

---
hide:
- toc
- navigation
---
# Welcome
![silkaj logo](images/silkaj_logo.png){ width="200" }
Welcome to Silkaj documentation
[Install :material-package-down:](install.md){ .md-button .md-button--primary } [Usage :material-keyboard-outline:](usage/index.md){ .md-button .md-button--primary }
## What is Silkaj?
Silkaj is a command line client for [Ğ1](https://duniter.org/g1/) libre currency powered by [Duniter software](https://duniter.org/).
<div class="grid cards" markdown>
- :fontawesome-solid-money-bill-1-wave:{ .lg .middle } __Money management__
______________________________________________________________________
Transfer money, check your balance, and history stand.
- :material-vector-polyline:{ .lg .middle } __Web-of-Trust management__
______________________________________________________________________
Manage your certifications, membership, and revocation document.
- :material-card-account-details-outline:{ .lg .middle } __Account management__
______________________________________________________________________
With the wallet import format authentication method.
- :octicons-terminal-16:{ .lg .middle } __CLI interface__
______________________________________________________________________
Silkaj is built around a command line interface design.
- :material-raspberry-pi:{ .lg .middle } __Low requirements__
______________________________________________________________________
Written with Python, Silkaj is built with low requirements in mind.
- :material-book-open-variant:{ .lg .middle} __RTM compatible__
______________________________________________________________________
Silkaj is compatible with the [Relative Theory of Money](https://en.trm.creationmonetaire.info/)
and includes Ğ1 Monetary License.
- :material-scale-balance:{ .lg .middle } __Free software__
______________________________________________________________________
Silkaj is licensed under :material-copyleft: :simple-gnu: [GNU AGPL v3](https://www.gnu.org/licenses/agpl-3.0.html).
</div>
---
hide:
- navigation
---
# Install Silkaj
## Distribution
Installing Silkaj from the package manager of your favorite distribution might not be available or might not come with latest Silkaj version.
In order to get latest version install Silkaj with `pipx` or `pip` from PyPI which you can find in next sections.
[![Packaging status](https://repology.org/badge/vertical-allrepos/silkaj.svg?columns=2)](https://repology.org/project/silkaj/versions)
## Unix
On a Unix system, run in your shell following commands:
### Install libsodium
=== "Debian"
```
sudo apt install libsodium23
```
=== "Fedora"
```
sudo dnf install libsodium-devel
```
=== "macOS"
```
brew install libsodium
```
### Install `pipx`
Check [`pipx` documentation](https://pipx.pypa.io/stable/) for an extended installation tutorial.
=== "Debian"
```
sudo apt install pipx python3-dev
```
=== "Fedora"
```
sudo dnf install pipx python3-devel
```
=== "macOS"
```
brew install python3 pipx
```
## Install with pipx
[pipx](https://pypa.github.io/pipx/) tool is recommended for Python executables.
It isolates libraries into separated virtual environments.
### Ensure path
Takes care to add Pipx executables in the `PATH` of your shell:
```
pipx ensurepath
```
### Install
```
pipx install silkaj
```
### Upgrade
```
pipx upgrade silkaj
```
### Uninstall
```
pipx uninstall silkaj
```
### Check Silkaj is working
```
silkaj
```
______________________________________________________________________
## Install with pip
`pipx` installation is recommended, but you can proceed with `pip` if you know what you are doing.
### Install `pip`
=== "Debian"
```
sudo apt install python3-pip
```
=== "Fedora"
```
sudo dnf install python3-pip
```
=== "macOS"
Already installed with `python3`
### Completing `PATH`
If after Silkaj intallation you get a `bash: silkaj: command not found` error, you have to extend the `PATH` with `~./local/bin`:
```bash
echo "export PATH=$PATH:$HOME/.local/bin" >> $HOME/.bashrc
source $HOME/.bashrc
```
### Install for current user only
```
pip install silkaj --user
```
### Upgrade
```
pip install silkaj --user --upgrade
```
### Uninstall (useful to see the real paths)
```
pip uninstall silkaj --user
```
### Check Silkaj is working
```
silkaj
```
## Shell completion
Set up the shell completion by adding following line in your shell configuration depending on your shell:
=== "Bash"
```title="$HOME/.bashrc"
eval "$(_SILKAJ_COMPLETE=bash_source silkaj)"
```
=== "Zsh"
```title="$HOME/.zshrc"
eval "$(_SILKAJ_COMPLETE=zsh_source silkaj)"
```
=== "Fish"
```title="$HOME/.config/fish/completions/silkaj.fish"
_SILKAJ_COMPLETE=fish_source silkaj | source
```
For further details checkout [Click documentation](https://click.palletsprojects.com/en/8.1.x/shell-completion/).
## Install to contribute
Check out the [installation guide with Poetry](./contributing/install_poetry.md).
# Account storage
Silkaj features the account storage to store and read security-wise important documents from a location on your local computer.
It is used to store and read authentication and revocation files with Silkaj.
It is recommended to use the storage instead of storing and reading these files anywhere on your system.
They are stored into `$XDG_DATA_HOME/silkaj`, aka `$HOME/.local/share/silkaj/$currency/$account_name` as:
- `revocation.txt`
- `authentication_file_ed25519.dewif` for v1 WIF and EWIF formats based on the approved [RFC n°13](https://git.duniter.org/documents/rfcs/-/blob/master/rfc/0013_Duniter_Encrypted_Wallet_Import_Format.md).
- `authentication_file_sr25519.json` for v2 encrypted json format
The account name is a local name given to a wallet.
It does not necessarily need to be the same identity username stored into the blockchain.
No verification what so ever is performed to check any correspondence between the local name stored into Silkaj account storage and the one stored on the blockchain or the indexer.
## Per currency storage
The storage is organized per currencies.
Depending on the specified endpoint with the endpoint options (`--endpoint`, `--gtest`) the currency will be determined. Based on the latter, it will be stored into `g1` or `g1-test` directory.
## Authentication
### Import
Import your authentication file into the storage.
In case you want to use an other authentication method than the default Scrypt method, use one of the authentication options which can be find in `silkaj authentication --help` usage.
Next command will store the authentication file in `$HOME/.local/share/silkaj/g1/test/authentication_file_ed25519.dewif`
```
silkaj --account test authentication <authentication option>
```
Note: `g1` and `test` folders come respectively from the default Ğ1 endpoint and `test` from the name of the passed account.
### Reading
Commands using authentication such as `money transfer`, `wot certify`, `wot membership`, and `money balance` will read the authentication file from the account storage.
With the general `--account` option, it will use the authentication file created in previous step.
```
silkaj --account test money transfer
```
## Revocation
### Input/Output
The general `--account` option (placed between `silkaj` and the sub-command) is used to read the authentication file and to write the revocation file in the same directory.
```
silkaj --account test authentication
```
### Creation
```
silkaj --gtest --account john wot revocation create
```
Will be stored into `$HOME/.local/share/silkaj/g1-test/john/revocation.txt`
### Reading
The revocation document can be read with `wot revocation publish` and `verify` commands as follow:
```
silkaj --gtest --account john wot revocation verify
```
Here we are reading the revocation file generated in previous step.
# Command-line interface reference
This page provides documentation of Silkaj command line interface.
::: mkdocs-click
:module: silkaj.cli
:command: cli
:depth: 1
:prog_name: silkaj
:list_subcommands: true
:style: table
# DeathReaper
![DeathReaper logo](../images/deathreaper_logo.svg)
DeathReaper is a service reporting Web of Trust exclusions on [Discourse forums](https://www.discourse.org/).
Images are created containing Silkaj + DeathReaper.
These images are operated on [DeathReaper repository](https://git.duniter.org/clients/python/deathreaper) with pipeline schedules.
### Installation
When installing Silkaj, you have to specify the optional [extra](https://peps.python.org/pep-0508/#extras) `deathreaper` distribution in order to get DeathReaper’s dependency [`pydiscourse`](https://pypi.org/project/pydiscourse/) installed.
It will therefore "activate" the feature, and `silkaj wot exclusions` command will become available.
```sh
pipx install silkaj[deathreaper]
```
With Poetry development environment:
```sh
poetry install --extras deathreaper
```
### Usage
DeathReaper was first released in Silkaj codebase with version 0.12.0.
Make sure `exclusions` command is present under `silkaj wot`, otherwise something probably went wrong with the installation.
Then run `silkaj wot exclusions --help` to check how to use it.
By default it will report the exclusions for the last day, from 24 hours in the past till now.
You can specify an other duration with `silkaj wot exclusions 0.5` for the last 12 hours, half a day, for example.
By default the report will be displayed in the terminal.
To have the report published on a Discourse forum, you have to pass following options `--api-id` `--*-api-key`, `--publish`.
Further code changes have to be done in order to support additional Discourse forums.
# Usage
- [Command-line interface reference](cli.md)
- [Account storage](account_storage.md)
- [Multi-recipients transfers and automation](multi-recipients_transfers_and_automation.md)
- [DeathReaper](deathreaper.md)
# Multi-recipients transfers and automation
We want to transfer money to multiple recipients and to automate that process.
### Create a recipients file
Create a file (i.e.: `recipients.txt`) containing the list of the recipients public keys you want to send money to.
```title="recipients.txt"
<ABSOLUTE|RELATIVE>
# comment 1
<amount1> <pubkey1>
# comment 2
<amount2> <pubkey2>:[<checksum2>]
```
The file content should be prefixed with `RELATIVE` or `ABSOLUTE` so the amounts will be expressed in UD Ğ1 or Ğ1.
### Set up the authentication
- Check [authentication documentation](./account_storage.md#authentication) on how to handle the authentication.
### Transfer
Finally, you just have to run following command:
```
silkaj -a <account_name> money transfer --file recipients.txt
```
### Automation
In case you want to automate a transfer on a regural basis, on the first day of the month in this example, you can set a `crontab` on your machine (preferably a machine running 7/24):
```
0 0 1 * * silkaj -a <account_name> money transfer --file recipients.txt --yes
```
Pass `--yes` option so no confirmation gets prompted.
In case a password is set on the authentication, pass as well the `--password <password>` general option.
# G1 monetary license
## Available languages
- [(`en`) English](g1_monetary_license_en.rst)
- [(`eo`) Esperanto](g1_monetary_license_eo.rst)
- [(`es`) Spanish](g1_monetary_license_es.rst)
- [(`fr`) French](g1_monetary_license_fr.rst)
- [(`pt`) Portuguese](g1_monetary_license_pt.rst)
- [(`it`) Italian](g1_monetary_license_it.rst)
- [(`de`) Deutsch](g1_monetary_license_de.rst)
- [(`ca`) Catalan](g1_monetary_license_ca.rst)
Llicència Ğ1 - v0.2.9
====================
:Date: 2017-04-04 12:59
:Modified: 2023-01-01 18:33
**Llicència de la moneda i compromís de responsabilitat.**
Qualsevol certificació d'un nou membre de Ğ1 Ha d'anar en primer lloc acompanyada de la transmissió d'aquesta llicència de la moneda Ğ1, on el certificador ha d'assegurar-se que ha sigut estudiada, entesa i acceptada per la persona que serà certificada.
Cualquier evento de encuentro relacionado con Ğ1 debe ir acompañado de la transmisión de esta licencia, que puede leerse en voz alta y transmitirse por cualquier medio.
Red de confianza Ğ1 (RdC Ğ1)
------------------------------
** Aviso de advertencia :** Certificar no significa que simplemente has visto físicamente a la persona candidata. Es asegurar a la comunidad Ğ1 que la conoces lo suficientemente bien y que sabrás cómo contactarla y localizarla fácilmente, ser capaz de identificar una posible cuenta falsa o duplicada realizada por alguien que has certificado, u otro tipo de problema, efectuando verificaciones con la comunidad que detecten el problema. La seguridad de la Red de Confianza es descentralizada.
**Consejos fuertemente recomendados**
Conocer bien a una persona significa que puedes comunicarte con ella por varios medios distintos (físicos, electrónicos, etc ...) pero también que conoces a varias personas que también la conocen bien y, por lo tanto, pueden contactar con ella igualmente. Además si no conoces bien a nadie de quienes ya le han certificado, es una clara indicación de que no conoces bien a la persona; una certificación de este tipo provoca una alerta hacia toda la comunidad Ğ1. En caso de conocimiento insuficiente, es importante NO certificar.
Nunca certifiques solo/a, sino acompáñate por al menos otro/a miembro de la RdC Ğ1 para evitar cualquier error de manejo. En caso de error, advierte a quienes ya son miembros de la RdC Ğ1 inmediatamente.
Antes de cualquier certificación, asegúrate de verificar si su cuenta (tanto si es nueva candidatura o ya miembro) ha recibido ya una o más certificaciones. Si es necesario, solicite información para ponerte en contacto con quienes ya le hayan certificado para verificar juntos/as que conocéis bien la persona en cuestión concerniente, así como su llave pública correspondiente.
Comprueba que la persona a ser certificada domina bien el manejo de su cuenta: una buena manera de comprobar esto es transferir unas Ğ1 a la cuenta destino, y luego pedir la devolución a tu propia cuenta. Esto asegura el buen manejo por quien va a ser certificado, de su llave privada.
Comprueba que tus contactos hayan estudiado y comprendido la licencia Ğ1 actualizada.
Si te percatas de que un/a certificador/a real o potencial de la cuenta candidata no conoce a la persona interesada, avisa inmediatamente a quien tenga experiencia en el tema de tus contactos en la RdC Ğ1, para que la RdC Ğ1 verifique el proceso de validación.
Cuando eres miembro de la RdC Ğ1 y estás a punto de certificar una cuenta:
** Estás seguro de: **
1°) Conocer suficientemente bien a quien declara poseer esta llave pública (cuenta candidata a miembro). Lea los consejos fuertemente recomendados más arriba para asegurarte de que la "conoces bien".
2°) Haber comprobado personalmente con esa persona de que se trata de esa llave pública que está a punto de certificar.
3°) Haber verificado con la persona interesada, que ha generado y guardado su documento o archivo de revocación de cuenta Duniter que le permitirá, si es necesario, desactivar su estado de miembro y cocreación (en caso de robo de las contraseñas, cambio de seudónimo, cuenta creada incorrectamente, etc.).
4a°) Para verificar el paso 2, para asegurarte de que la persona humana que conoces bien posee esa llave pública, es recomendable hacer esa validación in situ físicamente.
4b°) O bien se puede realizar la validación de forma remota de la llave pública, comunicándola por diferentes medios, como correo ordinario, electrónico, redes sociales, foro, videoconferencia, llamada telefónica (reconociendo la voz). Si alguien hackeara una cuenta de correo electrónico o una cuenta en un foro, es mucho más difícil imaginar que pueda hackear cuatro medios de comunicación separados, e imitar la apariencia (vídeo) e incluso la voz de alguien.
La 4a° es preferible a la 4b° mientras que los puntos 1°, 2° y 3° son ante todo indispensables.
**Reglas abreviadas de la RdC :**
Cada miembro tiene una reserva de 100 certificaciones posibles, que solo pueden hacerse efectivas a razón de 1 certificación cada 5 días.
Válida durante 2 meses, una certificación se toma en consideración definitivamente para una nueva candidatura de membresía si esta persona recibe al menos otras 4 certificaciones que cumplen la regla de distancia durante esos 2 meses, de lo contrario, el proceso de candidatura deberá reiniciarse sin perder acceso a la cuenta.
Para convertirse en nuevo/a miembro de la RdC Ğ1 es necesario obtener 5 certificaciones y estar a una distancia de <= 5 pasos con como mínimo un 80% del total de miembros referentes de la RdC.
Alguien es miembro referente de la RdC Ğ1 cuando ha recibido y también emitido al menos Y[N] certificaciones donde N es el total de miembros en la RdC e Y[N] = techo N^(1/5). Ejemplos:
* Para 1024 < N ≤ 3125 se obtiene que Y[N] = 5
* Para 7776 < N ≤ 16807 se obtiene que Y[N] = 7
* para 59049 < N ≤ 100.000 se obtiene que Y[N] = 10
Una vez que alguien es nuevo/a miembro de la RdC Ğ1, sus certificaciones serán válidas durante 2 años.
Para seguir siendo miembro, se debe renovar el acuerdo regularmente mediante la llave privada (cada 12 meses) y asegurarse de que siempre se tenga al menos 5 certificaciones válidas después de los 2 años.
Moneda Ğ1
----------
Ğ1 se genera a través de un Dividendo Universal (DU) para cada ser humano miembro de la Red de Confianza Ğ1, de la siguiente forma:
* 1 DU por persona y por día.
La cantidad en Ğ1 del DU diario es idéntica hasta pasado cada equinoccio(cada 6 meses) cuando se re-evaluará el DU según la fórmula :
* DU diario (próximo equinoccio) = DU diario (equinoccio) + c² (M/N)(equinoccio) / (15778800 segundos)
Teniendo como constantes:
* c = 4,88% / equinoccio
* DU(0) = 10,00 Ğ1
Y como variables :
* *M* la masa monetaria total en el equinoccio
* *N* el número de miembros el día del equinoccio
Software Ğ1 y licencia Ğ1
--------------------------
El software Ğ1 que permita a los usuarios administrar su uso de Ğ1 debe transmitir esta licencia y todos los parámetros técnicos de la moneda Ğ1 y de la RdC Ğ1 que han sido configurados en el bloque 0 de Ğ1. El software que no cumpla con estas obligaciones de la licencia no es compatible con Ğ1.
Para más detalle en los aspectos técnicos, es posible consultar directamente el código de Duniter, que es un software libre así como los datos de la cadena de bloques (blockchain) Ğ1, recuperándolos a través de una instancia (o nodo) de Duniter Ğ1.
Más información en el sitio web del equipo Duniter https://www.duniter.org
Ğ1 Lizenz - v0.2.9
===================
:Datum: 2017-08-21 16:59
:Letzte Änderung: 2018-07-14 18:05
**Lizenz für die Währung und Verpflichtung zur Übernahme von Verantwortung.**
Jede Zertifizierung für ein neues Mitglied des Ğ1 erfordert zuallererst die Übermittlung der Lizenz für die Ğ1 Währung.
Die Zertifizierer eines neuen Mitglieds müssen sicherstellen, dass die Lizenz von der zu zertifizierenden Person gelesen, verstanden und akzeptiert wurde.
Jede Informationsveranstaltung mit dem Thema Ğ1 sollte die Bestätigung der Kenntnisnahme dieser Lizenz beinhalten, diese kann durch lautes Vorlesen oder auf jedem anderen Weg übermittelt werden.
Ğ1 Netz des Vertrauens (Web of Trust) (Ğ1 WoT)
----------------------------------------------
**Hinweis:** Zertifizierung bedeutet nicht nur, sich zu vergewissern, dass man die Person kennen gelernt hat, sondern auch der gesamten Ğ1 Community Vertrauen zu geben, dass du die zu zertifizierende Person gut genug kennst und sie einfach kontaktieren kannst, für den Fall, dass eine von dir zertifizierte Person ein zweites Mitgliedskonto eröffnet hat, oder falls andere Probleme auftreten (Verschwinden der Person ...) und sie befragen kannst, um das Problem zu klären, soweit das nötig ist.
**Besonders empfohlene Hinweise**
Eine gut bekannte Person bedeutet, dass du verschiedene Wege kennst, sie zu kontaktieren: (physisch an ihrem Wohnort, per Telefon, E-Mail, etc. aber auch, dass du andere Personen kennst, die sie auch kennen und sie auch leicht erreichen können. Falls du die anderen Zertifizierer dieser Person nicht kennst, ist das ein starker Hinweis, dass du sie nicht ausreichend kennst. Eine Zertifizierung unter diesen Umständen ist ein Alarmzeichen für die Gemeinschaft.
Im Falle eines nicht ausreichenden Kennens sollte eine Zertifizierung NICHT stattfinden.
Zertifiziere niemals alleine, sondern immer zusammen mit anderen Mitgliedern des Vertrauensnetzwerks WoT, um einen Missbrauch von Software zu vermeiden. Bei jeder auftretenden Fehlermeldung, kontaktiere sofort andere (erfahrene) Mitglieder des Ğ1 WoT. (Anmerkung d, Übersetzers: die Softwareversionen von Duniter, Cesium etc. Im Jahr 2023 sind unter Umständen noch instabil und können schon mal "hängenbleiben").
Stelle sicher, dass das zukünftige, zertifizierte Mitglied die nötigen Handlungen im Konto beherrscht. Eine gute Möglichkeit ist, einige Ğ1 auf das neue Konto zu Überweisen und dann um Rücküberweisung zu deinem Konto zu bitten. Damit stellst du sicher, dass die zertifizierte Person mit Ihren Zugangsdaten (private Schlüssel) umgehen kann.
Sorge dafür, dass deine Kontakte eine aktuelle Version dieser Lizenz gelesen und verstanden haben.
Wenn du mitbekommst, dass ein Zertifizierer oder geplanter Zertifizierer eines Mitgliedskontos den Kontobesitzer nicht kennt, informiere bitte einige Experten (erfahrene Mitglieder) unter den dir bekannten Mitgliedern des WoT, zur Überprüfung des Verfahrens.
Wenn du Mitglied des Ğ1 WoT bist und ein neues Konto zertifizieren willst:
**VERGEWISSERE dich:**
**1 -** Dass du die Person (nicht nur einmal gesehen) genug kennst, um zu bestätigen, dass diese ihre Zugangdaten zu diesem öffentlichen Schlüssel sicher anwenden kann.
Siehe auch oben zu den Hinweisen "gut genug kennen".
**2 -** Dass du dich persönlich davon vergewissert hast, dass es ein guter öffentlicher Schlüssel (Zugangsdaten, Pseudonym) ist, der zertifiziert werden soll (siehe auch die Hinweise oben).
**3 -** Dass du sicher bist, dass die Person die Widerrufsdatei für ihr Duniter-Konto wirklich erzeugt, heruntergeladen und abgespeichert hat, die es im Zweifelsfall ermöglicht, die Mitgliedschaft zurückzuziehen (im Fall eines Konto-Diebstahls, Änderungen der Benutzerkennung, eines ungerechtfertigt angelegten Kontos etc.).
**4a -** Die Person im echten Leben zu treffen, um sicherzustellen, dass es diese Person ist, die das betreffende Konto (öffentlicher Schlüssel – entsprechend Der Kontonummer) handhaben kann.
**4b -** Oder verifiziere diese Person <-> den öffentlichen Schlüssel, indem du sie auf verschiedenen Wegen kontaktierst, per Post, soziale Netzwerke, Foren, Email, Videomeeting oder telefonisch. Es ist sicherer auf verschiedenen Wegen den Kontakt aufzunehmen, da man E-Mail-Konten oder ein Forums-Konto leichter hacken kann, als es für alle Kontaktmöglichkeiten möglich ist, auch ein animiertes Video mit einer animierten Stimme sind möglich.
Auf jeden Fall ist **4a** zu bevorzugen vor **4b**. Demgegenüber sind die unter **1**, **2** und **3** gemachten Anmerkungen auf jeden Fall obligatorisch.
**Regeln des Vertrauensnetzwerkes (WoT) in Kürze:**
Jedes Mitglied hat einen Vorrat von 100 gültigen Zertifizierungen, die nur einzeln alle 5 Tage vergeben (bzw. validiert) werden können.
Gültig für 2 Monate, wird die Zertifizierung eines neuen Mitglieds nur dann umgesetzt, wenn mindestens 4 weitere Zertifizierungen in dieser Zeitspanne erfolgen. Andernfalls muss der Mitgliedsantrag erneut gestellt werden.
Um ein neues Mitglied des Vertrauensnetzwerks (Ğ1 WoT) zu werden, müssen 5 Zertifizierungen erteilt werden, die einen Wert für die Berechnung der Distanzregel von mehr als 80% ergeben (Anteil der in 5 oder weniger Schritten erreichbaren Referenzmitglieder an allen Referenzmitgliedern).
Ein Mitglied des Ğ1 WoT ist Referent, wenn es mindestens Y[N] Zertifizierungen erhalten und vergeben hat, wobei N die Anzahl aller Mitglieder des WoT ist und Y[N] der Wert für "Obere Schranke(N ^ (1/5))".
Beispiele für Mitgliederzahlen:
* Für 1024 < N ≤ 3125 ergeben sich Y [N] = 5
* für 7776 < N ≤ 16807 ergeben sich Y [N] = 7
* Für 59049 < N ≤ 100 000 ergeben sich Y [N] = 10
Wenn ein neues Mitglied Teil des Ğ1 WoT geworden ist, sind seine Zertifizierungen für 2 Jahre gültig.
Um Mitglied zu bleiben, muss die Zustimmung zu dieser Lizenz regelmäßig (alle 12 Monate) mit dem privaten Schlüssel (Zugangsdaten) erneuert werden. Und es muss sichergestellt werden, dass nach 2 Jahren mindestens 5 gültige Zertifizierungen vorliegen.
Ğ1 Währung
----------
Die Ğ1 Schöpfung geschieht über eine "Universelle Dividende" für jedes menschliche Mitglied in der Form:
* 1 UD pro Person und Tag
Die Menge an UD ist gleichbleibend bis zum nächsten Stichtag (Halbjahresende / Tag- und Nachtgleiche), wenn die UD neu berechnet wird. Dazu wird folgende Formel verwendet:
* UDtag(nächster Stichtag) = UDtag(Stichtag) + c² (M/N)(Stichtag) / (182,625 Tage)
Mit den Parametern:
* c = 4,88% / Stichtag
* UD(0) = 10,00 Ğ1
Und als Variablen:
* _M_ Die gesamte Geldmenge zum Stichtag
* _N_ die Anzahl von Mitgliedern am Stichtag
Ğ1 Software und die Ğ1 Lizenz
-----------------------------
Die verschiedenen Programme zum Umgang mit der Ğ1 Währung müssen jeweils mit einer Kopie dieser Lizenz und allen technischen Parametern der Ğ1 Währung und des Ğ1 Vertrauensnetzwerks übermittelt werden, so wie sie im ersten Block 0 des Ğ1 festgelegt wurden.
Um die technischen Details besser zu verstehen, kann man den Programmcode von Duniter untersuchen, welches eine freie Software ist. Ebenso kann man die Daten der Ğ1 Blockchain untersuchen, indem man sie über eine beliebige Duniter-Instanz oder einen Ğ1 Knoten bezieht.
Weitere Informationen sind über die Webseite des Duniter Teams [https://www.duniter.org](https://www.duniter.org) verfügbar.
License Ğ1 - v0.2.9
===================
:Date: 2017-08-21 16:59
:Modified: 2021-04-20 21:00
**Currency licensing and liability commitment.**
Any certification process of a new member of the Ğ1 currency must come beforehand with the transmission of this license. The certifier must ensure that the license has been studied, understood and accepted by the person who will be certified.
Any meeting event about the Ḡ1 should include the acknowledgment of this license, which can be read out loud, or given by any means.
Ğ1 Web of Trust (Ğ1 WoT)
------------------------
**Warning:** Certifying is not only ensuring you have met the person, it is ensuring the Ğ1 community that you know the person to be certified well enough and that you will be able to reach them easily, and be able to identify duplicate accounts by a person certified by yourself, or other types of problems (disappearance…) by performing cross-checks that will reveal the problem if necessary.
**Highly recommended advices**
Knowing a person well implies that you are able to contact them in several different ways (physical, electronic, other…) but also that you also know several people who know them just as well and are therefore also able to contact them in the same way. Especially, if you are not familiar with any of its other certifiers, this is a strong indication that you do not know the person well and a certification made in this context triggers an alert to the entire Ğ1 community. In case of insufficient knowledge, it is advisable not to certify.
Never certify alone, but at least with another member of the Web of Trust to avoid any software misuse. In case of any error, immediately notify other community member of the Ğ1 WoT.
Before any certification, make sure to check if their account (whether it is being validated or already a member) has already received one or more certifications. If necessary, ask for information to contact these other certifiers in order to check together that you know the person concerned by the creation of the new account, as well as the corresponding public key.
Also, verify that the person to be certified masters they account operations: a good way to verify it is to transfer some Ğ1 to the target account, and to ask then a refund to your own account. This operation will assure you that the certified person masters its private key.
Verify that your contacts have studied and understood an up-to-date version of the license.
If you are aware that an effective certifier or a future certifier of an account does not know the account owner, please alert immediately some
experts of the subject among your contacts in the Ğ1 WoT, for the procedure to be verified by the Ğ1 WoT members.
When you are a member of Ğ1 and you are about to certify a new account identified by a public key:
**You have to make sure:**
1°) To know the individual who manages the public key well enough (not only an acquaintance). Please read the above advices about knowing "well enough".
2°) To personally check with the person to be certified that the public key is correct.
3 °) To have verified with the person concerned that he has indeed generated his Duniter account revocation document, which enables the deactivation of the member account if necessary. (in case of account theft, ID change, incorrectly created account, loss of password, etc.).
4a°) To meet the individual to be certified in person, to check his identity.
4b°) Or to Remotely verify the public person / key link by contacting the person via several different means of communication, such as social network + forum + mail + video conference + phone (acknowledge voice).
Indeed it is possible to hack an email account or a forum account, but it is much harder to hack four distinct means of communication, and mimic the appearance (video) as well as the voice of the person.
However, the 4a° is preferable to 4b°, whereas the 1°, 2° and 3° are always required in all cases.
**Brief WoT rules:**
Each member has a stock of 100 possible certifications, which can only be issued at the rate of 1 certification / 5 days.
A certification for a new member is valid for 2 months, and will be permanently accepted if the certified account receives at least 4 other available certifications during these 2 months, otherwise the certification process must be started over.
To become a new member of the Ğ1 WoT, one must be certified 5 times and be at a distance < 5 of 80% of the WoT sentinels.
A member of the Ğ1 WoT is a sentinel when he has received and issued at least Y [N] certifications where N is the number of members of the WoT and Y [N] = ceiling N ^ (1/5). Examples:
* For 1024 < N ≤ 3125 we have Y [N] = 5
* For 7776 < N ≤ 16807 we have Y [N] = 7
* For 59049 < N ≤ 100 000 we have Y [N] = 10
Once the new member is part of the Ğ1 WoT, his certifications remain valid for 2 years.
To remain a member, you must renew your membership regularly with your private key (at least every 12 months) and make sure you have at least 5 valid certifications after 2 years.
The Ğ1 Currency
---------------
Units of Ğ1 are produced by a Universal Dividend (DU) for any human member, which is of the form:
* 1 DU per person per day
The amount of DU is identical each day until the next equinox, where the DU will then be reevaluated according to the formula:
* DU <sub>day</sub> (the following equinox) = DU <day>(equinox) + c² (M / N) (equinox) / (15778800 seconds)</day>
With as parameters:
* c = 4.88% / equinox
* UD (0) = 10.00 Ğ1
And as variables:
* _M_ the total monetary mass at the equinox
* _N_ the number of members at the equinox
Ğ1 Software and Ğ1 license
--------------------------
The Ğ1 software allowing users to manage their use of Ğ1 must transmit this license with the software and all the technical parameters of the Ğ1 currency and Ğ1 WoT which are entered in the initial block 0 of Ğ1.
For more technical details it is possible to read the code of Duniter directly since it is a free software. One can also inspect the data of the Ğ1 blockchain since it is publicly available. You can retrieve it via a Duniter instance, another client or by querying directly a Ğ1 node.
More information on the Duniter Team website [https://www.duniter.org](https://www.duniter.org)
Licenco Ğ1 - v0.2.9
===================
:Date: 2017-04-04 12:59
:Modified: 2019-07-14 12:00
**Licenco de la mono kaj promeso de respondeco.**
Ĉiu atestado de nova membro de Ğ1 devas antaŭe akompaniĝi per transdono de tiu ĉi licenco de la mono Ğ1, pri kiu la atestanto devas certiĝi, ke ĝi estis studita, komprenita kaj akceptita de la persono, kiu estos atestita.
Ĉiu okazo de renkontiĝo rilate al Ğ1 devus akompaniĝi per transdono de tiu ĉi licenco, kiu povas esti laŭte legata, kaj transdonita ĉiamaniere.
Reto de Fido Ğ1 (RdF Ğ1)
------------------------------
**Averto:** Atesti ne estas nur certiĝi, ke vi renkontis la personon, tio estas certigi al la komunumo Ğ1, ke vi sufiĉe bone konas la atestitan personon, kaj ke vi tiel scipovos facile kontakti lin/ŝin, kaj kapablos malkovri duoblan konton kreitan de persono atestita de vi mem, aŭ alitipajn problemojn (malapero...), farante komparajn kontrolojn, kiuj eventuale ebligos elmontri la problemon.
**Ege rekomendindaj konsiloj**
Bone koni personon supozigas, ke vi scipovas kontakti lin/ŝin per pluraj rimedoj malsamaj (fizika, elektronika, alitipa...), sed ankaŭ ke vi konas plurajn personojn, kiuj konas lin/ŝin same bone, kaj kiuj ankaŭ scipovas kontakti lin/ŝin simile. Aparte se vi ne bone konas neniun el ties aliaj atestantoj, tio estas forta indiko, ke vi ne bone konas la personon, kaj tia atestaĵo ekas signalon al la tuta komunumo Ğ1. Kaze de nesufiĉa kono, necesas nepre ne atesti.
Neniam atestu sola, sed akompanata de almenaŭ unu alia membro de la RdF Ğ1 por eviti ĉian manipulan eraron. Kaze de eraro, tuj avertu aliajn membrojn de la RdF Ğ1.
Antaŭ ĉiu atestado, nepre kontrolu, ke tiu konto (ĉu ĝi estas validigota aŭ jam membro) jam ricevis unu aŭ plurajn atestaĵojn. Laŭnecese petu informojn por konkakti ties aliajn atestintojn por kune kontroli, ke vi bone konas la personon, kiu kreis la novan konton, kaj ankaŭ ties publikan ŝlosilon.
Kontrolu ke la atestoto bone regas sian konton: bona rimedo por kontroli tion estas sendi kelkajn Ğ1 al la celata konto, kaj poste peti resendon al via propra konto. Tio certigas, ke la atestoto bone regas sian privatan ŝlosilon.
Kontrolu ke viaj kontaktoj bone studis kaj komprenis la licencon Ğ1 ĝisdatan.
Se vi ekkonscias, ke efektiva aŭ ebla atestanto de la koncernata konto ne konas la koncernatan personon, tuj avertu fakulojn pri la temo inter viaj konatoj de la RdF Ğ1, por ke la valid-procezo estu kontrolata de la RdF Ğ1.
Kiam vi estas membro de la RdF Ğ1, kaj ke vi estas atestonta novan konton:
**Vi certiĝis:**
1°) ke vi sufiĉe bone konas (ne nur "vide" konas) la personon, kiu deklaras regi tiun publikan ŝlosilon (novan konton). Vidu la ĉi-suprajn ege rekomendindajn konsilojn por certiĝi "bone koni".
2°) ke vi persone kontrolis kun li/ŝi, ke temas ja pri tiu publika ŝlosilo, kiun vi estas atestonta (vidu ĉi-suprajn konsilojn).
3°) ke vi bone kontrolis kun la koncernata persono, ke li/ŝi ja kreis sian Duniter-dokumenton pri konto-nuligo, kiu laŭbezone ebligos al li/ŝi malaktivigi sian membro-statuson (kaze de konto-ŝtelo, ID-ŝanĝo, konto erare kreita, ktp.).
4a°) ke vi fizike renkontis la personon por certiĝi, ke ja lin/ŝin vi bone konas, kaj ke ja li/ŝi uzas tiun publikan ŝlosilon.
4b°) aŭ ke vi distance kontrolis la ligon persono / publik-ŝlosilo kontaktante la personon per pluraj komunikiloj malsamaj, kiel paper-poŝto + sociaj retoj + forumo + retpoŝto + video-konferenco + telefono (rekoni la voĉon). Ĉar se oni povas fiuzi retadreson aŭ forum-konton, estos multe pli malfacile fiuzi kvar malsamajn komunikilojn, kaj imiti la aspekton (vidan) kaj plie la voĉon de la persono.
La 4a°) tamen preferindas al la 4b°), dum la punktoj 1°) 2°) kaj 3°) estas antaŭ ĉio nepraj.
**Resumitaj reguloj de la RdF:**
Ĉiu membro havas rezervon da 100 eblaj atestaĵoj, kiujn li/ŝi povas sendi nur po unu ĉiun kvinan tagon.
Valida 2 monatojn, atestaĵo por nova membro estas definitive aprobita nur se la atestito havas almenaŭ 4 aliajn atestaĵojn fine de tiuj 2 monatoj, alie la enir-procezo devos esti rekomencita.
Por fariĝi nova membro de la RdF Ğ1, necesas do akiri 5 atestaĵojn kaj troviĝi je distanco <= 5 paŝoj de 80% el la referencaj membroj de la RdF.
Membro de la RdF Ğ1 estas referenca membro, kiam li/ŝi ricevis kaj sendis almenaŭ Y[N] atestaĵojn, kie N estas la nombro de membroj de la RdF kaj Y[N] = plafono N^(1/5). Ekzemploj:
* por 1024 < N ≤ 3125 oni havas Y[N] = 5
* por 7776 < N ≤ 16807 oni havas Y[N] = 7
* por 59049 < N ≤ 100 000 oni havas Y[N] = 10
Ekde kiam la nova membro partoprenas en la RdF Ğ1, ties atestaĵoj restas validaj 2 jarojn.
Por resti membro necesas redoni regule sian konsenton per sia privata ŝlosilo (ĉiun 12-an monaton) kaj certiĝi daŭre havi almenaŭ 5 atestaĵojn validajn post la 2 jaroj.
Mono Ğ1
----------
Ğ1 produktiĝas per Universala Dividendo (UD) por ĉiu homa estaĵo membro de la Reto de Fido Ğ1, laŭ la formo:
* po 1 UD por ĉiu persono ĉiutage
**Kodo de la mono Ğ1**
La sumo en Ğ1 de la UD samas ĉiutage ĝis la venonta ekvinokso, kiam la UD estos tiam revalorigita laŭ la formulo (kun 1 tago = 86 400 sekundoj):
* UDtago(sekvanta ekvinokso) = UDtago(ekvinokso) + c² (M/N)(ekvinokso) / (182,625 tagoj)
kun kiel parametroj:
* c = 4,88% / ekvinokso
* UD(0) = 10,00 Ğ1
kaj kiel variabloj:
* *M* la ĉioma mona maso je la ekvinokso
* *N* la nombro de membroj je la ekvinokso
Programoj Ğ1 kaj licenco Ğ1
--------------------------
La programoj Ğ1, kiuj ebligas al la uzantoj mastrumi ties uzon de Ğ1, devas transdoni tiun licencon kun la programo, kaj ankaŭ la aron de la teknikaj parametroj de la mono Ğ1 kaj de la RdF Ğ1, kiu estas enskribita en la bloko 0 de Ğ1. Programo, kiu ne konformiĝus al tiuj devigoj de la licenco, ne estus kongrua kun Ğ1.
Por pli da precizigoj pri la teknikaj detaloj, eblas rekte konsulti la kodon de Duniter, kiu estas libera programo, kaj ankaŭ la datenojn de la blokĉeno Ğ1 ekhavante ilin tra ekzemplero (aŭ nodo) Duniter Ğ1.
Pli da informoj ĉe la retejo de la teamo Duniter https://www.duniter.org
Licencia Ğ1 - v0.2.9
====================
:Date: 2017-04-04 12:59
:Modified: 2023-01-01 18:33
**Licencia de la moneda y compromiso de responsabilidad.**
Cualquier certificación de nueva membresía de Ğ1 debe ir primero acompañada por la transmisión de esta licencia de moneda Ğ1 cuyo certificador debe asegurar que ha sido estudiada, entendida y aceptada por la persona que será certificada.
Cualquier evento de encuentro relacionado con Ğ1 debe ir acompañado de la transmisión de esta licencia, que puede leerse en voz alta y transmitirse por cualquier medio.
Red de confianza Ğ1 (RdC Ğ1)
------------------------------
** Aviso de advertencia :** Certificar no significa que simplemente has visto físicamente a la persona candidata. Es asegurar a la comunidad Ğ1 que la conoces lo suficientemente bien y que sabrás cómo contactarla y localizarla fácilmente, ser capaz de identificar una posible cuenta falsa o duplicada realizada por alguien que has certificado, u otro tipo de problema, efectuando verificaciones con la comunidad que detecten el problema. La seguridad de la Red de Confianza es descentralizada.
**Consejos fuertemente recomendados**
Conocer bien a una persona significa que puedes comunicarte con ella por varios medios distintos (físicos, electrónicos, etc ...) pero también que conoces a varias personas que también la conocen bien y, por lo tanto, pueden contactar con ella igualmente. Además si no conoces bien a nadie de quienes ya le han certificado, es una clara indicación de que no conoces bien a la persona; una certificación de este tipo provoca una alerta hacia toda la comunidad Ğ1. En caso de conocimiento insuficiente, es importante NO certificar.
Nunca certifiques solo/a, sino acompáñate por al menos otro/a miembro de la RdC Ğ1 para evitar cualquier error de manejo. En caso de error, advierte a quienes ya son miembros de la RdC Ğ1 inmediatamente.
Antes de cualquier certificación, asegúrate de verificar si su cuenta (tanto si es nueva candidatura o ya miembro) ha recibido ya una o más certificaciones. Si es necesario, solicite información para ponerte en contacto con quienes ya le hayan certificado para verificar juntos/as que conocéis bien la persona en cuestión concerniente, así como su llave pública correspondiente.
Comprueba que la persona a ser certificada domina bien el manejo de su cuenta: una buena manera de comprobar esto es transferir unas Ğ1 a la cuenta destino, y luego pedir la devolución a tu propia cuenta. Esto asegura el buen manejo por quien va a ser certificado, de su llave privada.
Comprueba que tus contactos hayan estudiado y comprendido la licencia Ğ1 actualizada.
Si te percatas de que un/a certificador/a real o potencial de la cuenta candidata no conoce a la persona interesada, avisa inmediatamente a quien tenga experiencia en el tema de tus contactos en la RdC Ğ1, para que la RdC Ğ1 verifique el proceso de validación.
Cuando eres miembro de la RdC Ğ1 y estás a punto de certificar una cuenta:
** Estás seguro de: **
1°) Conocer suficientemente bien a quien declara poseer esta llave pública (cuenta candidata a miembro). Lea los consejos fuertemente recomendados más arriba para asegurarte de que la "conoces bien".
2°) Haber comprobado personalmente con esa persona de que se trata de esa llave pública que está a punto de certificar.
3°) Haber verificado con la persona interesada, que ha generado y guardado su documento o archivo de revocación de cuenta Duniter que le permitirá, si es necesario, desactivar su estado de miembro y cocreación (en caso de robo de las contraseñas, cambio de seudónimo, cuenta creada incorrectamente, etc.).
4a°) Para verificar el paso 2, para asegurarte de que la persona humana que conoces bien posee esa llave pública, es recomendable hacer esa validación in situ físicamente.
4b°) O bien se puede realizar la validación de forma remota de la llave pública, comunicándola por diferentes medios, como correo ordinario, electrónico, redes sociales, foro, videoconferencia, llamada telefónica (reconociendo la voz). Si alguien hackeara una cuenta de correo electrónico o una cuenta en un foro, es mucho más difícil imaginar que pueda hackear cuatro medios de comunicación separados, e imitar la apariencia (vídeo) e incluso la voz de alguien.
La 4a° es preferible a la 4b° mientras que los puntos 1°, 2° y 3° son ante todo indispensables.
**Reglas abreviadas de la RdC :**
Cada miembro tiene una reserva de 100 certificaciones posibles, que solo pueden hacerse efectivas a razón de 1 certificación cada 5 días.
Válida durante 2 meses, una certificación se toma en consideración definitivamente para una nueva candidatura de membresía si esta persona recibe al menos otras 4 certificaciones que cumplen la regla de distancia durante esos 2 meses, de lo contrario, el proceso de candidatura deberá reiniciarse sin perder acceso a la cuenta.
Para convertirse en nuevo/a miembro de la RdC Ğ1 es necesario obtener 5 certificaciones y estar a una distancia de <= 5 pasos con como mínimo un 80% del total de miembros referentes de la RdC.
Alguien es miembro referente de la RdC Ğ1 cuando ha recibido y también emitido al menos Y[N] certificaciones donde N es el total de miembros en la RdC e Y[N] = techo N^(1/5). Ejemplos:
* Para 1024 < N ≤ 3125 se obtiene que Y[N] = 5
* Para 7776 < N ≤ 16807 se obtiene que Y[N] = 7
* para 59049 < N ≤ 100.000 se obtiene que Y[N] = 10
Una vez que alguien es nuevo/a miembro de la RdC Ğ1, sus certificaciones serán válidas durante 2 años.
Para seguir siendo miembro, se debe renovar el acuerdo regularmente mediante la llave privada (cada 12 meses) y asegurarse de que siempre se tenga al menos 5 certificaciones válidas después de los 2 años.
Moneda Ğ1
----------
Ğ1 se genera a través de un Dividendo Universal (DU) para cada ser humano miembro de la Red de Confianza Ğ1, de la siguiente forma:
* 1 DU por persona y por día.
La cantidad en Ğ1 del DU diario es idéntica hasta pasado cada equinoccio(cada 6 meses) cuando se re-evaluará el DU según la fórmula :
* DU diario (próximo equinoccio) = DU diario (equinoccio) + c² (M/N)(equinoccio) / (15778800 segundos)
Teniendo como constantes:
* c = 4,88% / equinoccio
* DU(0) = 10,00 Ğ1
Y como variables :
* *M* la masa monetaria total en el equinoccio
* *N* el número de miembros el día del equinoccio
Software Ğ1 y licencia Ğ1
--------------------------
El software Ğ1 que permita a los usuarios administrar su uso de Ğ1 debe transmitir esta licencia y todos los parámetros técnicos de la moneda Ğ1 y de la RdC Ğ1 que han sido configurados en el bloque 0 de Ğ1. El software que no cumpla con estas obligaciones de la licencia no es compatible con Ğ1.
Para más detalle en los aspectos técnicos, es posible consultar directamente el código de Duniter, que es un software libre así como los datos de la cadena de bloques (blockchain) Ğ1, recuperándolos a través de una instancia (o nodo) de Duniter Ğ1.
Más información en el sitio web del equipo Duniter https://www.duniter.org
\ No newline at end of file
Licence Ğ1 - v0.2.5
Licence Ğ1 - v0.3.0
===================
:date: 2017-04-04 12:59
:modified: 2018-01-24 19:20
:Date: 2017-04-04 12:59
:Modified: 2025-02-11 21:30
**Licence de la monnaie et engagement de responsabilité.**
Toute opération de certification d'un nouveau membre de Ğ1 doit préalablement s'accompagner de la transmission de cette licence de la monnaie Ğ1 dont le certificateur doit s'assurer qu'elle a été étudiée, comprise et acceptée par la personne qui sera certifiée.
Toute opération de certification d'un nouveau membre de la monnaie Ğ1 doit préalablement s'accompagner de la transmission de cette licence de la monnaie Ğ1 dont le certificateur doit s'assurer qu'elle a été étudiée, comprise et acceptée par la personne qui sera certifiée.
Tout événement de rencontre concernant Ğ1 devrait s'accompagner de la transmission de cette licence, qui peut être lue à haute voix, et transmise par tout moyen.
Tout événement de rencontre concernant la Ğ1 devrait s'accompagner de la transmission de cette licence, qui peut être lue à haute voix, et transmise par tout moyen.
Toile de confiance Ğ1 (TdC Ğ1)
------------------------------
**Avertissement :** Certifier n'est pas uniquement s'assurer que vous avez rencontré la personne, c'est assurer à la communauté Ğ1 que vous connaissez suffisamment bien la personne certifiée et que vous saurez ainsi la contacter facilement, et être en mesure de repérer un double compte effectué par une personne certifiée par vous-même, ou d'autres types de problèmes (disparition...), en effectuant des recoupements qui permettront de révéler le problème le cas échéant.
**Avertissement :** Certifier n'est pas uniquement s'assurer que vous avez rencontré la personne, c'est assurer à la communauté Ğ1 que vous connaissez suffisamment bien la personne que vous vous apprêtez à certifier et que vous saurez ainsi la contacter facilement, et être en mesure de repérer un double compte effectué par une personne certifiée par vous-même, ou d'autres types de problèmes (disparition), en effectuant des recoupements qui permettront de révéler le problème le cas échéant.
**Conseils fortement recommandés**
Bien connaître une personne suppose que vous êtes en mesure de la contacter par plusieurs moyens différents (physique, électronique, autre…) mais aussi que vous connaissez aussi plusieurs personnes qui la connaissent tout aussi bien et sont donc aussi en mesure de la contacter de même. Notamment si vous ne connaissez pas bien aucun de ses autres certificateurs c'est une indication forte que vous ne connaissez pas bien la personne et une certification de ce type déclenche une alerte vers toute la communauté Ğ1. En cas de connaissance insuffisante il convient de ne surtout pas certifier.
Ne certifiez jamais seul, mais accompagné d'au moins un autre membre de la TdC Ğ1 afin d'éviter toute erreur de manipulation. En cas d'erreur, prévenez immédiatement d'autres membres de la TdC Ğ1.
Avant toute certification, assurez vous de vérifier si son compte (qu'il soit en cours de validation ou déjà membre) a déjà reçu une ou plusieurs certifications. Le cas échéant demandez des informations pour entrer en contact avec ces autres certifieurs afin de vérifier ensemble que vous connaissez bien la personne concernée par la création du nouveau compte, ainsi que la clé publique correspondante.
Avant toute certification, assurez-vous de vérifier si son compte (qu'il soit en cours de validation ou déjà membre) a déjà reçu une ou plusieurs certifications. Le cas échéant demandez des informations pour entrer en contact avec ses autres certificateurs afin de vérifier ensemble que vous connaissez bien la personne concernée par la création du nouveau compte, ainsi que la clé publique correspondante.
Vérifiez que le futur certifié maîtrise bien son compte : un bon moyen de vérifier cela est de transférer quelques Ğ1 vers le compte cible, et de demander ensuite un renvoi vers votre propre compte, cela assure de la bonne maîtrise par le futur certifié de sa clé privée.
Vérifiez que vos contacts ont bien étudié et compris la licence Ğ1 à jour.
Si vous vous rendez compte qu'un certifieur effectif ou potentiel du compte concerné ne connaît pas la personne concernée, alertez immédiatement des experts du sujet au sein de vos connaissance de la TdC Ğ1, afin que la procédure de validation soit vérifiée par la TdC Ğ1.
Si vous vous rendez compte qu'un certificateur effectif ou potentiel du compte concerné ne connaît pas la personne concernée, alertez immédiatement des experts du sujet au sein de vos connaissances de la TdC Ğ1, afin que la procédure de validation soit vérifiée par la TdC Ğ1.
Lorsque vous êtes membre de la TdC Ğ1 et que vous vous apprêtez à certifier un nouveau compte :
**Vous êtes vous assuré :**
1°) D'avoir bien vérifié avec la personne concernée qu'elle a bien généré son document Duniter de révocation de compte, qui lui permettra le cas échéant de pouvoir annuler son compte (cas d'un vol de compte, d'un changement de ID, d'un compte créé à tort etc.).
1°) De suffisamment bien connaître (pas seulement de la connaître "de visu") la personne qui déclare gérer cette clé publique (nouveau compte). Voir les conseils fortement recommandés ci-dessus pour s'assurer de "bien connaître".
2°) D'avoir personnellement vérifié avec elle qu'il s'agit bien de cette clé publique que vous vous apprêtez à certifier (voir conseils ci-dessus).
2°) De suffisamment bien connaître (pas seulement de la connaître "de visu") la personne qui déclare gérer cette clé publique (nouveau compte) et d'avoir personnellement vérifié avec elle qu'il s'agit bien de cette clé publique que vous vous apprêtez à certifier (voir les conseils fortement recommandés ci-dessus pour s'assurer de "bien connaître").
3°) D'avoir bien vérifié avec la personne concernée qu'elle a bien généré son document Duniter de révocation de compte qui lui permettra le cas échéant de pouvoir désactiver son statut de membre (cas d'un vol de compte, d'un changement de ID, d'un compte créé à tort etc.).
3a°) De la rencontrer physiquement pour vous assurer que c'est bien cette personne que vous connaissez qui gère cette clé publique.
4a°) De rencontrer la personne physiquement pour vous assurer que c'est bien elle que vous connaissez bien et qui gère cette clé publique.
3b°) Ou bien de vérifer à distance le lien personne / clé publique en contactant la personne par plusieurs moyens de communication différents, comme réseau social + forum + mail + vidéo conférence + téléphone (reconnaître la voix). Car si l'on peut pirater un compte mail ou un compte forum, il sera bien plus difficile d'imaginer pirater quatre moyens de communication distincts, et imiter l'apparence (vidéo) ainsi que la voix de la personne en plus.
4b°) Ou bien de vérifier à distance le lien personne / clé publique en contactant la personne par plusieurs moyens de communication différents, comme courrier papier + réseau social + forum + mail + vidéo conférence + téléphone (reconnaître la voix). Car si l'on peut pirater un compte mail ou un compte forum, il sera bien plus difficile d'imaginer pirater quatre moyens de communication distincts, et imiter l'apparence (vidéo) ainsi que la voix de la personne en plus.
Le 3a°) restant toutefois préférable au 3b°), tandis que le 1°) et 2°) est toujours indispensable dans tous les cas.
Le 4a°) restant toutefois préférable au 4b°), tandis que les points 1°) 2°) et 3°) sont préalablement indispensables.
**Règles abrégées de la TdC :**
......@@ -45,7 +52,7 @@ Chaque membre a un stock de 100 certifications possibles, qu'il ne peut émettre
Valable 2 mois, une certification pour un nouveau membre n'est définitivement adoptée que si le certifié possède au moins 4 autres certifications au bout de ces 2 mois, sinon le processus d'entrée devra être relancé.
Pour devenir un nouveau membre de la TdC Ğ1 il faut donc obtenir 5 certifications et ne pas se trouver à une distance < 5 de 80% des membres référents de la TdC.
Pour devenir un nouveau membre de la TdC Ğ1 il faut donc obtenir 5 certifications et se trouver à une distance <= à 5 pas de 80% des membres référents de la TdC.
Un membre de la TdC Ğ1 est membre référent lorsqu'il a reçu et émis au moins Y[N] certifications où N est le nombre de membres de la TdC et Y[N] = plafond N^(1/5). Exemples :
......@@ -83,8 +90,38 @@ Et comme variables :
Logiciels Ğ1 et licence Ğ1
--------------------------
Les logiciels Ğ1 permettant aux utilisateurs de gérer leur utilisation de Ğ1 doivent transmettre cette licence avec le logiciel ainsi que l'ensemble des paramètres techniques de la monnaie Ğ1 et de la TdC Ğ1 qui sont inscrits dans le bloc 0 de Ğ1.
Les logiciels Ğ1 permettant aux utilisateurs de gérer leur utilisation de Ğ1 doivent transmettre cette licence avec le logiciel ainsi que l'ensemble des paramètres techniques de la monnaie Ğ1 et de la TdC Ğ1 qui sont inscrits dans le bloc 0 de Ğ1. Un logiciel qui ne remplirait pas ces obligations de la licence n'est pas compatible Ğ1.
Pour plus de précisions dans les détails techniques il est possible de consulter directement le code de Duniter qui est un logiciel libre ansi que les données de la blockchain Ğ1 en la récupérant via une instance (ou noeud) Duniter Ğ1.
Pour plus de précisions dans les détails techniques il est possible de consulter directement le code de Duniter qui est un logiciel libre ainsi que les données de la blockchain Ğ1 en les récupérant via une instance (ou nœud) Duniter Ğ1.
Plus d'informations sur le site de l'équipe Duniter https://www.duniter.org
Règles de modifications du présent document
-------------------------------------------
**Note introductive :**
Les personnes qui émettent des propositions, qui les soutiennent ou qui les votent doivent être membres de la TDC.
**Processus :**
1. Étape optionelle : Il est possible de partager son processus d'élaboration d'une proposition sur les plateformes de communication de la Ǧ1 (forum Monnaie Libre, forum Duniter, Télégram monnaie libre...).
2. Quand une proposition est considérée comme finalisée, il faut :
- Créer un compte portefeuille pour chaque option : un "pour", un "contre".
- Créer dans la catégorie dédiée du forum monnaie libre un sujet reprenant la proposition finale suivie des clefs publiques associées à chaque option.
- Toute modification (réédition) du texte de la proposition finale entraine l'annulation du vote.
3. Les personnes votantes sont invitées à se prononcer par virement depuis leur compte membre vers le compte associé à leur choix de vote (le montant est ignoré). Si un compte membre émet plusieurs virements vers un même compte, un seul vote sera comptabilisé. Des virements du même compte membre vers les deux comptes ("pour" et "contre") sont considérés comme nuls.
4. 30 jours après publication de la proposition finale sur le forum les résultats du vote sont dépouillés :
- Si la proposition a récolté au moins 20 votes/virements "pour" et aucun vote "contre", elle est adoptée.
- Pour chaque vote "contre", 5 votes "pour" supplémentaires sont nécessaires pour que la proposition puisse être adoptée. (25 "pour" si 1 "contre", 30 "pour" si 2 "contre"...)
- Si les conditions d'adoption ne sont pas réunies, la proposition est rejetée.
Une fois le vote clos, les Ǧ1 versées à l'occasion des votes peuvent être reversées ou non à une caisse (Mégadon, soutiens aux devs, remuniter...). Cela n'impacte pas la validité du vote.
Si vous avez besoin d'aide pour suivre ce processus de mise au vote, rendez-vous sur :
`Comment mettre au vote une proposition d'évolution ? <https://forum.monnaie-libre.fr/t/a-propos-de-la-categorie-modifications-de-la-licence/31065>`_
Licenza Ğ1 - v0.2.9
===================
:Date: 2017-04-04 12:59
:Modified: 2019-04-16 22:30
**Licenza d'uso della moneta e presa di responsabilità**
Ogni operazione di certificazione di un nuovo membro della Ğ1 deve essere prima accompagnata dalla trasmissione di questa licenza d'uso della moneta libera Ğ1, la quale il certificatore deve assicurarsi sia stata studiata, compresa e accettata dalla persona.
Ogni evento riguardante la Ğ1 deve essere accompagnato dalla trasmissione di questa licenza, che può essere letta ad alta voce e trasmessa in ogni forma.
Rete di fiducia Ğ1 (RdF - Ğ1)
------------------------------
**Attenzione:** certificare non significa solo assicurarsi di aver incontrato fisicamente la persona, bensì è assicurare alla comunità Ğ1 che si conosce la persona certificata abbastanza bene da poterla contattare facilmente, e di essere in grado di individuare un conto duplicato fatto da una persona che si è certificata, o altri tipi di problemi (morte...), facendo un controllo incrociato che rivelerà il problema se necessario.
**Consigli fortemente raccomandati**
Conoscere bene una persona implica che si è in grado di contattarla con diversi mezzi (fisici, elettronici, altro…), ma anche che si conoscono diverse persone che la conoscono altrettanto bene e che quindi sono anche loro in grado di contattarla allo stesso modo; in particolare, se non si conosce bene qualcuno tra coloro che l’hanno già certificata, è una chiara indicazione che non si conosce in modo sufficiente questa persona, e una certificazione di questo tipo fa scattare un allarme in tutta la comunità Ğ1. In caso di conoscenza insufficiente, è importante NON certificare.
Non certificare mai da soli, ma insieme almeno ad un altro membro della RdF Ğ1, per evitare errori nel processo. In caso di errore, si devono avvisare immediatamente altri membri della RdF Ğ1.
Prima di ogni certificazione, bisogna assicurarsi di controllare se il conto della persona candidata (sia come nuovo richiedente sia come già membro) non abbia già ricevuto una o più certificazioni. Se necessario, chiedete informazioni per contattare coloro che lo hanno già certificato in precedenza in modo da verificare insieme di conoscere bene la persona in questione, così come la sua chiave pubblica corrispondente.
Verificate che il candidato membro abbia un buon controllo nella gestione del suo conto: un buon modo per verificarlo è quello di trasferire alcune Ğ1 sul conto di destinazione, e di rimando chiedere di effettuare un piccolo rimborso sul proprio conto. Questo assicura che il candidato abbia una buona padronanza della sua chiave privata.
Controllate che i vostri contatti abbiano studiato e compreso questa Licenza aggiornata della Ğ1.
Se ci si accerta che un certificatore effettivo o potenziale del conto del candidato non conosce il candidato in questione, é necessario avvertire immediatamente chiunque abbia esperienza in materia, tra i vostri contatti nella RdF Ğ1, in modo che la RdF Ğ1 possa verificare ilprocesso di convalida.
Nel momento in cui, in qualità di membri della RdF G1, ci si accinge a certificare un nuovo conto,
**bisogna essere certi:**
1°) di conoscere sufficientemente bene (non solamente di vista) la persona che dichiara di saper gestire questa chiave pubblica (nuovo conto). Leggere i consigli fortemente raccomandati qui sopra per essere sicuri di "conoscerla bene".
2°) di verificare personalmente con il candidato che sia questa la sua chiave pubblica che si sta per certificare (leggere i suggerimenti sopra).
3°) che la persona interessata abbia generato il suo documento Duniter di revoca del conto che gli permetterà, se necessario, di disattivare il suo status di membro (in caso di furto del conto, cambio di identità, conto creato in modo errato, dimenticanza dellechiavi di accesso, ecc.).
4a°) di aver incontrato il candidato di persona per assicurarti che sia la persona fisica che conosci bene e che ha questa chiave pubblica.
4b°) Oppure di aver verificato a distanza la corrispondenza tra la chiave pubblica e la persona (che hai già incontrato fisicamente), utilizzando più di un mezzo di comunicazione, ad esempio posta ordinaria + social network + forum + email + video conferenza + telefono (riconoscimento vocale). Questo perché se si può violare un account di posta elettronica o di un forum, è molto più difficile immaginare di violare quattro mezzi di comunicazione distinti, e imitare l'aspetto (video) e persino la voce della persona fisica .
Tuttavia, 4a) è preferibile a 4b), mentre i punti 1) 2) e 3) sono prioritari ed indispensabili.
**Regole della RdF in breve:**
Ogni membro ha una riserva di 100 certificazioni possibili, che possono essere rilasciate solo al ritmo di 1 certificazione ogni 5 giorni.
Una certificazione per un nuovo membro è valida per 2 mesi ed è ratificata solo se la persona certificata ha almeno altre 4 certificazioni alla fine di questi 2 mesi, altrimenti il processo di accreditamento deve essere riavviato.
Per diventare un nuovo membro della RdF Ğ1, è necessario ottenere 5 certificazioni ed essere ad una distanza massima di 5 passi rispetto all'80% del numero totale dei membri referenti della RdF.
Si definisce membro referente della RdF Ğ1 colui che abbia ricevuto e anche rilasciato almeno Y[N] certificazioni dove N è il numero totale di membri nella RdF e Y[N] = tetto N^(1/5). Esempi:
* Per 1024 < N ≤ 3125 si ottiene Y[N] = 5
* Per 7776 < N ≤ 16807 si ottiene Y[N] = 7
* per 59049 < N ≤ 100.000 si ottiene Y[N] = 10
Una volta diventato membro della RdF Ğ1, le sue certificazioni saranno valide per 2 anni.
Per rimanere membro, è necessario rinnovare regolarmente l'accordo, tramite la chiave privata (ogni 12 mesi) e assicurarsi di avere sempre almeno 5 certificazioni valide dopo i 2 anni.
Moneta Ğ1
---------
La nuova moneta Ğ1 è generata attraverso un Dividendo Universale (DU) per ogni essere umano membro della Rete di Fiducia Ğ1, come segue:
* 1 DU per persona al giorno
**Codice della moneta libera Ğ1**
La quantità in Ğ1 del DU è la stessa ogni giorno fino all'equinozio successivo (ogni 6 mesi), quando il DU sarà rivalutato secondo la formula (1 giorno = 86.400 secondi):
* DU quotidiano (prossimo equinozio) = DU quotidiano (equinozio) + c² (M/N)(equinozio) / (15.778.800 secondi)
Dove i parametri sono:
* c = 4,88% / equinozio
* DU(0) = 10.00 Ğ1
E le variabili sono:
- M La massa monetaria all'equinozio
- N Il numero di membri nel giorno dell'equinozio
Software Ğ1 e licenza Ğ1
------------------------
I software Ğ1 che permettono agli utenti di gestire l'uso della moneta Ğ1 devono trasmettere la presente licenza insieme al software, così come tutti i parametri tecnici della moneta Ğ1 e della RdF Ğ1, che sono registrati nel blocco 0 di Duniter, la blockchain Ğ1.
Il software che non rispetta questi obblighi di licenza non è compatibile con la Ğ1.
Per maggiori dettagli tecnici, è possibile consultare direttamente il codice di Duniter, che è un software libero, così come i dati della blockchain Ğ1, recuperandoli attraverso un'istanza di Duniter o un nodo Ğ1
Licença Ğ1 - v0.2.9
===================
:Date: 2017-04-04 12:59
:Modified: 2019-07-14 12:00
**Licença da moeda e compromisso de responsabilidade.**
Qualquer operação de certificação dum novo membro da Ğ1 deve ser previamente acompanhada pela transmissão desta licença da moeda Ğ1, a qual o/a certificador/a deve garantir que foi estudada, compreendida e aceite pela pessoa que será certificada.
Encoraja-se que qualquer evento de grupo relativo à Ğ1 seja acompanhado por uma transmissão desta licença, que poderá ser lida em voz alta, e transmitida por quaisquer meios.
Rede de confiança Ğ1 (RdC Ğ1)
------------------------------
**Nota de precaução:** Certificarmos alguém não é apenas assegurar-mo-nos que encontrámos a pessoa, é assegurarmos à comunidade Ğ1 que conhecemos suficientemente bem a pessoa a certificar, de modo a conseguirmos contactar a pessoa facilmente, e de termos condições para localizar uma conta em duplicado feita pela pessoa que receberá a nossa certificação, ou outro tipo de problemas (desaparecimento da pessoa…) fazendo despistagens que eventualmente permitirão revelar um problema.
**Conselhos altamente recomendados**
Conhecermos bem uma pessoa pressupõe que seremos capazes de contactá-la por vários meios diferentes (físicos, electrónicos ou outros ...) mas também pressupõe que conhecemos várias pessoas que a conhecem tão bem quanto nós e, portanto, também serão capazes de contactá-la da mesma forma. Em particular, se não conhecermos bem nenhum dos outros certificadores dessa pessoa, há um forte indício de que não conhecemos bem essa pessoa, e uma certificação deste tipo aciona um alerta para toda a comunidade Ğ1. Em caso de conhecimento insuficiente, é fortemente aconselhável não certificarmos.
Nunca certifique alguém sozinho, mas faça-se acompanhar pelo menos por outro membro da RdC Ğ1 para evitar qualquer erro de manipulação. Em caso de erro, avise imediatamente os outros membros da RdC Ğ1.
Antes de qualquer certificação, assegure-se de verificar se a conta dessa pessoa já recebeu uma ou mais certificações (quer esteja em processo de validação ou já seja membro). Eventualmente, peça as informações para entrar em contacto com os outros certificadores, a fim de, juntos, verificarem que conhecem essa pessoa que quer abrir uma nova conta de membro, assim como a chave pública correspondente.
Verifique se o futuro certificado domina a gestão da sua conta: uma boa forma para verificar isto é transferir algumas Ğ1 da sua conta de membro para a conta dessa pessoa, e de seguida, solicitar o retorno do montante para a sua conta de membro… isso garante que o futuro certificado possui um bom domínio da sua chave privada.
Verifique que os seus contactos estudaram e compreenderam a licença Ğ1 em vigor.
Se entender que um certificador real ou potencial de uma determinada conta não conhece a pessoa afecta a essa conta, alerte imediatamente especialistas no assunto dentro dos seus conhecidos na RdC Ğ1, para que o procedimento de validação seja verificado pela RdC Ğ1.
Quando fizer parte dos membros da RdC Ğ1 e estiver prestes a certificar uma nova conta:
**Deverá assegurar-se que:**
1°) Conhece suficientemente bem (não só "de vista") a pessoa que declara gerir a chave pública em questão (nova conta). Veja os conselhos altamente recomendados acima para garantir que “conhece bem a pessoa”.
2°) Já verificou em particular com essa pessoa que a chave pública que está prestes a certificar lhe pertence realmente (veja os conselhos acima).
3°) Já verificou em particular com essa pessoa que o seu documento Duniter de revogação da conta está criado, o que lhe permitirá eventualmente desactivar o seu estatuto de membro (no caso de roubo de uma conta, de uma mudança de identificação, de uma conta criada inadvertidamente, etc).
4a°) Já se encontrou com essa pessoa fisicamente para se certificar de que é de facto a pessoa bem conhecida por si e que detém a chave pública correcta que será certificada por si.
4b°) Ou então já verificou remotamente o conjunto pessoa / chave pública ao contactar essa pessoa por vários meios de comunicação diferentes, como o correio postal + rede social + fórum + email + videoconferência + telefone (reconhecendo a sua voz). Isto porque se eventualmente for possível piratear uma conta de e-mail ou uma conta de fórum, será muito mais difícil imaginar piratear quatro meios distintos de comunicação, de imitar a aparência da pessoa (vídeo), e além disso, de imitar a voz da pessoa.
Todavia o 4a°) permanece preferencial em relação ao 4b°), enquanto os pontos 1°), 2°) e 3°) são previamente indispensáveis.
**Regras abreviadas da RdC:**
Cada membro poderá atribuir um stock de 100 certificações possíveis, e que não pode emitir a uma taxa superior a 1 certificação / cada 5 dias.
Com uma validade de 2 meses, uma certificação para um novo membro só será definitivamente adoptada se no espaço desses 2 meses o membro certificado tiver obtido pelo menos 4 outras certificações, caso contrário, o processo de entrada terá de ser iniciado de novo.
Por isso para se tornar um novo membro da RdC Ğ1, será necessário obter 5 certificações, e encontrar-se a uma distância <= 5 elos de relação com 80% dos membros referentes da RdC.
Um membro da RdC Ğ1 torna-se membro referente a partir do momento em que ele terá recebido e emitido pelo menos Y [N] certificações, em que N é o número de membros da RdC e Y [N] = limite superior de N ^ (1/5). Exemplos:
* Para 1024 <N ≤ 3125, temos Y [N] = 5
* Para 7776 <N ≤ 16807, temos Y [N] = 7
* Para 59049 <N ≤ 100.000 temos Y [N] = 10
Logo que o novo membro tome lugar na RdC Ğ1, as suas certificações permanecerão válidas durante 2 anos.
Para permanecer como membro, será necessário renovar o seu acordo regularmente com a sua chave privada (a cada 12 meses) e certificar-se de que tem sempre pelo menos 5 certificações válidas após os 2 anos iniciais.
Moeda Ğ1
----------
A Ğ1 é criada por meio de um Dividendo Universal (DU) para qualquer ser humano membro da Rede de Confiança Ğ1 e que toma a seguinte forma:
* 1 DU por pessoa por dia
**Código monetário Ğ1**
O valor em Ğ1 do DU é o mesmo a cada dia (com 1 dia = 86400 segundos) até ao dia de equinócio seguinte, onde o DU será então reavaliado de acordo com a fórmula:
* DUdiário (até ao próximo equinócio) = DUdiário (no dia de equinócio) + c² (M / N) (no dia de equinócio) / (182,625 dias)
Com os parâmetros:
* c = 4,88% / cada intervalo de tempo correspondente a um equinócio
* DU(0) = 10,00 Ğ1
E onde as variáveis são:
* *M* a massa monetária total no dia de equinócio
* *N* o número de membros no dia de equinócio
Software Ğ1 e licença Ğ1
--------------------------
Os programas informáticos Ğ1 que permitem aos utilizadores a gestão de utilização da Ğ1 devem transmitir esta licença com o programa informático, assim como o conjunto de parâmetros técnicos da moeda Ğ1 e da RdC Ğ1 que estão inscritos no bloco 0 da Ğ1. O programa informático que não cumpra estas obrigações da licença não é compatível com a Ğ1.
Para melhor aprofundar os detalhes técnicos é possível consultar diretamente o código do Duniter, que é software livre, assim com consultar os dados da blockchain Ğ1, obtendo-os por meio de uma instância (ou nó) Duniter Ğ1.
Mais informações no sítio internet da equipa Duniter https://www.duniter.org
# ------------------------------------------------------------------------------
# Build Stage
# ------------------------------------------------------------------------------
ARG PYTHON_VERS
FROM python:${PYTHON_VERS}-slim AS build
# Install Poetry
RUN pip install poetry
WORKDIR /silkaj
# Copy pyproject.toml and install dependencies
# So this dependencies installation layer
# does not change when the sources changes
# https://python-poetry.org/docs/faq/#poetry-busts-my-docker-cache-because-it-requires-me-to-copy-my-source-files-in-before-installing-3rd-party-dependencies
COPY pyproject.toml .
RUN poetry install --only main --no-root
# Copy source tree, install and build Silkaj
COPY ./ ./
RUN poetry install --only main
RUN poetry build
# ------------------------------------------------------------------------------
# Final Stage
# ------------------------------------------------------------------------------
FROM python:${PYTHON_VERS}-slim
# Set timezone to Paris for DeathReaper
ENV TZ=Europe/Paris
# Create silkaj group and user
RUN groupadd -g 1111 silkaj && \
useradd -d /silkaj -g silkaj -u 1111 silkaj
# Install libsodium
RUN apt update && \
apt install --yes libsodium23 && \
rm -rf /var/lib/apt/lists
# Copy the build artifact from the build stage
COPY --from=build "/silkaj/dist/silkaj-*-py3-none-any.whl" .
RUN pip install silkaj[deathreaper] silkaj-*-py3-none-any.whl
# Use silkaj user
USER silkaj
WORKDIR /usr/local/lib/python${PYTHON_VERS}/site-packages/silkaj
CMD ["/usr/local/bin/silkaj"]
# ------------------------------------------------------------------------------
# Build Stage
# ------------------------------------------------------------------------------
ARG PYTHON_VERS
FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest AS build
WORKDIR /silkaj
# Copy pyproject.toml and install dependencies
# So this dependencies installation layer
# does not change when the sources changes
# https://python-poetry.org/docs/faq/#poetry-busts-my-docker-cache-because-it-requires-me-to-copy-my-source-files-in-before-installing-3rd-party-dependencies
COPY pyproject.toml .
RUN poetry install --only main --no-root
# Copy source tree
COPY ./ ./
# Install Silkaj
RUN poetry install --only main --extras deathreaper
# ------------------------------------------------------------------------------
# Final Stage
# ------------------------------------------------------------------------------
FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest
# Create silkaj group and user
RUN groupadd -g 1111 silkaj && \
useradd -d /silkaj -g silkaj -u 1111 silkaj
# Set up alias to directly get silkaj command
# https://stackoverflow.com/a/3638886
RUN printf '#!/bin/bash\npoetry run silkaj "$@"' > /usr/bin/silkaj && \
chmod +x /usr/bin/silkaj
# Copy the build artifact from the build stage
COPY --from=build --chown=silkaj:silkaj /silkaj /silkaj
COPY --from=build --chown=silkaj:silkaj /root/.cache/pypoetry/virtualenvs /silkaj/.cache/pypoetry/virtualenvs
# Use silkaj user
USER silkaj
WORKDIR /silkaj
CMD ["/usr/bin/silkaj"]
.idea/
Thumbs.db