Author Topic: FIMK Community Client  (Read 17549 times)

Dirk Diggler on: July 26, 2014, 12:15:51 AM

  • FIMK Staff
  • *****
  • Posts: 486
    • View Profile
    • Krypto Fin ry
Hi everybody,

We're proud to present to you the first steps towards the FIMK Community Client, written from scratch on the popular (future proof) Angular platform.
In the coming weeks we'll be adding the following features to our client. How these features will look exactly is up to the community we really want to make this software from and for the community members.

During development we'll be showcasing the latest state of FIMK Community Client on the wallet.fimk.fi domain.

https://wallet.fimk.fi:7886/beta/index.html - Online BETA version

http://fimkrypto.github.io/fimk - FIM Community Client Project (Getting Started, Architecture)

https://github.com/fimkrypto/fimk/blob/master/fimui - Source code

Planned feautures:

Those features that have a striked-through have already been implemented.

  • Multi Account Support
  • Read Only/No passphrase required
  • Support for both NXT and FIM from a single client
  • Encrypted (bitcoin like) password protected wallet.dat
  • Theme Switcher - Switch between several pre-made stylesheets of create your own
  • Asset Exchange Initial UI online here
  • Digital Goodsstore
  • Contacts Manager
  • Messenger with support for Encrypted messages
  • Free off-blockchain (encrypted) chat/direct messages
  • Client side transaction signing (your key will never leave your client)
  • Installable Android version of the FIMK client
  • Installable Windows version of the FIMK client beta version available
  • Installable Mac version of the FIMK client beta version available
  • Installable Linux version of the FIMK client beta version available
  • Full support for mobile devices
  • .... ? need more features ... let us know in the comments  ;)
Please keep in mind this is beta software, it contains several bigger and smaller bugs that we're aware of and will be fixing soon.

Using the wallet is safe. The current version will not require you to enter your passphrase, just entering your account id (RS format) is enough to start adding accounts. The only part that is operational currently is the accounts section.
« Last Edit: September 15, 2014, 11:15:58 AM by Dirk Diggler »
FIMK Developer | GPG fingerprint: CEF2 7C39 43BE 6800 504E  71BC 7E87 A7B0 AC34 E2D5 | mofowallet.com | blog

id-entti-tentti #1 on: July 26, 2014, 01:24:44 AM

  • Senior Fimker
  • ***
  • Posts: 188
    • View Profile
Thank you and sorry for your loss.

I can think of many uses for biometric identification for "proof-of-homo sapiens" block chain ecosystems, but maybe adding that is not most urgent.  :)
« Last Edit: July 26, 2014, 01:37:51 AM by id-entti-tentti »
FIM-K56K-6XHL-DWT8-ANWN9
NXT-73NA-CWA6-KHV5-65HPC

Dirk Diggler #2 on: July 26, 2014, 01:18:28 PM

  • FIMK Staff
  • *****
  • Posts: 486
    • View Profile
    • Krypto Fin ry
I can think of many uses for biometric identification for "proof-of-homo sapiens" block chain ecosystems, but maybe adding that is not most urgent.  :)

Yeah maybe leave that one for a little later.  ;)

The current version uses window.localStorage for storage of accounts and transactions but this is not sufficient, we need a proper client side database. It should do the following ..

1. Is very fast
2. Has lots of storage space
3. Has support for queries/indexes
4. Is supported on Android, IPhone, Chrome, Firefox and the latest IE versions.
5. Uses a wrapper library/works the same in all clients

Scouring the interwebs I find the following solutions..

YDN

Unified data access layer on IndexedDB, WebDatabase and WebStorage storage mechanisms.

http://git.yathit.com/ydn-db/overview
http://dev.yathit.com/

I like this project because it's been around for a while is under active development and they seem to have tests for most of their code.

IndexedDBShim

A polyfill to enable IndexedDB using WebSql.

https://github.com/axemclion/IndexedDBShim

Still pretty active project, does not follow the wrapper requirement but instead uses the IndexedDB API directly. The WebSQL standard is on it's way out while IndexedDB was presented as a new web standard at the w3c. Compared to YDN: pro; that there is not another external depency. against: we might need to work around inconsistencies between browsers/oss.

