Presentation and new light web client Ğ1nkgo

Un portefeuille juste pour les paiements, ça me convient très bien.
Maintenant, j’ai juste hâte de pouvoir installer ça sur mon smartphone.

A wallet just for payments is fine with me.
Now I just can’t wait to get this on my smartphone.

3 Likes

I did add Ğ1nkgo to the first general table Clients and tools comparison.
To be completed.

Would you like to have the repository moved to clients group?
Should we create a dart sub-group to be shared with Ğecko repositories? @poka? Ğecko repositories would get a new URL.

1 Like

Now is failing again for some reason. PS: ok, I see now your last comment.

I use durt for payments and durt do the OPTIONS first and later the POST on payments.

G1nkgo is something that I was not expecting to do, sincerely. It’s quite difficult to me to do these kind of efforts in my spare time (because of my lack of time, because of my health, and for other reasons). But, someone added me to the Spanish tech group :slight_smile: , and there mentioned that some light web client was needed. I suggested several times, to use flutter and some code from gecko to do it. And as “to talk is cheap” suddenly I started to code and here I am.

When someone mentioned me about durt, I trash the pure crypt code I had to create wallets, and I started to use the wallet part of durt. Recently when I started to achieve to use gva via a proxy, I did the same with the duniter code I used to calculate the history and the balance (maybe I have to rescue some part in case gva fails temporally to retry with duniter).

I was with the sensation that we were sharing code. Later you, poka, clarified me that you are not using durt right now.

But my motivation to do Ğ1inkgo was the problems that I saw in the markets:

  • People using paper
  • People without wallets at all for different reasons (lack of knowledge, lack of space, …)
  • People asking for help because they lost the pass/phrase (many of them, all the time)
  • People with passwords annotated in papers in all the markets (so here I agree with @flodef about the social hacks) some working, some not working
  • People like me that couldn’t pay because Cesium was not working correctly
  • Other serious usability problems that I suffer myself and I saw in others
  • Friends installing Cesium (after talking them about duniter/Ğ1) and trying to use their “I-use-the-same-password-everywhere” and losing the interest minutes later in use Ğ1 after the password/passphrase wall.
  • IMHO, the use of “you are not a member” everywhere in Cesium is not a warm welcome to newcomers. This is why I do not mention things related to WOT in Ğ1.

(and these are the reasons that comes to my mind right now, to say something).

So I was thinking mainly in mitigate these kind of scenarios mainly to newcomers. Are these also goals of gecko?

If yes, or partially, count with me. If not, we can try to share as much code as possible in some common libs and not to try to solve the same problems again and again, and to have to faces (gecko and g1nkgo) for the same client libs.

BTW there are some MR in:

I was thinking in this a bit, but I didn’t find a good solution. I derived thinking in RO distros, and things like that, but none seems to work.

A signed app sounds like a the better option, and to let the web client just like a starting for the firsts uses (try without effort, continue later with g1nkgo app, continue later with cesium/gecko).

I completed it.

Feel free.

BTW, this weekend I installed a production server:

More info:

PS: Duniter CORS successful test:

3 Likes

Pour moi, il manque juste la possibilité de payer en DUğ1, et l’installer sur mon smartphone.

For me, it just lacks the ability to pay in DUğ1, and install it on my smartphone

A post was split to a new topic: Ğ1nkgo requests

Those are real motivations (meaning problems to solve) that I also encountered on markets (using another blockchain). I thinks those concerns need to be taken into accounts and discussed.
I see only big advantages to web app VS extension VS mobile app for creating a friendly usable wallet and as such, I’m inclined to go this way in priority.
If we can afford it, it would be great to have these three possibilities developped and let users choose which is the best for them (see Solflare wallet as an example).
On my spare time, I would really love to collaborate on this project as I want to learn more about flutter, even if I think a web app should have been done in a more recent web language (Next.js or Vue.js for example). I mean, if it’s okay with you @vjrj ?

I strongly disagree with this one.
To reply to @tuxmain concerns which are great ones, I would suggest the following:

Web app security

IMPLEMENTATION
Let’s say you have your web app (G1nko) you develop, so many change are happening which are transparent to the user as she doesn’t need to update anything (as you mentioned).
All the wallet interactions (mainly storing private keys and signing transactions) are handled by a separate module (preferably web workers). This module is very rarely changed has once the function are implemented, only a blockchain protocol change would trigger a need to change the Wallet module.
As a security measure, the wallet module has a specific hash so when it is changed, the hash also changed. This hash is stored on the blockchain on multi sig account (best way) or any other decentralised storage with a multi sig access. Multi sig means that it should have more than one dev validation to modify the key).

USAGE
When the web app needs to do an operation, it will first request the hash, then check the wallet module against the hash. If it matches, perfect, it means that the wallet module is correct and the user can perform wallet operations and transactions. Otherwise, the wallet module has been hacked or the key not yet updated.

What prevents the web app to be hacked and bypass the wallet module? We can sign things, but browsers cannot natively check code for now. This cannot be solved using only layers and indirections, it is still needed to reliably install at least one thing (e.g. a generic DHT proxy with hash checking, a package manager or a specific extension).

I think such a wallet may be ok for small amounts (and even then, 1000 small accounts makes a large account, so it should be decentralized) but it should warn the users about the risks, maybe even refuse to handle too much money, and refuse to handle member accounts. (except for test blockchains, where we don’t need that much security)

1 Like

