Gridcoin Web Wallet and Android App Alpha

in #gridcoin3 years ago (edited)

Hello Gridcoiners,

The idea is that we go mainstream.

Recently i started developing a gridcoin wallet for web and android, with similar approach to mymonero. Many of you probably got bored on slack with my tons of questions, sorry for that. Especially brod :)

The goal is to provide:

  1. Easy way for ordinary people to create wallet.
  2. Easy way to login without having to sync
  3. Easy way to check balance and send gridcoins
  4. Secure way to login with smart card, or Java enabled USB sticks. (Working in progress).
  5. Ability to get your decrypted private key upon registration that could be imported into research wallet / full node.

I am putting a very early alpha of https://www.gridcoins.org/

So far, what's functional:

  • User can register, get address and a decrypted private key
  • User can receive GRC
  • User can send GRC

At the moment, web version is running on test network, and should be used for testing only.

Some preview of android app, I will publish it after proper testing for a public testing.

Screenshot_20171225-102921.png

Screenshot_20171225-102906.png

Screenshot_20171225-102840.png

Screenshot_20171225-102813.png

Feel free to take a look at https://www.gridcoins.org and bring your suggestions. I will put the project on GitHub as soon as the code starts to look a bit reasonable :)

Remember, it's running on a test network, and needs to be more properly secured. This is very early alpha.

If anyone want's to donate and support further work, addresses are:
GRC: S1fvbZH9YpLPCT6TDnmNyi6QnZobEN4s21
BTC: 1C9iAygJ5MCqHsdkNUdHpmb9LJYFGnu6T8

After initial testing and code modifications to make it readable, I will put the code on github, as well as give root ssh access to developers on slack. If we decide to raise a foundation, www.gridcoins.org goes to it's ownership.

I am now continuing to develop USB smart card login, and a procedure of exporting base58 keys to openssl PEM readable format, which opens a possibility for more affordable cold-storage devices and 2FA.

Update:

Android App Alpha is live on Google Play.

Grab it from here: https://play.google.com/store/apps/details?id=org.gridcoins.grcwallet

Screen Shot 2017-12-25 at 5.04.02 PM.png

Thanks,
Stefan

Sort:  

Whales at #beyondbitcoin would upvote this like crazy ;)

@vortac, what's your overall opinion about things we are in need and would make an impact to some degree once built? I am looking for Ideas and trying to identify what's missing.

I mean generally speaking of grc...

Well, I am not a dev, so I can speak only in very general terms. Obviously, we need a safe and reliable solution which would allow us to scale to 4.6 million currently registered BOINC users. Easier said than done, yeah.

From a marketing perspective, I guess we need to offer some compensation here as well - perhaps less than for devs, but a compensation nevertheless. Pro marketers who are willing to work for free are very hard to find, as you can imagine, so our marketing efforts are sporadic and ad hoc, which is not the way you want to do marketing.

@vortac, that is Interesting. However I don't think we should ever allow to have scalability issue. What we have is one of the largest supper computer on earth in terms of processing power. If we have scalability issue, then it could come only from the organizational problems.

From the marketing perspective I think you are totally right. Most of the technology people, even worst, those from crypto world i talked to, usually had no idea of GRC, but after a brief description most jumped into it and did more research. However, this could be organizational problem as well, since most of us do have a channels that could be used to systematically promote GRC and stick to a plan.

Not sure how to overcome that, as it looks that key people that contributed the most are not stepping out with a plans to be executed. I'll try to make a few projects on my own and hopefully get other people to join and help me with that, but that would not overcome the core problem, as we - technology people still need leadership people to make everything in sync.

This is amazing and will be a great help gaining more public attention.
I'm curious about testing the app and would love to here about your progress in some more steemit posts

Thanks @theissen, I will take a short break from programming and monitor what's happen with web wallet on test net to identify problems and bugs, you can test web version and try to break it every way possible. My idea is to concentrate on clean GRC integrations for regular users, just as you said in order to get more publicity. Especially now when we can observe fall of BTC and stable price of GRC - which proves it was very devaluated, in my opinion due to lack of tools for "common Joe".

This is the most important thing for GRC IMO, as you say tools for the "common Joe".

Keep up the good work!

Well said ..

K.I.S.S. should be the mantra!!

boinc
Courtesy of @joshoeah

Man way to go! This shows some super impressive initiative!
It seems as of lately we have had many new people join the Gridcoin community and show you don't have to be around for a long time let alone any time at all to contribute.
We seem to have people whom want to retard that in the ranks of leadership , so many people get discouraged and passed up or pass on and you have not had time to be tainted by it.
Because of them , if you are not someones lackey or part of their irc/slack/steemit/cct/mumble/etc fanboi club or agree with all of their ideas or thoughts & views you get belittled, ostracized and shunned.
I am glad to see someone new just jump in and do something original and not lurk the different social media forums to steal someone else's ideas or work.
Over the past 8 months of the Gridcoin mumble sessions people have talked about wanting to make a stand alone BOINC/Gridcoin OS ( myself included ) but do not code or coding is very limited , same with a portable/web based wallet along with an Android client or per the last session " GridcoinLite " for Android. I would encourage you to join the next one if possible ( or next possible one for your life ) and get some real time feedback and ponder some ideas. @peppernrino has many great ideas in relation to a portable/android/web client and would be a valuable asset in this project , as much as this project is a value added asset to Gridcoin and the Gridcoin community itself.