Some other solutions

I found the following other solutions that require some more looking into..

https://github.com/aaronpowell/db.js
http://pouchdb.com/
https://github.com/jensarps/IDBWrapper

~_~

To everybody. Please let me know your thoughts/experience/opinions so we can pick one asap.
FIMK Developer | GPG fingerprint: CEF2 7C39 43BE 6800 504E  71BC 7E87 A7B0 AC34 E2D5 | mofowallet.com | blog

id-entti-tentti #3 on: July 26, 2014, 02:30:19 PM

  • Senior Fimker
  • ***
  • Posts: 188
    • View Profile
Just couple more thoughts on biometric identification, to clarify and then leave it to rest for a whle. If we want to create some day block chain based proof-of-identity ecosystems (community currencies, sustainable basic income systems, mutual social / health /etc. insurance) that are not dependent from and limited by third party (e.g. governments and banks) databanks and channels, tech for e.g. fingerprint identification via personal computers is already available, though currently somewhat limited to "professional laptops" and such. The availability of needed tech is not major obstacle, though, as for the PoI systems referred to, one-time biometric identification would be enough, e.g. when joining and registering as a unique human organism member of e.g. sustainable basic income system.
FIM-K56K-6XHL-DWT8-ANWN9
NXT-73NA-CWA6-KHV5-65HPC

warmach #4 on: July 26, 2014, 08:39:52 PM

  • Senior Fimker
  • ***
  • Posts: 230
    • View Profile
Can I ask the dumb question...

How is this different than the existing java client?  I am not sure I understand what the "community" part of this means.
Warmach's Forging Pool
http://fim.warmach.info/pool/
May the forge be with you...

simakki #5 on: July 26, 2014, 11:29:13 PM

  • Fimker
  • **
  • Posts: 51
    • View Profile
Thats sounds suberb, i can only imagine how important that is to inviting newbies outside of crypto world, one click app in your own mobile device is a really BIG thing !

Dirk Diggler #6 on: July 27, 2014, 12:07:31 AM

  • FIMK Staff
  • *****
  • Posts: 486
    • View Profile
    • Krypto Fin ry
Can I ask the dumb question...

There is no such thing as a dumb question.

How is this different than the existing java client?

We're going to solve all issues that our current, forked NXT client has. There are many issues but a few of the bigger ones are..

1. Have it run and work perfectly on mobile devices (this includes creating installable Android, IPhone and Windows mobile apps)
2. Get rid of the dual step start java + start client. There will be a installable windows + mac + linux desktop version (which installs java to).
3. Prepare it for fully hosted usage (you no longer run a forging client but connect to one of the bigger ones on the net, or run a forging client but that will probably not be on your mobile)
4. Make it usable as a secure encrypted direct messaging app (again which runs on your mobile)

I am not sure I understand what the "community" part of this means.

Thats a philosophical choice.

Sure we can built this ourselves with no community input/help but that will not lead to the best possible client out there. If you take the current NXT client for instance, their client is a very nice piece of work, but choices were made by it's developer that are hard to turn back now and that make further development difficult.

If these choices at the start of development were discussed among community members i'm sure other choices would have been made and you would have seen the NXT client running on Android and IPhone already and probably months ago.

We have capable developers in our team and we could of course built this client without going this crowd/community route. But at the same time there is no shame in admitting that multiple heads together are smarter than one single head.

I hope this explains why we call it the FIMK community client.

Choices

Some choices have been made already. The most fundamental is the platform choice, which is Angular.

I would like to explain this fundamental choice:

The Angular team was recently bought/hired by Google and google uses Angular to make for instance it's GMail application (when you visit http://gmail.com you're looking at an angular app). Angular allows you to program a web application (site/mobile app etc) as if it's a desktop application. The difference here is that Angular supports data-binding in a very smart way plus it's made compatible with almost any browser out there. Another big plus of Angular is that it forces you to use an MVC approach to designing your app, this ensures your code is structured and you (or another developer) can extend that what was built already.