I’ve just released a apk first version here:

Note: I have the same wallet of the web exported to the android version, and works as expected in my firsts tests.

@flodef , you are more than welcome. I’m quite newbie is all this ecosystem. Flutter is from 2017… is this now old !? :slight_smile:

Regarding the discussion on security, I was thinking this weekend about the “backwards law” mentioned by Alan Watts, which states that often you achieve the opposite of what you want. For example, you want to impress a girl but with your attitude, you may end up achieving the opposite effect; or if you want to feel secure in your house, and you install visible alarms and bars on the windows, you may end up drawing more attention and attract potential thieves.

In our case we want to be very secure with our passwords/passphrases but at the end there are users that sometimes are quite exposed (if people cannot remember their pass/passwords and bring them in a paper that anyone can memorize or make a photo) as they are doing this is a open market and frequently. Even me, using a password manager with other pass in public anytime I want to use my Cesium.

BTW, what a good talk!

5 Likes

J’ai installé le .apk, mais impossible d’importer le portefeuille que j’avais exporté depuis le site web. Je ne peut pas naviguer pour retrouver le bon dossier.

Sera-t-il possible un jour de payer en DUğ1 plutôt qu’en ğ1. Le DUğ1 sera un invariant temporel, ce serai bien de pouvoir l’utiliser pour payer.


I installed the .apk, but I can’t import the wallet I exported from the website. I can’t navigate to find the correct folder.

Will it ever be possible to pay in DUğ1 rather than ğ1. The DUğ1 will be a time invariant, it would be nice to be able to use it to pay.

1 Like

You can create a backup to see where the wallet.json is placed. In my case Android/data/org.comunes.ginkgo/files
This is the application folder so you don’t need perms to access it. Brave save a wallet export in a similar place.

I tested the APK, it’s very handy on the phone :star_struck:
we get a better sense of the app use than in the browser
GVA allows to be very quickly notified about a new transfer, that’s a game changer, thanks to bring it to life!

Feature requests:

  • add information on the “send” button when it is grayed out to explain why
  • add scan button in the contact panel to be able to add a new contact from there
scan does not work without google play services


PS: I added Ğ1nkgo to the software page on duniter website: Duniter | Software

3 Likes

J’ai exporté mon portefeuille depuis l’application, et je le retrouve quand je tente de faire un import.
J’ai incliné mon téléphone pour voir le nom du fichier en entier.

I exported my wallet from the app, and I can find it again when I try to do an import.
I tilted my phone to see the full file name.

.

Quand je cherche ce fichier ou ce dossier avec mon gestionnaire de fichier, je ne retrouve que les portefeuilles que j’avais exportés depuis le site web.
Je ne retrouve pas le dossier utilisé par l’application.

When I search for this file or folder with my file manager, I only find the wallets I had exported from the website.
I can’t find the folder used by the application.

Very great work ! I just added your work on https://infojune.fr

3 Likes

I’ll add to the the issues, thanks for the feedback.

Merci!

See the directory below “Select the wallet backup” .

image

Does your file manager have access to others directory?

Merci! Can you add better: https://g1nkgo.comunes.org/ (the other is more a demo/test site)

BTW, I’ve just published a new version with fixes, and the apk includes notifications (let’s see if works as expected).

https://git.duniter.org/vjrj/ginkgo/uploads/5e9eb1cf77dc480539b73b2ec97b53ad/ginkgo-0.0.16.apk

image

1 Like

image

Does your file manager have access to others directory?

Mon gestionnaire de fichier me permet de naviguer sur tous les répertoires. J’ai même activé l’affichage des fichiers caché.
Mais je ne trouve pas le répertoire utilisé par l’application.
Je suis un utilisateur basique, Mes compétences sont très basses. Mais je pense que cette application est prévue pour les utilisateurs comme moi.

My file manager allows me to browse all directories. I have even activated the display of hidden files.
But I can’t find the directory used by the application.
I am a basic user, my skills are very low. But I think this application is meant for users like me.

I’ll try to fix with more energy because I spent a lot of time trying to use the downloads directory without success with permissions issues (this changed a lot between different Android versions, and the documentation and libraries seems to me not very up-to-date). The app application folder does not have so much restrictions.

Can you try the new version I’ve just published?

More info in:

These and other issues in:

2 Likes

Le problème, c’est que je n’arrive pas à retrouver le dossier de l’application, je ne sais pas comment le retrouver pour y mettre le .json que j’avais exporté depuis le site web.

Par contre, l’utilisation des contacts avec le scan de qrcode et le glisser pour faire des payements est vraiment super pratique, j’adore.

The problem is that I can’t find the application folder, I don’t know how to find it to put the .json I had exported from the website.

I’m not sure how to find the .json file that I exported from the website, but the use of the contacts with the qrcode scan and slide to make payments is really super practical, I love it.

It should be here:
image

but I have to find other easier option, please follow:

Je l’ai trouvé, merci.
Pas évident pour l’utilisateur lambda.
SI je pouvais le sauvegarder directement sur la carte SD ce serait réellement un plus.

I found it, thanks.
Not obvious to the average user.
If I could save it directly on the SD card it would be a real plus.

  • :white_check_mark: If qr works without google services
  • :white_check_mark: New qr scan in contacts
  • :grey_question: I also improved the send button that it should work better now

Works perfectly! For the send button, I did not see the difference. It could display “insufficient balance” on long tap when greyed out for example.