Hi @jamezz and thanks for the feedback. I did joined discussions both here and on slack at about same time (about 2 weeks ago) without knowing anyone, here nor on slack. I did found that Slack is a way more 'conservative' territory, that could easy discourage someone if he is not able to defend his grounds. But the good side of that is a productive criticism. Here is more open and more encouraging, but at the end of day, if whatever you do (no matter if it's good or bad) get's tons of great reviews, you would not be able to tell if you are doing fine or not. So I try to collect opinions on both and "find the middle one".

I would definitely try to engage with your ideas as well, try to contribute as much as possible. In my personal opinion it's not that important how much high quality work we do, it's important that something is happening, so I would personally support any idea in the most possible constructive way. If i can't help, i'll try to keep my mouth closed :)

Very nice, interested to see where you go with this. I assume this is connecting to a fullnode in the background? If so would it be possible to make that easily configurable? My idea is to be able to connect a copy of the website/android client to your own trusted fullnode; this would be good for example for business wanting a point of sale terminal, with the security of confirming their own transactions.

@scalextrix, you are mostly right. The "jumbo dance" comes with key generation out of username and password (Similar to bip39 approach ) in order to be able to "forget" the key once user logs out for security. This part is still far from perfect, hence the reason why not publishing on main network yet. However, if everything shows-up to work well, I actually do plan to make exactly what you are talking about. An API that can be used for this purpose.

I'll try to make "node" config modular, so it can be used to deploy on node of the choice, as well as multiple round-robin nodes for added security.

Great job! This is exactly what Gridcoin needs! Really cool will test it out. Thanks for your work.

@grider123 Thanks mate! Feel free to post everything you find wrong / can be done better / etc with the web version. I'll start a separate post for android one as soon as it get's approved on google play. Have in mind, it runs on test network so only M* addresses are supported until we all find it reasonable to put it into production.

@crt I saw that the Android Wallet is 'only' a browser for the web version. If you are familiar with Angular and Typescript it maybe worth looking into ionic framework. This framework allows you to develop cross platform apps with typescript and angular. See here
I could help you with the development as I have some experience with ionic. If your web version had an API I could try to build an Android app using your web wallet api :)

A second thing I noticed I can login to the web wallet with the credentials Username / password. Maybe you shouldn't allow the default value to be used as a password as it is possible to only set the username and let the password stay the default value password.

But the site as a whole looks great! Thanks for your work.

Hey @grider123,

You are right, I am currently looking into possible frameworks to achieve that. The current version is a webview, as you noticed, and as you suggested, the Idea is to move it to API approach. Since I am "old school" unix type, i'll need some time to get inline with all these new technologies, but thanks for pointing me.

If you would like to build an android APP, i would be happy to make a class that would expose RPC calls via HTTPS. (the back-engine is RPC, i did not invented any hot water here.)

Make me a list of calls that you need, and a github repo you would like to start, and I'll make a class and publish it there. The class woulld be able to communicate with my node or any other. This way we can start a migration from webview to API based approach. I would be happy to make an RPC to API as per need of application. Later this class could be used in many other projects and web apps.

Cool! I will start putting something together with ionic in february when I have more time. When I'll get somewhere I will get back to you so we can work out the backend stuff. Don't know if I'm a good enough developer to get somewhere in reasonable timeframe...
Just a quick question: the username/password is stored in your backend and when loggingin the system fetches the private key usw?

Looks great! let's catch once you can start. As for the login, at the moment, private key is generated out of the combination of username and password, while validity is checked against the database. This approach is similar to bit39 method although I am using self made function.

The backend stores address only, and tries to decrypt it with private key derived from username and password. If unsuccessful, login fails.

This part needs to be changed before releasing anything on main network as it's not secure enough yet, nor properly tested. I am currently looking into existing libraries that are proven against security risks in order to replace the self-made function with something more reliable.

As for the default login, it's intentionally leaved that way so everyone can login and take a look without having to register.

You are building what is a missing link in gridcoin ecosystem. Light wallet, quick access, easy send / receive / store are much needed features / tools.

This is a remarkable development. Thank you!

P.S. I would prefer white logo on blackish background while purple logo on white-ish background. Day / night modes could be implemented.

Thanks Mate! I'll do my best.

That's great !
Is it possible to stake with the webclient ? Or the Android one?
I'm looking forward on updates !

@chronosamoht Unfortunately staking is not possible with web or with android yet. I am thinking about how to approach to this as well as to many other problems. Yet, i'll need to learn a lot before this goes onto main-net. Everything discussed here going to wishlist, however it's most likely that both wallets will serve just for transactions in next period.

Excellent work .. Thanks for taking the initiative!!

This will achieve the interest we need and move us into the mainstream ..

boinc
Courtesy of @joshoeah

Congratulations @crt, this post is the tenth most rewarded post (based on pending payouts) in the last 12 hours written by a Dust account holder (accounts that hold between 0 and 0.01 Mega Vests). The total number of posts by Dust account holders during this period was 7397 and the total pending payments to posts in this category was $1723.05. To see the full list of highest paid posts across all accounts categories, click here.

If you do not wish to receive these messages in future, please reply stop to this comment.

Yes! Way to go @crt, this is the type of thing i was hoping to come out. Not a fan of multi wallets. If you need any feedback or input, or any help, let me know, as id love to help with anything gridcoin related :)

Thanks mate! Nice too see so many people willing to help!