Finally Angular allows you to develop fast. The current beta that's linked to in the OP was built in less than 2 days to give you an idea about how fast.

A second choice that has already been made is that of the CSS framework. The current beta uses bootstrap and more precisely the Angular-UI bootstrap components. The choice for bootstrap was strongly influenced by the fact that the Angular community has kind of agreed that bootstrap is the way to go, partially maybe because the Angular-UI team picked bootstrap. (Angular-UI is a very big player in the Angular community).


~~~


If you're reading this and think all this Angular, MVC, bootstrap stuff is over your head and you don't see how you can contribute. Be assured that any form of feedback/question/remark even saying that it sucks in all possible ways. Will help make this client the best crypto client out there, please don't think for a moment that your question is dumb or irrelevant. If it is, I'll let you know  ;)
FIMK Developer | GPG fingerprint: CEF2 7C39 43BE 6800 504E  71BC 7E87 A7B0 AC34 E2D5 | mofowallet.com | blog

Dirk Diggler #7 on: July 27, 2014, 12:19:24 AM

  • FIMK Staff
  • *****
  • Posts: 486
    • View Profile
    • Krypto Fin ry
Just couple more thoughts on biometric identification, to clarify and then leave it to rest for a whle. If we want to create some day block chain based proof-of-identity ecosystems (community currencies, sustainable basic income systems, mutual social / health /etc. insurance) that are not dependent from and limited by third party (e.g. governments and banks) databanks and channels, tech for e.g. fingerprint identification via personal computers is already available, though currently somewhat limited to "professional laptops" and such. The availability of needed tech is not major obstacle, though, as for the PoI systems referred to, one-time biometric identification would be enough, e.g. when joining and registering as a unique human organism member of e.g. sustainable basic income system.

Thats a really hard problem to crack, especially relying on computer signals only (finger print, iris scanner etc) since with the right equipment this can be spoofed. I also understand the dependence of government is an issue for some.

I agree, lets not get into this to deep. But I believe that if you want to go this route the confirmation that you're human has to come from the other human users on the system. Kind of like a turing test for humans, but you cant hardcode this test into the blockchain since this allows an attacker to see the answers to. What you could do IMO is rely on the randomness created by the blockchain/crypto and rely on that randomness to link together groups of users in different roles (question asker, answer giver, verifier etc) and then simply rely on the goodness of the majority. If you can accept the majority to be good this could work. Only drawback is that the majority could also be bad.

Relying on a government for this data has it's pros.

Thats sounds suberb, i can only imagine how important that is to inviting newbies outside of crypto world, one click app in your own mobile device is a really BIG thing !

It's probably the only way to do this. Todays computer/web users will not accept anything less than. 1. Click 2. It works.
FIMK Developer | GPG fingerprint: CEF2 7C39 43BE 6800 504E  71BC 7E87 A7B0 AC34 E2D5 | mofowallet.com | blog

id-entti-tentti #8 on: July 27, 2014, 02:21:54 AM

  • Senior Fimker
  • ***
  • Posts: 188
    • View Profile
Thats a really hard problem to crack, especially relying on computer signals only (finger print, iris scanner etc) since with the right equipment this can be spoofed. I also understand the dependence of government is an issue for some.

I agree, lets not get into this to deep. But I believe that if you want to go this route the confirmation that you're human has to come from the other human users on the system. Kind of like a turing test for humans, but you cant hardcode this test into the blockchain since this allows an attacker to see the answers to. What you could do IMO is rely on the randomness created by the blockchain/crypto and rely on that randomness to link together groups of users in different roles (question asker, answer giver, verifier etc) and then simply rely on the goodness of the majority. If you can accept the majority to be good this could work. Only drawback is that the majority could also be bad.

Relying on a government for this data has it's pros.

Since you mention "philosophy" and "community", couple more comments on that level.

