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
  • 175_gva_migration
  • 429_rm_features
  • i18n
  • main
  • pages
  • release/0.11
  • release/0.12
  • v0.1.0
  • v0.10.0
  • v0.10.0rc0
  • v0.10.0rc1
  • v0.11.0
  • v0.11.0rc0
  • v0.11.1
  • v0.11.2
  • v0.12.0
  • v0.2.0
  • v0.3.0
  • v0.4.0
  • v0.5.0
  • v0.6.0
  • v0.6.1
  • v0.6.2
  • v0.6.3
  • v0.6.4
  • v0.6.5
  • v0.7.0
  • v0.7.1
  • v0.7.2
  • v0.7.3
  • v0.7.4
  • v0.7.5
  • v0.7.6
  • v0.8.0
  • v0.8.1
  • v0.9.0
  • v0.9.0rc
37 results

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
  • 72_rework_tx
  • dev
  • master
  • patch-1
  • 0.1.0
  • 0.2.0
  • v0.3.0
  • v0.4.0
  • v0.5.0
9 results
Show changes
Showing
with 2492 additions and 0 deletions
---
date:
created: 2023-11-22
authors:
- moul
categories:
- minor
---
- Add support for Python v3.12 and drop support for Python v3.7
---
date:
created: 2025-04-22
authors:
- moul
categories:
- release
---
# Silkaj v0.12.0 release
I am pleased to announce the stable release of Silkaj version 0.12.0
In this article, the most important changes are highlighted. if you are looking for a comprehensive list of changes, check out the changelog.
## Introduction
The original plan changed, a difficult choice has been made to work on a second development cycle tied to v1 ecosystem, because v2 ecosystem was not fully ready.
It was worth it for Silkaj project’s growth with huge improvements not tied to v1 nor v2 ecosystems.
It was difficult to go in a slightly different direction, since all contributors’ energy was directed to v2 ecosystem development.
Ğcli took over the role as the first CLI client on v2 ecosystem. Silkaj made little progress on v2 ecosystem.
But, as for v0.11.0, this release also paves the way for implementations based on v2 ecosystem.
This release comes with the account storage implementation which greatly improves the authentication and revocation files management.
A new documentation website has been set up.
`money history` command features the comma-separated value (CSV) output file format option.
The command line interface has seen great improvements such as a usage with colors, a better error output, the shell completion, and a small help option.
Ğ1 monetary license have been updated, and DeathReaper is now released as part of Silkaj.
Last but not least, Silkaj comes with minor network optimisations and Python 3.13 support.
This release is the last planned major release with Duniter v1/BMA support.
<!-- more -->
## Account storage: authentication and revocation files storage improvements
Account storage has been implemented to store authentication and revocation files in a common place organized per account and per currency.
Therefore, authentication and revocation files generated by Silkaj would no longer lay anywhere on the operating system.
By default, they used to be saved to and read from current working directory.
This wrong practice is now behind us.
In addition the files are now stored with `600` permissions, meaning that only the Unix user who created them are allowed to read and edit them.
Furthermore, a consequent change has been made to restrict the storage to only WIF and EWIF authentication file formats defined in the approved [RFC#13](https://git.duniter.org/documents/rfcs/-/blob/master/rfc/0013_Duniter_Encrypted_Wallet_Import_Format.md).
It improves the security, by focusing the effort on a single authentication file format for v1 ecosystem.
v2 ecosystem might bring in an additional file format, which could bring additional confusions.
Therefore, it is no longer possible to authenticate with all the implemented methods.
The authentication is now restricted to WIF or EWIF authentication files format stored in the account storage.
`authentication` command the only one still allowing all the implemented authentication methods as input in order to perform the migration.
To migrate to this new authentication method stored into the account storage, you have to run follow command:
```
silkaj --account <account_name> authentication <--auth-method>
```
Based on this new authentication way, you can run commands using (E)WIF authentication from the account storage, i.e.:
```
silkaj --account <account_name> money balance
```
For further details, check out the [account storage documentation](../../usage/account_storage.md).
## New documentation website
[Previous website](https://git.duniter.org/websites/silkaj_website), created in 2019 by Attilax, was based on a solution not maintainable over time.
Its technology couldn’t scale up and integrate markdown documentation from the repository.
Therefore, its content quickly became outdated.
In 2020, an [other website solution](https://git.duniter.org/websites/doc_silkaj) based on VuePress was suggested by ManUtopiK which uses markdown documentation.
This solution wasn’t selected and didn’t went productive mainly because I did not have the full control over it.
The fact that VuePress is based on JavaScript technologies is a downside to me.
![MkDocs Material icon](../../images/mkdocs-material-favicon.png)
I found out about [MkDocs](https://www.mkdocs.org/) and the great [Material theme](https://squidfunk.github.io/mkdocs-material/).
This documentation software based on Python is widely used in Python community.
I decided to go with this solution which ticked all the check-boxes.
The initial structure has been set up within the repository.
Following integration plugins have been set up: Click command line interface documentation, test coverage, GitLab issue and merge requests links which is useful in the changelog.
A blog contains the releases announcements.
Continuous deployment has been set up to automatically build and deploy documentation updates to GitLab Pages.
Mike, a system which allows to display the documentation for multiple major releases of Silkaj have been set up.
A drop-down allows to select the documentation dedicated to a version. This should, at least, be helpful for Silkaj v0.1x and v0.2x which will greatly differ.
Finally, a [page](../../contributing/documentation.md) describes how to contribute to the website.
## CSV output on `money history` command
```
silkaj money history <pubkey> --csv-file history.csv
```
This command will save the account’s money movements history in the specified file in CSV format (comma-separated value).
You can then operate the data with a spreadsheet software.
The output looks as follow:
```{..yaml .no-copy}
Date,Issuers/Recipients,Amounts Ğ1,Amounts UDĞ1,Reference
2024-10-24 16:26:55,8ve5XAupWT9NMRbXUnZvQwBCFoq5DQ18bBdjGZciw3wm:Dpf,30.96,2.7992766726943943,Oignons fantastiques merci
2024-10-24 01:34:28,8jWwwyRZMrRsidfVpsGdQGC5zd8pbRDTHrYDwf2kDcrL:9YE,0.25,0.022603978300180832,Dividende Epicerie
```
## Command line interface
### Rich-click
The command line interface now has a nicer usage interface and looking with colors (missing below) thanks to [`rich-click`](https://github.com/ewels/rich-click), a Click add-on.
```{..yaml .no-copy}
silkaj --help
Usage: silkaj [OPTIONS] COMMAND [ARGS]...
╭─ Basic options ─────────────────────────────────────────────────────────────╮
│ --help -h Show this message and exit. │
│ --version -v Show the version and exit. │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Endpoint and currency specification ───────────────────────────────────────╮
│ --endpoint -ep TEXT Without specifying this option, the default endpoint │
│ reaches Ğ1 currency on its official endpoint: │
│ https://g1.duniter.org. --endpoint allows to specify │
│ a custom endpoint following `<host>:<port>/<path>` │
│ format. `port` and `path` are optional. In case no │
│ port is specified, it defaults to 443. NOTE: This │
│ argument is mutually exclusive with arguments: │
│ [gtest]. │
│ --gtest -gt Uses official ĞTest currency endpoint: │
│ https://g1-test.duniter.org NOTE: This argument is │
│ mutually exclusive with arguments: [endpoint]. │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Account and authentication specification ──────────────────────────────────╮
│ --account -a TEXT Account name used in storage │
│ `$HOME/.local/share/silkaj/$currency/$account_name` │
│ for authentication and revocation. │
│ --password -p TEXT EWIF authentication password. If you use this option, │
│ prefix the command with a space so the password is │
│ not saved in your shell history. In case of an │
│ encrypted file, password input will be prompted. │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ --display -d Display the generated document before sending it │
│ --dry-run -n By-pass the licence and confirmation. Do not send the │
│ document, but display it instead │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────╮
│ about Display program information │
│ authentication Generate and store authentication file │
│ blockchain Blockchain related commands │
│ checksum Generate checksum out of a passed pubkey or an │
│ authentication method. Checks if the passed checksum is │
│ valid. │
│ license Display Ğ1 monetary license │
│ money Money management related commands │
│ wot Web-of-Trust related commands │
╰─────────────────────────────────────────────────────────────────────────────╯
```
A better error output:
```{..yaml .no-copy}
silkaj -a test wot revocation verify
Usage: silkaj wot revocation verify [OPTIONS]
Try 'silkaj wot revocation verify -h' for help
╭─ Error ─────────────────────────────────────────────────────────────────────╮
│ /home/moul/.local/share/silkaj/g1/test/revocation.txt not found for account │
│ name: test │
╰─────────────────────────────────────────────────────────────────────────────╯
```
### Shell completion
This information has been missed, but Click v8.0 comes with an integrated shell completion feature.
Therefore, it can be set from Silkaj v0.10.0 onward. To set up the shell completion follow the [shell completion documentation](../../install.md#shell-completion).
### Small help option
In addition to the `--help` option, it is now possible to pass the small help option `-h` to all sub-commands.
## Renaming transfer comment to reference
The free "comment" field in Duniter v1’s Transaction document has been extensively used in a slightly wrong manner.
Banks use _Payment reference_ term for this field which can be used to refer to a contract number for instance.
It has been decided to rename it in order for the users to think about using it the appropriate way.
The fields in `money transfer` and `money history` user interface has been renamed to "reference".
The important change here is `--comment/-c` option from `money transfer` has been renamed to `--reference/-ref`.
## `wot status` command displays precise expiration date of received certifications
For better monitoring of our certifications and to maintain our membership, `wot status` command now displays precise expiration dates of received certifications.
Previously they were computed and were very imprecise with three months of inaccuracy!
Silkaj v0.11:
```{..yaml .no-copy}
│───────────────────│──────────────────│────────────────│──────────────────│
│ received_expire │ received │ sent │ sent_expire │
│═══════════════════│══════════════════│════════════════│══════════════════│
│ December 3, 2024 │ Matograine ✔ │ vit │ October 1, 2024 │
│ October 11, 2025 │ HugoTrentesaux ✔ │ Zheny │ October 26, 2025 │
│ December 19, 2025 │ BenoitLavenier ✔ │ HugoTrentesaux │ August 17, 2026 │
│ December 21, 2025 │ nicoleC ✔ │ Matograine │ August 17, 2026 │
│ July 9, 2026 │ vit ✔ │ │ │
│ August 20, 2026 │ tuxmain ✔ │ │ │
│ August 20, 2026 │ kapis │ │ │
│───────────────────│──────────────────│────────────────│──────────────────│
```
Silkaj v0.12:
```{..yaml .no-copy}
│───────────────────│──────────────────│────────────────│──────────────────│
│ received_expire │ received │ sent │ sent_expire │
│═══════════════════│══════════════════│════════════════│══════════════════│
│ February 21, 2025 │ Matograine ✔ │ vit │ October 1, 2024 │
│ January 8, 2026 │ HugoTrentesaux ✔ │ Zheny │ October 26, 2025 │
│ March 21, 2026 │ BenoitLavenier ✔ │ HugoTrentesaux │ August 17, 2026 │
│ March 23, 2026 │ nicoleC ✔ │ Matograine │ August 17, 2026 │
│ October 16, 2026 │ vit ✔ │ │ │
│ November 28, 2026 │ tuxmain ✔ │ │ │
│ January 28, 2025 │ kapis ✘ │ │ │
│───────────────────│──────────────────│────────────────│──────────────────│
✔: Certification written in the blockchain
✘: Pending certification, deadline treatment
```
The expiration date of sent certifications are still computed and should not be really taken into account.
They were not changed since this is a bit more complex to do with BMA API, and also less important than the received certifications.
No additional time should be spent on v1 ecosystem, but should instead go to v2 ecosystem :wink:
## Ğ1 monetary license update
German and Catalan new translations have been added to Ğ1 monetary license.
Spanish and Italian translations have been improved.
The French copy has been updated to v0.3 which includes rules on how to change the document.
## DeathReaper is now released as part of Silkaj
DeathReaper used to be maintained on a separated `git` branch and only distributed via containers.
This was made because its main dependency `pydiscourse` is not packaged in Debian repositories.
This could be a reason to make an update of Silkaj Debian package unnecessary harder.
A solution has been set up to activate `wot exclusions` command only once `pydiscourse` dependency is installed.
This way, Debian packaging is still possible without having to package `pydiscourse`.
Therefore, DeathReaper has been merged on `main` branch.
Check out [DeathReaper documentation](../../usage/deathreaper.md) on how to install and use it.
## BMA optimisations
On BMA API, the Web-of-Trust related requests now have an argument to specify whether we passed a public key or an identity username.
Silkaj is specifying this argument which provides faster replies to the queries.
## Python versions support
This release introduces official support for Python v3.12 and v3.13.
[Pendulum](https://pendulum.eustace.io/) datetime library was lacking maintenance and had no Python v3.13 support.
I replaced Pendulum with [Arrow](https://arrow.readthedocs.io/).
Just before Silkaj release, Pendulum v3.1 has been released with Python 3.13 support.
I reverted back to Pendulum usage.
`request_url()` has been fixed in [DuniterPy v1.2.1](https://git.duniter.org/clients/python/duniterpy/-/blob/main/CHANGELOG.md#v121-26th-march-2025) to support Python 3.13.
On the other hand, Python v3.7 and v3.8 support have been dropped.
## Development Environment
Ruff replaces `black`, `autoflake`, `pylint`, `isort` and `pyupgrade` pre-commit hooks.
The latter is written in Rust and is blazing faster compared to the latter.
When publishing a release, the pipeline will automatically create a release page on Silkaj repository.
## Removals
With this release being the last one planned with Duniter v1/BMA support, some commands do not make sense anymore with v2 Substrate ecosystem.
Therefore `blockchain verify` has been removed from this release.
`checksum` and `blockchain difficulty` commands will be removed out of next release.
## Outlook
v0.20.0 is planned to be the next release.
It will be focus onto adding support for Duniter v2 based on Substrate framework.
Duniter v1/BMA support will be dropped from Silkaj v0.2x branch, while v0.1x will be on maintenance mode until Ğ1 currency switches productively to Duniter v2 ecosystem.
No new features will be implemented on v0.1x branch.
v0.20 development cycle might take some time, therefore it is expected to get preview releases.
The migration to v2 ecosystem is planned as follow: The network layer will be adapted to use following APIs: Substrate RPC, and Subsquid indexer via its Hasura GraphQL API.
Then, it is planned to migrate current features and commands.
Finally, in a following release new v2 related features will be implemented.
We are looking forward for a better experience with Ğ1 currency migration to v2 ecosystem based on Substrate framework and Subsquid indexer.
Once the porting to Duniter v2 Substrate reaches an interesting point, a v0.30.0 release is planned to implement a GUI based on [Textual](https://www.textualize.io/) framework which run in the terminal, and can also run in a web browser.
---
date:
created: 2017-03-27
authors:
- moul
categories:
- release
---
# Silkaj v0.2.0 release
This release introduce the `transaction` feature, the `amount` command to check out the balance of a wallet, and the initial authentication support.
<!-- more -->
## New money management commands
- `transaction` command with its main options: `--amountDU`, `--amount`, `--output`, `--comment`
- `amount` command to display account balance
## Authentication
- `generate_auth_file` command to generate seed authentication file
- authentication methods implementation: scrypt, seed, seed authentication file with `--auth-scrypt`, `--auth-seed`, `--auth-file` options
## Under the hood
- function to post request onto BMA API
- function to sign document
- function to check public key format and checksum
## Others
- In tables, the columns were randomly ordered. The columns in the table are now ordered thanks to `OrderedDict`.
- Output information on the drop-down menu with Argos (GNOME Shell extension)
## Thanks
A huge thanks to Tortue who brought a huge contribution to this release.
Thanks mmuman.
---
date:
created: 2017-04-17
authors:
- moul
categories:
- release
---
# Silkaj v0.3.0 release: Let's send money!
This release comes with user experience enhancements on the `transaction` command and the authentication in general. A new `id` command allows to look-up for identities.
Efforts were put into improving the installation process.
<!-- more -->
## Transactions
`transaction` command enhancements:
- ask for confirmation: #27, !30.
- confirmation table containing transaction informations: !38
- don't prompt `scrypt` parameters. See `Authentication` § below.
## New command `id` to search for pubkey/identity
- new command `id` to search identities with pubkey or id: !29.
## Tutorial to install a Python environment
- pyenv installation tutorial: #23, !40.
## Authentication
- new authentication method: WIF. For future paper wallet feature: !45
- Don't prompt scrypt parameters at authentication. Use default ones: #39, !43
## Builds
- with Pyinstaller: #5.
## Other
- Ability to sort the table of `network` command: !33, !37.
- Change license from GNU GPLv3 to AGPLv3.
- Code formatting with `pep8`: !31.
Thanks Tortue and jytou.
---
date:
created: 2018-01-28
authors:
- moul
categories:
- release
---
# Silkaj v0.4.0 release
A new `wot` command allows to display received and sent certifictaions of an identity.
Additionnal user experience enhancements have been added to the transaction feature.
It is now possible to check the balance of multiple public keys and get a sum of the balances.
<!-- more -->
## New `wot` command to display received and sent certifications
You can now explore the Web-of-Trust by displaying in a table the received and sent certifications of an identity.
```{..yaml .no-copy}
silkaj wot moul
moul (GfKER…) from block 0-E3B0C44298FC1…
received 23 and sent 27 certifications:
| received | sent |
|----------------+------------------|
| Alfybe | gerard94 |
| cuckooland | jeanferreira |
| Loda | elois |
| jeanferreira | Galuel |
| BenoitLavenier | smyds |
| smyds | CaizohanFerreira |
| gpsqueeek | gpsqueeek |
| fbuland | inso |
| gerard94 | vit |
| SebasC | Thatoo |
| Thatoo | William |
| inso | cuckooland |
| Paulart | greyzlii |
| vincentux | mathieuBize |
| greyzlii | cgeek |
| Mententon | PierreYves |
| PierreYves | mmu_man |
| paidge | OlivierAuber |
| cgeek | paidge |
| Nicolas | Alfybe |
| jeangraine | 1000i100 |
| pafzedog | dig |
| Zheny | BenoitLavenier |
| | MystraSam |
| | jeangraine |
| | Zheny |
| | roodinux |
```
## Transaction command provides a better UX
The `transaction` command will beforehand check that the comment and recipient’s public key are in right format before it actually prompt for the authentication.
## Balance of multiple public keys
With the `amount` command, you can now pass multiple public keys `:` separated. The balance will be displayed for each of them, and a sum will be displayed at the end.
```{..yaml .no-copy}
silkaj amount --pubkeys GfKERHnJTYzKhKUma5h1uWhetbA8yHKymhVH2raf2aCP:fyqm24NzN7D2Lr4ssrNMacsctymQ2NzBqH9YUYuxSmy
Requested default node: <g1.duniter.org:443>
Total amount of: GfKERHnJTYzKhKUma5h1uWhetbA8yHKymhVH2raf2aCP
----------------------------------------------------------------
Total Relative = 206.23 UD g1
Total Quantitative = 2064.41 g1
Total amount of: fyqm24NzN7D2Lr4ssrNMacsctymQ2NzBqH9YUYuxSmy
----------------------------------------------------------------
Total Relative = 89.72 UD g1
Total Quantitative = 898.08 g1
Total amount of: Total
----------------------------------------------------------------
Total Relative = 295.95 UD g1
Total Quantitative = 2962.49 g1
```
## Installation
- [Installation documentation](https://github.com/duniter/silkaj#install)
## Certification feature
- [Crowdfunding](https://gannonce.duniter.org/#/announce/916a521d-9131-4c78-9c0b-d8cf2b78ac6e)
---
date:
created: 2018-05-21
authors:
- moul
categories:
- release
---
# Silkaj v0.5.0 release: Let’s certify!
For the [eleventh Libre Currency Meeting (RML)](https://rml.creationmonetaire.info/), I am pleased to announce Silkaj v0.5.0 release.
![](../../images/silkaj_logo.png){ width="200" }
This new release comes with the long awaited certification feature, `wot` command now displays expiration dates of certifications, a new logo, and the repository migration to GitLab. This release includes 35 new commits done during four months of developments.
<!-- more -->
## Certification feature
Now, you can certify other identities (send certification document to the network):
```{..yaml .no-copy}
silkaj cert jytou --auth-scrypt -p g1-test.duniter.org:443
In which language would you like to display Ğ1 license [en/fr]? fr
Do you approve Ğ1 license [yes/no]? yes
Please enter your Scrypt Salt (Secret identifier):
Please enter your Scrypt password (masked):
Using default values. Scrypt parameters not specified or wrong format
Scrypt parameters used: N: 4096, r: 16, p: 1
╒════════╤══════════════════════════════════════════════╤════╤══════════════════════════════════════════════╕
│ Cert │ From │ –> │ To │
├────────┼──────────────────────────────────────────────┼────┼──────────────────────────────────────────────┤
│ ID │ moul-test │ –> │ jytou │
├────────┼──────────────────────────────────────────────┼────┼──────────────────────────────────────────────┤
│ Pubkey │ 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH │ –> │ 2pyPsXM8UCB88jP2NRM4rUHxb63qm89JMEWbpoRrhyDK │
╘════════╧══════════════════════════════════════════════╧════╧══════════════════════════════════════════════╛
Do you confirm sending this certification? [yes/no]: yes
Certification successfully sent.
```
Certification command will display Ğ1’s license in your web browser or in your terminal within a `less` in case you are running a headless computer.
## `wot` command now displays expiration dates of certifications
The table listing the received and sent certifications of an identity, now displays the expirations dates of the certifications.
```{..yaml .no-copy}
silkaj wot moul
moul (GfKER…) from block #0-E3B0C44298FC1…
received 24 and sent 27 certifications:
| received_expire | received | sent | sent_expire |
|-------------------+----------------+------------------+---------------|
| 2019-03-09 | cuckooland | cgeek | 2019-03-09 |
| 2019-03-09 | Paulart | elois | 2019-03-09 |
| 2019-03-09 | vincentux | mathieuBize | 2019-03-09 |
| 2019-03-09 | BenoitLavenier | gerard94 | 2019-03-09 |
| 2019-03-09 | Loda | smyds | 2019-03-09 |
| 2019-03-09 | smyds | CaizohanFerreira | 2019-03-09 |
| 2019-03-09 | gpsqueeek | gpsqueeek | 2019-03-09 |
| 2019-03-09 | fbuland | inso | 2019-03-09 |
| 2019-03-09 | jeanferreira | vit | 2019-03-09 |
| 2019-03-09 | gerard94 | Thatoo | 2019-03-09 |
| 2019-03-09 | SebasC | cuckooland | 2019-03-09 |
| 2019-03-09 | Thatoo | William | 2019-03-09 |
| 2019-03-09 | inso | greyzlii | 2019-03-09 |
| 2019-03-09 | Alfybe | Galuel | 2019-03-09 |
| 2019-03-12 | greyzlii | jeanferreira | 2019-03-09 |
| 2019-03-18 | Mententon | PierreYves | 2019-03-09 |
| 2019-04-02 | PierreYves | mmu_man | 2019-03-09 |
| 2019-04-03 | paidge | OlivierAuber | 2019-03-13 |
| 2019-05-24 | cgeek | paidge | 2019-03-13 |
| 2019-06-10 | Nicolas | Alfybe | 2019-03-19 |
| 2019-07-04 | jeangraine | 1000i100 | 2019-03-26 |
| 2019-07-23 | pafzedog | dig | 2019-03-31 |
| 2019-08-07 | Zheny | BenoitLavenier | 2019-04-22 |
| 2020-03-17 | HugoTrentesaux | MystraSam | 2019-06-16 |
| | | jeangraine | 2019-06-22 |
| | | Zheny | 2019-06-25 |
| | | roodinux | 2019-07-01 |
```
## Logo
Silkaj now has a logo thanks to [Attilax](https://forum.monnaie-libre.fr/u/attilax/). You can find it [in this repository](https://git.duniter.org/communication/g1/-/tree/master/logos/logiciels?ref_type=heads). I choose the black and white one. Here is [a crowdfunding to free the logo](https://gannonce.duniter.org/#/announce/d82696ce-03f5-4e13-9316-20c94f00f76d).
## Repository migration to GitLab
I migrated the repository to our GitLab instance and archived the GitHub repository:
- [https://git.duniter.org/clients/python/silkaj](https://git.duniter.org/clients/python/silkaj)
## Website
[Silkaj's website](https://silkaj.duniter.org) has been published among other websites on our GitLab instance.
New revisions will be automatically published thanks to GitLab Pages. Here you can find the repository:
[https://git.duniter.org/websites/silkaj_website/](https://git.duniter.org/websites/silkaj_website/)
## Install
- [Install documentation](https://git.duniter.org/clients/python/silkaj#install)
## Future
You can have a look at the next [v0.6.0 milestone](https://git.duniter.org/clients/python/silkaj/-/milestones/7) to have an idea of what could be included into next Silkaj development cycle.
## Helps
This whole work has been done voluntarily aside a dept-salary’s paid job.
If you like what have been achieve, please contribute, by giving libre units to its only and main developer or to [Duniter’s developers](https://demo.cesium.app/#/app/wot/78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8/) to improve our little world.
---
date:
created: 2018-11-18
authors:
- moul
categories:
- release
---
# Silkaj v0.6.0 release: Let’s install
Six months after the previous release, I am pleased to announce Silkaj v0.6.0 for the [twelfth Libre Currency Meeting](https://rml.creationmonetaire.info/).
This release comes with 124 commits including eased installation procedures, multi-recipients transaction, `wot` command view improvements, scrypt authentication set by default, network performances, and much more.
<!-- more -->
## User installation eased via PyPI/pip
Installing Silkaj has been a burning issue: Only Fedora users could install Silkaj with the Pyinstaller binary, since that’s where I was building it. The others, would have had to install a development environment with `pyenv` and the Python dependencies in order to make it work.
Thanks to Cebash’s work. Now, we are able to install Silkaj with `pip`, the Python package manager, which retrieves the package from Python Package Indexer (PyPI):
```bash
pip3 install silkaj --user
```
## Development environment with Pipenv
We switched from `pyenv+pip` to Pipenv because Pipenv offers a better development environment.
## Transaction
### Multi-recipients transaction
Thanks to cgeek, Silkaj is the first client, besides [Remuniter](https://remuniter.cgeek.fr/#/), able to send multi-recipients transaction.
This means, that we will be able to transfer money to several recipients within a single transaction.
To do so, we have to pass recipients’ public keys separated with a colon `:` operator, as follow:
```{..yaml .no-copy}
silkaj tx --auth-file --amount 2 --gtest --output \
DpJse2t7fyH9LC9FTMQHsMGZToXLmVQ8EV2eP47ipHDC:7KL2QXXFULDpsQY4UdSr5oEVx6rFE6oxeagRdkCX35bf
╒═══════════════════════════╤══════════════════════════════════════════════╕
│ pubkey’s amount before tx │ 15375.33 ĞTest │
├───────────────────────────┼──────────────────────────────────────────────┤
│ tx amount (unit) │ 4.0 ĞTest │
├───────────────────────────┼──────────────────────────────────────────────┤
│ tx amount (relative) │ 0.0104 UD ĞTest │
├───────────────────────────┼──────────────────────────────────────────────┤
│ pubkey’s amount after tx │ 15371.33 ĞTest │
├───────────────────────────┼──────────────────────────────────────────────┤
│ from (pubkey) │ 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH │
├───────────────────────────┼──────────────────────────────────────────────┤
│ from (id) │ moul-test │
├───────────────────────────┼──────────────────────────────────────────────┤
│ to (pubkey) │ DpJse2t7fyH9LC9FTMQHsMGZToXLmVQ8EV2eP47ipHDC │
├───────────────────────────┼──────────────────────────────────────────────┤
│ to (id) │ vit │
├───────────────────────────┼──────────────────────────────────────────────┤
│ to (pubkey) │ 7KL2QXXFULDpsQY4UdSr5oEVx6rFE6oxeagRdkCX35bf │
├───────────────────────────┼──────────────────────────────────────────────┤
│ to (id) │ cuckooland │
├───────────────────────────┼──────────────────────────────────────────────┤
│ comment │ │
╘═══════════════════════════╧══════════════════════════════════════════════╛
Do you confirm sending this transaction? [yes/no]: yes
Generate Transaction:
- From: 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH
- To: DpJse2t7fyH9LC9FTMQHsMGZToXLmVQ8EV2eP47ipHDC
- To: 7KL2QXXFULDpsQY4UdSr5oEVx6rFE6oxeagRdkCX35bf
- Amount: 4.0
Transaction successfully sent.
```
Notes:
- Each pubkey will receive the same amount of money. The amount per recipients can not be specified yet.
- The purpose of this feature is to remunerate Duniter developers.
### Display confirmation panel
Before the transaction is actually sent, the balance before and after the transaction is displayed in the summary table. Check the example above.
### Two wrappers
- [Multi-recipients transfers and automation](../../usage/multi-recipients_transfers_and_automation.md)
- [Transaction generator written in Shell](https://gitlab.com/jytou/tgen)
## WoT view improvements
- Display of the certifications stock
- Membership expiration due to the membership expiration or due the fact that the threshold of minimal number of certifications is about to be crossed by certifications expirations
- Identity status
```{..yaml .no-copy}
moul-test (5B8iM…) from block 167750-0000A51F…
received 8 and sent 15/100 certifications:
| received_expire | received | sent | sent_expire |
|-------------------+---------------------+-------------------+---------------|
| 2018-11-21 | esprit ✔ | MeluaTest | 2018-11-19 |
| 2018-12-15 | GAS2000 ✔ | esprit | 2018-11-21 |
| 2018-12-19 | matograine-G1Test ✔ | GAS2000 | 2018-12-10 |
| 2018-12-20 | scanlegentil ✔ | guwop | 2018-12-10 |
| 2019-01-29 | vit ✔ | matograine-G1Test | 2019-02-04 |
| 2019-02-07 | Elois ✔ | Elois | 2019-02-07 |
| 2019-02-15 | cuckooland ✔ | Vincentest | 2019-02-07 |
| 2019-02-16 | piaaf31GT ✔ | cuckooland | 2019-02-07 |
| | | vit | 2019-02-07 |
| | | scanlegentil | 2019-02-07 |
| | | cgeek | 2019-02-07 |
| | | isawien45 | 2019-02-07 |
| | | aguy-dev | 2019-02-07 |
| | | piaaf31GT | 2019-02-14 |
| | | kimamila | 2019-02-15 |
Membership expiration due to certification expirations: 2018-12-20
member: True
Membership document expiration: 2018-12-31
Sentry: True
outdistanced: False
```
## Scrypt authentication by default
Previously, the authentication method had to be specified.
Now, when no authentication method is specified, two inputs will be prompted in order to authenticate with the scrypt method.
You can still specify other authentication methods, with following options:
```{..yaml .no-copy}
Authentication:
for amount, transaction, certification, and generate_auth_file commands
- Scrypt is the default authentication method with 4096,16,1 as default values
you can specify others values specifying following parameters: -n <N> -r <r> -p <p>
- Seed: --auth-seed
- File: --auth-file [--file=<path file>], './authfile' will be taken if there is no path specified
- WIF: --auth-wif
```
## Ğtest
A new `--gtest` option has been added to ease the connection to Ğ1-test currency network for testing purposes.
It uses the official node: https://g1-test.duniter.org.
## Network performances
With this update, Silkaj is retrieving information only once. Before, data was retrieved every time it was needed. Now, once the information has been fetched, it is kept into the memory and reused.
## Python 3.7 support
Silkaj has been tested with Python 3.7. Results show that there has been no issues.
Python 3.7 has been set as the current version in Pipenv development environment.
## New commands
### License
Originally built for the certification feature, the `license` command allows the consultation of the Ğ1’s license at any time given.
### About
A new command displays information about Silkaj:
```{..yaml .no-copy}
silkaj about
@@@@@@@@@@@@@
@@@ @ @@@
@@@ @@ @@@@@@ @@. silkaj 0.6.0
@@ @@@ @@@@@@@@@@@ @@,
@@ @@@ &@@@@@@@@@@@@@ @@@ Powerfull and lightweight command line client
@@ @@@ @@@@@@@@@# @@@@ @@(
@@ @@@@ @@@@@@@@@ @@@ @@ Built in Python for Duniter’s currencies: Ğ1 and Ğ1-Test
@@ @@@ @@@@@@@@ @ @@@ @@
@@ @@@ @@@@@@ @@@@ @@ @@ Authors: moul, tortue, jytou, cebash, cgeek
@@ @@@@ @@@ @@@@@@@ @@ @@
@@ @@@@* @@@@@@@@@ @# @@ Website: https://silkaj.duniter.org
@@ @@@@@ @@@@@@@@@@ @ ,@@
@@ @@@@@ @@@@@@@@@@ @ ,@@ Repository: https://git.duniter.org/clients/python/silkaj
@@@ @@@@@@@@@@@@ @ @@*
@@@ @@@@@@@@ @ @@@ License: GNU AGPLv3
@@@@ @@ @@@,
@@@@@@@@@@@@@@@
```
## Logo
![](../../images/silkaj_logo.png){ width="200" }
Silkaj’s logo, designed by Attilax, is now [fully funded](https://gannonce.duniter.org/#/announce/d82696ce-03f5-4e13-9316-20c94f00f76d)!
## Thanks
Special thanks to Moul, Cebash, cgeek, and Attilax.
Thanks to vit, Inso, vincentux, and jardin.
______________________________________________________________________
## Install
- [Install documentation](https://git.duniter.org/clients/python/silkaj#install)
## Future development cycles
- [v0.7.0](https://git.duniter.org/clients/python/silkaj/-/milestones/10) will be focused on refactoring Silkaj in order to be ported to [DuniterPy](https://git.duniter.org/clients/python/duniterpy/) usage, a more robust API implementation. This mean sharing a common code with Sakia.
- [v0.8.0](https://git.duniter.org/clients/python/silkaj/-/milestones/8) will add new features based on DuniterPy such as new authentication methods as well as being allowed to send the remaining Web-of-Trust documents: identity publication, membership publication and renewal, and revocation.
- [v0.9.0](https://git.duniter.org/clients/python/silkaj/-/milestones/9) Let’s see what come to this milestone.
## Contribute
If you are pleased with the achievements, please contribute by reporting bugs, contributing to the code or giving [Duniter’s developers](https://g1.duniter.fr/#/app/wot/78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8/) libre units to improve our little world.
---
date:
created: 2018-12-10
authors:
- moul
categories:
- release
---
# Silkaj v0.6.1 release
I am pleased to announce Silkaj v0.6.1 release. This release comes with a major bug fix for transactions with big amounts. It also come with the ability to renew certifications.
<!-- more -->
## Bug fix in intermediaries transactions
When sending a transaction with a big amount, there is a limit of forty sources per transaction allowed by Ğ1 protocol. In order to reach a big amount of money with only forty sources, the clients proceed beforehand to change operations to merge more money into fewer sources.
Since the multi-recipients feature, a regression was introduced, the intermediaries transaction’s recipient were wrong and sent to the recipient of the transaction.
This release fixes it!
## Certification renewal
Duniter v1.7 now allows to renew certification before their expiration.
This protocol modification is now live on the Ğ1-Test currency since [December 2018](https://forum.duniter.org/t/g1-test-dans-les-choux-rejouage-des-certifications/4192/271?u=moul) in order to check that everything is working fine.
You can already renew certifications on the Ğ1-Test currency.
This protocol modification will be published on the Ğ1 currency when ready.
Before processing the certification, Silkaj will check if the certification can be renewed.
In the case of Ğ1, you will be able to renew the certification two months after the previous one. And, on the Ğ1-test, after twelve and half a day.
## Tests on Windows
Silkaj have been installed for the first time on the Windows platform via `pip`. It works!
There is still fixes needed in order to have Silkaj to work properly.
## Thanks
Thanks to Moul, Galuel, and Bernard.
______________________________________________________________________
## Upgrade
```bash
pip3 install silkaj --user --upgrade
```
- [Install with `pip` documentation](../../install.md) for more details.
---
date:
created: 2019-05-22
authors:
- moul
categories:
- release
---
# Silkaj v0.7.0 release: DuniterPy, click, transactions history, Debian, website
Six months after the [previous major release](https://forum.duniter.org/t/silkaj-v0-6-0-release-let-s-install/4858/1), I am pleased to announce the release of Silkaj v0.7.0 for the [thirteenth Free Currency Meeting](http://rml13.creationmonetaire.info/).
This release comes with 157 commits, the migration to DuniterPy and Click, the display of transaction history, the packaging into Debian Buster and Ubuntu 19.04, and a new website.
Those two migrations bring few new features as the goal was to migrate to better libraries while keeping the same functionalities.
<!-- more -->
## DuniterPy migration
![](../../images/duniterpy_logo.png){ width="150" }
[DuniterPy](https://git.duniter.org/clients/python/duniterpy) is a Python library which implements methods to request from and send information to the Duniter nodes. It also has authentication methods to sign documents such as transactions and certifications. DuniterPy was initially written for the Sakia client. Silkaj and Sakia are now sharing the same common code. The migration to DuniterPy was tough, but it was worth it: It will allow the implementation of new features in future versions.
There were many challenges: keeping the same functionalities, making Silkaj’s code asynchronous, and replacing the authentication and the network code by the ones implemented in DuniterPy. One struggling issue was that the [intermediaries transactions were no longer working](https://git.duniter.org/clients/python/silkaj/issues/178), because, the equality method of the transaction output source was not implemented, as they used to be stored in a string and are now stored into an `OutputSource` object. So, the equality had to be implemented.
Check-out [DuniterPy versions from v0.50.0 to v0.54.1](https://forum.duniter.org/t/duniterpy-evolution-de-la-bibliotheque-python/5127) to follow the evolution of DuniterPy. These versions were specially made for Silkaj. In the future, following functionalities are planned: sending identity, membership, and revocation documents, the usage of authentication methods implemented in DuniterPy, and the usage of the planned GVA API.
## Click migration
[![](../../images/click_logo.png){ width="200" }](https://click.palletsprojects.com/)
Since Debian Buster freeze was going to happen very soon and [`commandlines`](https://github.com/chrissimpkins/commandlines) library wasn’t packaged into Debian, the migration to [Click](https://click.palletsprojects.com/) “_Command Line Interface Creation Kit_” had to be done quickly. I decided to migrate to this really nice library, since it is much more maintained, comes with a better code, and is less buggy. Here you can see the new command line interface:
```{..yaml .no-copy}
Usage: silkaj [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit.
-v, --version Show the version and exit.
-p, --peer TEXT Default endpoint will reach Ğ1 currency with
`https://g1.duniter.org` endpoint. Custom endpoint
can be specified with `-p` option followed by
<domain>:<port>
-gt, --gtest ĞTest: `https://g1-test.duniter.org` endpoint
--auth-scrypt, --scrypt Scrypt authentication: default method
--nrp TEXT Scrypt parameters: defaults N,r,p: "4096,16,1"
-af, --auth-file Authentication file. Defaults to: './authfile'
--file TEXT Path file specification with '--auth-file'
[default: authfile]
--auth-seed, --seed Seed hexadecimal authentication
--auth-wif, --wif WIF and EWIF authentication methods
Commands:
about Display program information
argos Display currency information formatted for Argos or BitBar
authfile Generate authentication file
balance Get wallet balance
blocks Display blocks: default: 0 for current window size
cert Send certification
diffi Display the current Proof of Work difficulty level to generate...
history Display transaction history
id Find corresponding identity or pubkey from pubkey or identity
info Display information about currency
license Display Ğ1 license
net Display network view
tx Send transaction
wot Check received and sent certifications and consult the...
```
The command line interface has changed. General parameters (options and arguments) should be placed in between the command and the sub-command. Specific parameters should be placed after the sub-command.
```{..yaml .no-copy}
silkaj --gtest --auth-file tx --amount 5 --output <pubkey>
```
For instance, in previous command `--gtest` and `--auth-file` are general parameters, where `--amount` and `--output` are specific parameters separated by `tx` sub-command.
You can display general parameters with `silkaj --help` and specific parameters with `silkaj tx --help` for instance.
## CLI changes
- `issuers`, `amount`, and `generate_auth_file` commands have been respectively renamed to `blocks`, `balance`, and `authfile`.
- The long sub-commands `certification`, `transaction`, `network`, `identities` have been removed. Now the small ones have to be used: `cert`, `tx`, `net`, `id`.
- `blocks` defaults to `0` which stands for the current windows size and now has a limit of 5.000 blocks as set by BMA.
- `balance`: public keys separator does no longer use colons `:`, it uses spaces instead.
- Additionally, there are the new smaller authentication options: `--scrypt`, `-af`, `--seed`, `--wif`, without the `--auth` prefix.
You might discover other breaking changes. For more details regarding these changes check out [this list](https://git.duniter.org/clients/python/silkaj/issues/77#breaking-changes).
## Transaction history
It is now possible to display the transactions history of a wallet:
```{..yaml .no-copy}
silkaj history GfKERHnJTYzKhKUma5h1uWhetbA8yHKymhVH2raf2aCP --uids
Transactions history from: moul GfKERHnJTYzKhKUma5h1uWhetbA8yHKymhVH2raf2aCP
Current balance: 17296.86 Ğ1, 1717.66 UD Ğ1 on the 2019-05-12 13:32:30
+---------------------+------------------------+------------+--------------+-----------------------+
| Date | Issuers/Recipients | Amounts Ğ1 | Amounts UDĞ1 | Comment |
+=====================+========================+============+==============+=======================+
| 2019-04-23 21:31:27 | CvrMiUhAJpNyX5sdAy | 100.700 | 10 | Silkaj sur Ubuntu c |
| | | | | est une tres belle |
| | | | | surprise. Merci ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-22 18:59:34 | HugoTrentesaux - | 100.700 | 10 | Merci pour Duniter |
| | 55oM6F9ZE2MGi | | | v1.7.16 ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-15 14:35:15 | ArthurLutz - | 200 | 19.861 | pour les paquets |
| | 4C4jsvxmFQBoH | | | yunohost ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-15 10:40:11 | SonqoZEfZXHDBxi4Kx | 30.210 | 3 | [G1SMS] VIREMENT 300 |
| | | | | LOVE (30.21 G1) |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-15 08:04:58 | fbuland - | 200 | 19.861 | merci resolution bug |
| | 4bD7J3uA5pH2N | | | |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-13 16:37:20 | Vivakvo - | 100.700 | 10 | Merci pour Duniter |
| | 4wUdA1dx1NCZU | | | v1.7.16 ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-12 08:59:04 | C4pUj26pVgPVPLEZ96 | 50 | 4.965 | Bravo pour le bug |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-08 16:48:04 | 73ArdqtsQScypV35H4 | 100.700 | 10 | Merci pour Duniter |
| | | | | v1.7.16 ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-08 15:58:06 | Lucas - HY2nJUyxpzyrw | 100.700 | 10 | Merci pour Duniter |
| | | | | v1.7.16 ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-08 15:10:25 | BenoitLavenier - | 100.700 | 10 | Merci pour Duniter |
| | 38MEAZN68Pz1D | | | v1.7.16 ! |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-08 14:11:00 | 4sfQWXBBy811CCDV6J | 100.700 | 10 | 1.7.16 |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-07 22:59:00 | elois - D9D2zaJoWYWve | 100 | 9.930 | merci pour le debug |
| | | | | de duniter et du |
| | | | | process de release |
| | | | | aussi |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-07 21:51:41 | Matograine - | 100.700 | 10 | V1.7.16 |
| | CmFKubyqbmJWb | | | |
+---------------------+------------------------+------------+--------------+-----------------------+
| 2019-04-07 01:18:44 | cgeek - 2ny7YAdmzReQx | 1007 | 100 | Duniter v1.7.16 |
+---------------------+------------------------+------------+--------------+-----------------------+
```
## Debian and Ubuntu package
[![](../../images/debian_logo.svg){ width="100" }](https://packages.debian.org/buster/silkaj)
Silkaj v0.6.5 was packaged for Debian Buster v10, which is planned te be released on July 6th 2019. This package greatly benefits all Debian-based distributions. Moreover, Silkaj was also added into Ubuntu 19.04 repository, which was published on March 2019. For more details check-out [where Silkaj was included into the Debian-based distributions](https://repology.org/project/silkaj/versions). Silkaj v0.6.5 now comes with Click migration, auto-completion, and bug fixes, however it does not include DuniterPy migration and v0.7.0 features.
You can install Silkaj with following command:
```
sudo apt install silkaj
```
This work have been made possible thanks to jonas, a Debian developer.
## Proof-of-Work difficulty level
Since we are using DuniterPy which includes WebSocket management, this latter can be used to improve the network connection. Previously, Silkaj was sending queries every five seconds to check if a new block was added to the blockchain. Now, Silkaj gets a notification every time a new block is appended to the blockchain. This improvement dramatically reduces traffic network.
To better monitor the network, the header was improved and now displays current block’s number and its date of generation:
```{..yaml .no-copy}
Current block: n°219981, generated on the 2019-05-12 14:36:35
Generation of next block n°219982 possible by at least 31/44 members
Common Proof-of-Work difficulty level: 89, hash starting with `00000[0-6]*`
```
## New website
[![](../../images/silkaj_website_screenshot.png)](https://silkaj.duniter.org/)
At the beginning of the project, a simple [website](https://silkaj.duniter.org/) was made.
Since then, Silkaj evolved and have brought new features which should be reflected on the website.
More content was added to the website, which now has three pages: a main one, one for the features and the other one for the installation.
Attilax worked to give the website a new black style, to make it looks like a terminal.
He also translated it in French which makes the website available in two languages.
## Thanks
Attilax, Bernard, cebash, jonas, matograine, vit
______________________________________________________________________
## Install and upgrade
- [Install and upgrade documentation](../../install.md)
## Future development cycles
Future releases will add new features based on DuniterPy such as [new authentication methods](https://git.duniter.org/clients/python/silkaj/issues/173) as well as being able to send WoT documents: [identity publication](https://git.duniter.org/clients/python/silkaj/issues/90), [membership publication and renewal](https://git.duniter.org/clients/python/silkaj/issues/88), and [revocation](https://git.duniter.org/clients/python/silkaj/issues/89). It is also planned to use features brought by Click usage, to set-up a CI/CD pipeline, and locking the code with tests.
## Contribute
If you are pleased with the achievement, please contribute by reporting bugs, contributing to the code or giving to [Duniter developers](https://demo.cesium.app/#/app/wot/78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8/) libre units to improve our little world.
## Share on social networks
- [Mastodon](https://framapiaf.org/@inso/102143656918574377)
---
date:
created: 2019-05-29
authors:
- moul
categories:
- minor
---
- Bug fix transaction generation
---
date:
created: 2019-06-25
authors:
- moul
categories:
- minor
---
- Fix result of the multiplication of the amount passed as float for the transaction command
---
date:
created: 2019-07-25
authors:
- moul
categories:
- minor
---
- #239: Bug fix release for broken successives transactions due to wrongly calculated pending inputs:
- remove already used inputs: restore previous behaviour which haven’t been kept the same during the migration
- `enumerate()` wrongly moved to the non appropriate `for` loop
---
date:
created: 2020-01-22
authors:
- moul
categories:
- minor
---
- #273: Fix broken PubSec authfile importation regex
Thanks to matograine for this bugfix and the release!
---
date:
created: 2020-01-23
authors:
- moul
categories:
- minor
---
- #276: Publish on PyPI with the previous method: `setup.py`, `wheel`, and `twine`.
- `silkaj` binary does not get installed to `$HOME/.local/bin` via Poetry
---
date:
created: 2020-01-24
authors:
- moul
categories:
- minor
---
- Update DuniterPy to v0.55.1 in order to have the PubSec regex fixed
This diff is collapsed.
---
date:
created: 2020-11-30
authors:
- moul
categories:
- minor
---
- #358, !152: Update DuniterPy to v0.58.1, to support `libnacl` v1.7.2
Thanks matograine for your first release \\o/
---
date:
created: 2021-03-24
authors:
- moul
categories:
- rc
---
## Call for testing Silkaj v0.9.0rc
Hello everyone!
We are pleased to publish a release candidate of Silkaj v0.9.0, and we would be happy to receive feedback before releasing it as a stable version.
<!-- more -->
To install this pre-release version from PyPI, use this command:
```
pip3 install silkaj --user --upgrade --pre
```
Please test it globally, and check the changelog which contains the changes which happen during this development cycle.
Pay a special attention to the transaction part where a part of the algorithm changed.
There are new options on following commands:
```{ ..yaml .no-copy }
silkaj history --full-pubkey
silkaj --dry-run cert
silkaj --dry-run/--display membership
```
Dry-run and display options are defined as general options, and only defined for this three cases for this release.
# Tests
Manual tests help us making sure everything works fine for different cases.
Here are some tests we think are necessary.
Make sure you test on Ğ1-Test network to avoid any loss of money.
## `tx`
- send a TX to a unique recipient
- send a TX to multiple recipients
- with one amount
- with multiple amounts
- send a TX to 92 recipients (can be 92 times the same)
- send a TX to 93 recipients (should fail)
## `membership`
- renew membership with `--dry-run` global option
- renew membership with `--display` global option
- renew membership without these two options
## `cert`
- send a certification with `--display` global option
- cert all identities you can on GTest network (thanks for keeping it alive ;-) )
- cert pubkey `4KEA63RCFF7AXUePPg5Q7JX9RtzXjywai1iKmE7LcoEC:DRz` on Ğ1-Test -> you should be suggested two identities
- cert identity `ggg_ggg_2` on Ğ1-Test -> you should NOT be proposed many identities
## `history`
- check you history
- check you history and display userIDs
- check you history and display pubkeys in full-length
- check you history and display userIDs and pubkeys in full-length
## `wot`
- check your WoT infos are correct with `wot` command
## `checksum`
- use `checksum` command to compute a checksum for one of your public keys.
- verify it with Silkaj
- verify it with Cesium
- try to change a character in the public key (with the checksum), then verify that it is wrong.
## auth
- create an authfile for a Ğ1-Test account
- send txs or certs using the authfile
## Other
Feel free to play!
______________________________________________________________________
The release is planned for the 17th April of 2021, which will contain a detailed announcement of the changes and the new features.
Silkaj team
---
date:
created: 2021-04-17
authors:
- moul
categories:
- release
---
# Silkaj v0.9.0 release
## Introduction
The Silkaj team is pleased to announce the release of Silkaj 0.9.0.
The most important changes are highlighted in this article, if you are looking for a comprehensive list of changes, check out the changelog.
<!-- more -->
#### Transaction
Silkaj is now properly handling the transaction document size limit.
The 100 lines limit length of the transaction document in the compact format is now properly fulfilled by computing the length of the generated document.
An important bug has been fixed regarding intermediaries transactions:
When spending lots of sources (i.e. huge amounts from member wallets), many useless intermediaries transactions were sent and displayed. Intermediaries transactions are now correctly handled.
Unit tests have been written on the `tx` command, which comforts us into developing new features.
#### Refactored `id`/`lookup` command
The `id` command has been completely refactored. It now offers comprehensive results when looking for an identity by specifying a user identifier or a public key.
Now the non-member user identifier are displayed.
The command now uses same algorithm as `choose_identity()` which relies exclusively on `/wot/lookup` BMA's path.
The command has been renamed to `lookup` to represent more closely what it does. This command renaming will also allow to introduce the future `identity` command.
```{ ..yaml .no-copy }
silkaj lookup titi
Public keys or user id found matching 'titi':
→ 4qJZFRfArLaUMEXDhsd69unsKynEFNLFazAVij4HNsBa:F4z ↔ laetitia97421
→ 4LCdTC9QsmqbFSHAhyaqGdDCVPr8Ywu2DZ8hDCzkdx4n:8ta ↔ Amandinelaetitia
→ CehfxBHrowP6tXouR73GS52QhGAoNMtabooKbCvT7f3j:6cG ↔ Laetiti974
→ FtZdA1HzHcDG6utoEgg6R5jjXfEne2ftS2UzvXajKurp:6Sm ↔ Laetitia
→ EUn8uLJxgc3fVXJ1fBA74re4iD4Ws8Nk2xHytX1wLMfK:AQ2 ↔ LaetitiaCarivenc
→ HqHZt9J1U7MwC3RF1bSjPgxACsTypfNjUThYFMZZfK6X:Dk1 ↔ LaetitiaHOFF
→ 5Vcm1zkHKoAMo9yy7Lk2HDX2Yn54agavtEUdrcFNmqkP:8mU ↔ laetitiajanot
→ BfncGdTeq8qvhPZnBaM8T76SHM9xfx78ASRNZtGp64rZ:7tP ↔ titi
→ BWKuSHYojjwzAXZZxSFTf5XVWneUMZqoWGUJEfWaFRL9:21F ↔ titi43
→ 49nWdTQqDT8qpazzPeP6NH92NwppG7YEh6PFYC2VecNA:Ba6 ↔ titix
```
#### New `--full-pubkey` option on the `history` command
The `history` command adds a new option to display the whole public keys `--full-pubkey`:
```{ ..yaml .no-copy }
silkaj -gt history 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH --full-pubkey
Transactions history from: moul-test 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:baK
Current balance: 9012407.83 ĞTest, 161.34 UD ĞTest on the 2021-04-09 15:16:42
+---------------------+------------------------------+---------------+-----------------+-----------------------------+
| Date | Issuers/Recipients | Amounts ĞTest | Amounts UDĞTest | Comment |
+=====================+==============================+===============+=================+=============================+
| 2021-03-29 20:42:33 | | | | Change operation |
+---------------------+------------------------------+---------------+-----------------+-----------------------------+
| 2021-03-22 20:51:05 | WULdRTxspGdJzrs4vpZsWLGWsu37 | -193320 | -3.460 | |
| | DjqoHyhGDFr5amh:45s | | | |
+---------------------+------------------------------+---------------+-----------------+-----------------------------+
| 2021-03-22 20:51:05 | WULdRTxspGdJzrs4vpZsWLGWsu37 | -338310 | -6.060 | |
| | DjqoHyhGDFr5amh:45s | | | |
+---------------------+------------------------------+---------------+-----------------+-----------------------------+
```
#### `balance` command is now displaying corresponding member identity user identifier
```{ ..yaml .no-copy }
silkaj -gt balance 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH
╒══════════════════════════════╤══════════════════════════════════════════════════╕
│ Balance of pubkey │ 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:baK │
├──────────────────────────────┼──────────────────────────────────────────────────┤
│ User identifier │ moul-test │
├──────────────────────────────┼──────────────────────────────────────────────────┤
│ Total amount (unit|relative) │ 8634537.83 ĞTest | 162.21 UD ĞTest │
├──────────────────────────────┼──────────────────────────────────────────────────┤
│ Total relative to M/N │ 1.05 x M/N │
╘══════════════════════════════╧══════════════════════════════════════════════════╛
```
#### Display option on `cert`, `membership` commands
This general option allows to display the generated document aside of the confirmation prompt before sending the document.
It can be used for debugging, safety, or curiosity purposes.
This option has only been implemented on the `cert` and the `membership` commands for now.
The option should be available in next releases for the three others send-documents commands.
```{ ..yaml .no-copy }
silkaj --gtest --auth-file --display cert KapisTest
╒════════╤══════════════════════════════════════════════════╤════╤══════════════════════════════════════════════════╕
│ Cert │ Issuer │ –> │ Recipient: Published: #block-hash date │
├────────┼──────────────────────────────────────────────────┼────┼──────────────────────────────────────────────────┤
│ ID │ moul-test │ –> │ KapisTest: #673782-00001519… 2020-12-11 11:37:42 │
├────────┼──────────────────────────────────────────────────┼────┼──────────────────────────────────────────────────┤
│ Pubkey │ 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:baK │ –> │ HGuKgbo7s8wjKF8gQwpdPQGG8mLW9vNMq1ZFxMEZgD8c:GZp │
├────────┼──────────────────────────────────────────────────┼────┼──────────────────────────────────────────────────┤
│ Valid │ 2021-04-09 │ —> │ 2021-09-02 │
╘════════╧══════════════════════════════════════════════════╧════╧══════════════════════════════════════════════════╛
Version: 10
Type: Certification
Currency: g1-test
Issuer: 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH
IdtyIssuer: HGuKgbo7s8wjKF8gQwpdPQGG8mLW9vNMq1ZFxMEZgD8c
IdtyUniqueID: KapisTest
IdtyTimestamp: 673782-00001519FCBA6DDEFEE65B31ECD145B065F4404F870AAB272419EFA62BF5A677
IdtySignature: 1KX/Iuv7FuXsxhTwYU/RIO9L0F3I+lGvBLYXRexIoCz35H+yb2Wf3nEXA2XXCPl5aVxcxvreOW2HF43r7ezcDA==
CertTimestamp: 735968-00003F6B07F64573F6FABC510C1CEABEE8358426176BE7F190827A856873C517
Do you confirm sending this certification? [y/N]: y
Certification successfully sent.
```
```{ ..yaml .no-copy }
silkaj --gtest --auth-file --display membership
╒════════════════════════════════════════════════════╤══════════════════════════════════════════════════╕
│ Expiration date of current membership │ in 2 months │
├────────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ User Identifier (UID) │ moul-test │
├────────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Public Key │ 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:baK │
├────────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Block Identity │ 167750-0000A51FF952B76AAA594A46CA0C8156A56988… │
├────────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Identity published │ April 20, 2018 │
├────────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Expiration date of new membership │ in 2 months │
├────────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Expiration date of new membership from the mempool │ in 2 weeks │
╘════════════════════════════════════════════════════╧══════════════════════════════════════════════════╛
Version: 10
Type: Membership
Currency: g1-test
Issuer: 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH
Block: 735967-00028030F3E2AB38D7EACA997065F58E16F0497EE86BFA23B2DA222EEE80C23C
Membership: IN
UserID: moul-test
CertTS: 167750-0000A51FF952B76AAA594A46CA0C8156A56988D2B2B57BE18ECB4F3CFC25CEC2
phOKWXHxfPBgkTE+Mui8Fiqb7QSlhPrKalDOzhyUwwLySV/EE2Z/b+vZNfByTn7sFYaHWPck5dsbzJQ6M+fBBA==
Do you confirm sending this membership document for this identity? [y/N]: y
Membership successfully sent
```
#### Dry Run option is becoming a generic option
Before:
```{ ..yaml .no-copy }
silkaj membership --dry-run
```
Now:
```{ ..yaml .no-copy }
silkaj --dry-run membership
```
Note: This option is currently only implemented in the `membership` command.
Note: The difference between the `--display` and the `--dry-run` options are that the dry run option by-passes the license, and the confirmation approvals.
For safety reasons, the `--dry-run` option doesn't allow, at the end, to send the document on the network.
On contrary, the `--display` option allows to send the document to the network.
#### Python support
Support for Python 3.5 has been dropped and support for Python 3.9 has been added.
#### Silkaj v0.8.1 in Debian Bullseye
If you are a user of Debian or its derivatives, you will be able to find Silkaj v0.8.1 available into Debian Bullseye (v11) which is about to be released.
Silkaj package has been updated from v0.6.5 to v0.8.1 and DuniterPy v0.60.1 entered Debian repository for the first time.
#### Outlook
In the next developments, we are planning to work on DeathReaper, the implementations of the `revoke` and the `identity` commands.
The removal of the asynchronous property, the migration from `tabulate` to `Texttable`, and the migration from BMA to GVA.
### Thanks
matograine, moul, jonas, atrax
This diff is collapsed.