Silkaj v0.6.x releases: Let’s install

Six months after the previous release, I am pleased to announce Silkaj’s v0.6.0. for the twelfth Libre Currency Meeting.

This release comes with 124 commits including eased installation procedures, multi-recipient transactions, wot view improvements, Scrypt authentication by default, network performances, and much more.

Highlighted features

Installation eased with Pypi/pip (for users)

Installing Silkaj has been a burning issue: Only Fedora users could install Silkaj with the Pyinstaller binary. 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 Pypi:

pip3 install silkaj --user

Developer environment with Pipenv (for developers)

We switched from pyenv+pip to Pipenv because Pipenv offers a better development environment.

Transactions

Multi-recipient transactions

Thanks to @cgeek, Silkaj is the first client, besides Remuniter, to be able to send multi-ouput transactions.
This means, with just one single transaction users will be able to send money to one or several pubkeys.
To do so, you need to separate the output pubkeys with a colon : operator, as follow:

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 purpose of this feature is to remunerate the developers working on Duniter.

Display panel

Before the transaction takes places, there is an indicator that shows the current amount of the pubkey and the amount after the transaction.

See example above.

Two wrappers

WoT view improvements

  • Certification stock display
  • Membership expiration due to membership document or certification expirations
  • Identity status
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, we always had to specify an authentication method.
Now, when no authentication method is specified, two inputs will prompt to authenticate with the scrypt method.
You can still specify other authentication methods, as follow:

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 option --gtest has been added allowing to communicate with the Ğ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 had to be retrieved every time needed. Now, that the piece of information has been fetched, it is stored.

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 for the 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:

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

Silkaj’s logo which has been designed by @Attilax is now fully funded!

Changelog

For further details, check out the changelog.

Thanks

Special thanks to @Moul, @Cebash, @cgeek, and @Attilax
Thanks to @vit, @Inso, @vincentux, and @jardin.


Install

Future development cycles

  • v0.7.0 will be focusing on refactoring Silkaj in order to migrate to DuniterPy usage, a more robust API implementation to share a common code with Sakia.

  • v0.8.0 will add new features based on DuniterPy such as new authentication methods as well as being allow to send wot documents: identity publication, membership publication and renewal, and revocation.

  • v0.9.0 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 libre units to improve our little world.

Share on social networks

10 Likes

Top !

Silkaj v0.6.1 release

I am pleased to announce the first minor release of Silkaj v0.6.1. This release comes with a major bug fix for transactions with big amounts and the ability to renew certifications.

Highlights

Bug fix in intermediaries transactions

When sending a transaction with a big amount, there is a limit of forty sources per transaction allowed by the Ğ1 protocol. In order to reach a big amount of money with only forty sources, the clients proceed beforehand to changes operations to concatenate more money into few sources.
Since the multi-output feature, a regression was introduced, the intermediaries transaction’s recipient were wrong and sent to the recipient of the transaction.
This release fixes it!

Allow to renew certifications

Duniter 1.7 now allows to renew certifications before the expiration.

This protocol modification is now live on the Ğ1-Test currency since the first of December 2018 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.

Changelog

For further details, check out the changelog.

Thanks

Thanks to @Moul, @Galuel, and @Bernard


Upgrade

pip3 install silkaj --user --upgrade
2 Likes