- Probably everything can be spoofed, but as the saying goes, "perfect is the worst enemy of good". One time fingerprint identification together with some additional features when joining a PoI coloured coin / asset might be good enough for at least some PoI systems (community coins etc., also geographically dispersed). I believe the fundamental philosophy of block chain ecology is to replace third party state and bank and government authorities and create a global p2p community (Another world is not only possible, it is inevitable :)), and pragmatic considerations aside, arbitrary citizenship limitations to who can belong to a block chain community and who not are against this philosophy. Satoshi's solution to Byzantine General Problem and the community language sort of supposes that majority ("51% attack") is "bad" and anarchic mathematical consensus is "good". As FIMK is already going to be a major step forward in the PoI & basic income front, I hope we continue to disrupt, excel and astonish in this respect.

Related to above, improving the asset function is critical. What additional options / features are already in the plans?

Couple suggestions:
1) I don't know the origin and context of "colored coins", but ability to design a colored coin symbol for an asset would be nice, fun and useful, making the asset exchange more aesthetic and visually informative.

2) FIMK price for creating an asset? Fixed (10? 100? 1000?) or some sort of choice mechanism that would make some sense?

3) Counterwallet looks like horrible mess, but it has these choices for asset creation:
¤ Is locked?
Locked tokens may not have additional unit issued.
¤ Divisible token?
Divisble assets can be subdivided into decimal places.
¤ Callable token?
Callable tokens may be called back at a specific date for a specific strike price.

4) Choice to send transaction fees from internal asset exchange to the asset creation account, instead of biggest stakeholders, could also be useful.

5) categories/tags for different types of assets, to make asset exchange more user friendly. Preset categories might be more "clear" at the first thought, but maybe creator tags would be more informative in the long run and more in line with p2p philosophy. Maybe there's a good balance somewhere between.

6) Finnish (and Swedish?) translation of 'asset'???



« Last Edit: July 27, 2014, 02:35:51 AM by id-entti-tentti »
FIM-K56K-6XHL-DWT8-ANWN9
NXT-73NA-CWA6-KHV5-65HPC

Primitive #9 on: July 27, 2014, 05:54:44 AM

  • Fresh Fimker
  • *
  • Posts: 30
    • View Profile
i was also confused by the term "Community" wallet. 

i understand now that this is just the new, next generation wallet. 

it is not a shared wallet or online wallet?

it's just the *new* wallet for the future, correct?

Dirk Diggler #10 on: July 27, 2014, 11:34:55 PM

  • FIMK Staff
  • *****
  • Posts: 486
    • View Profile
    • Krypto Fin ry
New version online with new AE UI, it's very experimental and most functions don't work, but please have a look and let me know what you think.

https://wallet.fimk.fi:7886/beta/index.html#/exchange/FIMK/Firstasset

Improving the asset function is critical. What additional options / features are already in the plans?

I agree it's critical. Planned is improving the UI first with which I started today.

1) I don't know the origin and context of "colored coins", but ability to design a colored coin symbol for an asset would be nice, fun and useful, making the asset exchange more aesthetic and visually informative.

That's a valid point but can and should be solved in the AE UI, no FIMK server changes required for this.
Looking at the latest AE UI it seems these asset/coin icons are best placed next to each trading pair in the UI's top/left.

2) FIMK price for creating an asset? Fixed (10? 100? 1000?) or some sort of choice mechanism that would make some sense?

The current implementation of handling assets in the server part of the FIM/NXT software is not optimal, the problem lays in the way assets/asset balances are handled and kept in memory. In theory assets should be as lightweight as 'normal' payments/balances but until that is the case having 10's of thousands of assets can considerably hurt performance.
IMO creation of assets should cost 1 or 0.1 FIM but that requires each asset not having an impact on everyone running the FIM software.

3) Counterwallet looks like horrible mess, but it has these choices for asset creation:
¤ Is locked?
Locked tokens may not have additional unit issued.
¤ Divisible token?
Divisble assets can be subdivided into decimal places.
¤ Callable token?
Callable tokens may be called back at a specific date for a specific strike price.

All valid points. If you or anyone could put these in our issue tracker as "Feature Requests" that would ensure we don't lose these features.

4) Choice to send transaction fees from internal asset exchange to the asset creation account, instead of biggest stakeholders, could also be useful.

