Silkaj team is pleased to announce the stable release of Silkaj version 0.10.0
The most important changes are highlighted in this article, if you are looking for a comprehensive list of changes, check out the changelog.
Introduction
This release comes with the handling of the complete life cycle of the revocation file,
the ability to read transaction amounts and recipients listing from a file, convenient for recurrent transaction.
Last but not least, the code handling Ğ1 monetary license has been refactored.
The upstream changes have been retrieved and now features the license into six languages.
Under the hood, Silkaj codebase has been updated to use DuniterPy v1.0,
which comes with breaking backward compatible changes on the Documents
classes and
the drop of the asynchronous property.
As always, this release also comes with an emphasis on the development environment,
with pre-commit
usage generalization with the introduction of new hooks.
Revocation
The complete lifecycle of the revocation document and its storage in a file is now supported!
The revocation
command comes with four sub-commands:
silkaj revocation --help
Usage: silkaj revocation [OPTIONS] COMMAND [ARGS]...
Create, save, verify or publish revocation document. Subcommands optionally
take the path to the revocation document.
Options:
-h, --help Show this message and exit.
Commands:
publish Publish revocation document.
revoke Create and publish revocation document.
save Create and save a revocation document.
verify Verifies that a revocation document is correctly formatted and...
With these command, you can generate a revocation file, verify its integrity and publish to actually revoke an identity.
For the first time we implemented sub-subcommands thanks to Click.
In the future, we will implement more commands using this feature, since we now know how to implement it.
Read transaction recipients and amounts from a file
You can now define a file following this format. For instance, a file named recipients.txt
:
<ABSOLUTE|RELATIVE>
# comment 1
<amount1> <pubkey1>
# comment 2
<amount2> <pubkey2>:[<checksum2>]
It lists the amounts and the recipients’ pubkeys for which the multi-recipients transaction will be issued.
The checksum can be append to the pubkey to have its integrity checked.
And pass it to silkaj tx
command as follow:
silkaj --gtest tx -f recipients.txt
It will generate a multi-recipients transaction with the amounts in absolute or relative reference depending of the setted header (ABSOLUTE
or RELATIVE
).
Ḡ1 Monetary license
The upstream repository containing the licenses has been updated.
This update brings fixes and improvements on the existing languages and brings additional new languages: Esperanto, Espagnol, Italian, and Portuguese
The display is now only displaying the embedded license files in the console, since it’s available in six up-to-date languages.
silkaj license
In which language would you like to display Ğ1 monetary license? (es, en, eo, it, fr, pt) [en]: fr
The display in the browser has been removed since there were just two websites links to outdated licences in French and English.
DeathReaper
If you missed DeathReaper crowdfunding completion, you can check this message or the complete post if you have not been aware of.
Silkaj Docker image
The automated generation of Silkaj Docker images has been implemented in the first place to distribute DeathReaper.
This is a new way to install Silkaj and its environment. This is convenient to distribute non-stable releases.
You can find the documentation on how to use these images.
Network
- The asynchronous property has been dropped. The HTTP library usage has been migrated from
asyncio
tourllib
- The global option to specify a custom endpoint has been renamed from
-p/--peer
to-ep/--endpoint
- Silkaj network layer has been refactored, bringing a more robust code
DuniterPy v1.0
Support have been added to support DuniterPy v1.0 which came with many breaking backward compatible changes in the Documents
classes.
Meta
This release introduces support for Python v3.10 and drops support for Python v3.6.
Development Environment
pre-commit
usage has been generalized with black
, isort
, pyupgrade
, insert-license
, and gitlab-ci-linter
hooks.
These hooks are run as jobs into the CI.
Thanks
Outlook
New pre-commit
hooks (pylint
, flake8
, mypy
) will be introduced to have more guardrails in order to ensure that future implementations will allow to reach higher code quality. Then, it’s planned to migrate from tabulate
to Texttable
, and then restructure the repository. Once these prerequisites have been completed, the emphasis will be put onto migrating to Duniter v2 using Substrate. This means using new APIs: RPC, Subsquid, Using new documents called extrinsincs, and probably other changes.