This holds the risk of someone slowly (or quickly) filling up blockchain real estate without having the cost of transactions. Someone could bloat the blockchain at no cost.

5) categories/tags for different types of assets, to make asset exchange more user friendly. Preset categories might be more "clear" at the first thought, but maybe creator tags would be more informative in the long run and more in line with p2p philosophy. Maybe there's a good balance somewhere between.

Doing this right is hard. But indeed required once the number of assets gets to large, i guess we have until then to fix this issue.

6) Finnish (and Swedish?) translation of 'asset'???

Translations are coming. I have embedded this translation module and will be hooking that up tomorrow. Initial languages will be Finnish and English.

i was also confused by the term "Community" wallet. 
i understand now that this is just the new, next generation wallet. 
it is not a shared wallet or online wallet?
it's just the *new* wallet for the future, correct?

It is indeed the new/next gen wallet. But this same wallet will be running on your mobile as a native app, on your desktop and it will run as a hosted wallet atleast on fimk.fi (but everyone could host it basically).
About the community part, that's not just a hollow phrase, we believe that building this client together with the community will lead to a superior product.
« Last Edit: July 27, 2014, 11:44:42 PM by Dirk Diggler »
FIMK Developer | GPG fingerprint: CEF2 7C39 43BE 6800 504E  71BC 7E87 A7B0 AC34 E2D5 | mofowallet.com | blog

warmach #11 on: July 28, 2014, 01:12:39 AM

  • Senior Fimker
  • ***
  • Posts: 230
    • View Profile
I think there needs to be the ability to update the asset description after creation.  This way it can stay up to date.  There may also be a desire to transfer "ownership" of the asset.  This may be if the original creator wishes to end the assets management but another wishes to continue it.

Warmach's Forging Pool
http://fim.warmach.info/pool/
May the forge be with you...

id-entti-tentti #12 on: July 28, 2014, 02:00:21 AM

  • Senior Fimker
  • ***
  • Posts: 188
    • View Profile
All valid points. If you or anyone could put these in our issue tracker as "Feature Requests" that would ensure we don't lose these features.

Done.

Quote
This holds the risk of someone slowly (or quickly) filling up blockchain real estate without having the cost of transactions. Someone could bloat the blockchain at no cost.

I can see the problem. What about option to create special accounts/assets that can be automatically "taxed"? (e.g. local community currency with negative interest, mutual insurance system of automatically balancing accounts towards median, other sorts of sustainable basic income systems on the block chain)? Not first priority, but doable in principle or not? Too big security risks? Better solutions for same ends?

Quote
Translations are coming. I have embedded this translation module and will be hooking that up tomorrow. Initial languages will be Finnish and English.

Started a poll on favourite Finnish translation for 'asset': http://forum.fimk.fi/index.php?topic=340.0
FIM-K56K-6XHL-DWT8-ANWN9
NXT-73NA-CWA6-KHV5-65HPC

jones #13 on: July 28, 2014, 03:27:03 AM

  • Fimker
  • **
  • Posts: 95
  • I write code sometimes
    • View Profile
    • jonesnet
Because angular is new to me, it will take me some time to get up to speed on this, but I think it is a good framework to use. Once I finish everything I am working on now, I would like to see how I can help with the development of this wallet.

development so far looks to be top notch and I would love to lend a hand in the production of this program.
-- Jones (FIM-LGH4-9RJ8-KCJ2-8YA6D)
JAFT exchange: https://www.jaft.pw | FIMK Faucet: https://www.jaft.pw/faucet | FIMK Number Game:  https://www.jaft.pw/numbergame | FIMK Coin Flip: https://www.jaft.pw/coinflip

kani #14 on: July 28, 2014, 08:42:15 PM

  • Senior Fimker
  • ***
  • Posts: 154
    • View Profile
I really like the look of client.  How does one gain access to the full source?  And, I am curious about the relationship of this client with DGEX software.  View source reveals:
Code: [Select]
ng-app="dgex.base"
What is that about?

BitShares - Your share in the Decentralized Exchange