Every few hours we are making more commits:
https://github.com/kenCode-de?tab=repositories C-IPFS and BlockPay related: Regarding c-ipfs read/write storage, Merkledag is now done. The storage components are now importing files, splitting them if necessary, and saving them in a format for retrieval. With files being stored, now the work begins on overlaying a "unix like" interface over saving and retrieval. The notion of directories and files needs to be used so it looks like a traditional filesystem to the network and local clients. The primary goal in this final week (fingers crossed) is the implementation of directories and files, which will make c-ipfs look like a traditional filesystem.
Blocks are now written to the disk, and a reference to them is put in the lightningdb. Links to the child blocks are also stored within the block and in the database. With that out of the way, focus changes to storing path information (an overlay of unix directory and file operations), and connecting storage to the rest of c-ipfs and c-ipns.
Wiring in the networking pieces is the last big job that we foresee around storage. Command Line Interface should be done this coming week too. CJDNS support final tweaks also being finished up. C-IPNS now just needs libp2p-routing and namesys-protobuf and we should be good to go for the first formal Release before Christmas.
More c-ipfs and c-ipns commits:
https://github.com/kenCode-de/c-ipfs/commit/9ec06749f253c6a2b0ecea10fffc0022acd930ca https://github.com/kenCode-de/c-ipfs/commit/aa49c7dc35c4693ea128cbd4380db9efa7130e38 https://github.com/kenCode-de/c-ipfs/commit/fea5d3b8bf62253168afabde5b4cb03c1e21ebc9 Android Smartcoins Wallet and security audits: The 'account_update_operation' support developed for our graphenej library has now been introduced into the Smartcoins Wallet in two ways. The first one was by adding an extra option in the settings screen that will allow the user to manually update the controlling keys whenever he feels like it. It is a simple feature that can later be extended by adding more complex update options. Currently we’re just updating all 3 keys (owner, active and memo) at the same time, but more granular control over every key would also be possible, if the community wants us to add that (but adding too many features like this could make the wallet settings more confusing for people imo).
The second way in which the ‘account_update_operation’ was introduced into the Smartcoins Wallet was via an automatic update procedure. For this, it is required that the app recognizes old accounts from newly created ones. And of course, just apply the automatic key update to the old accounts. Since we can’t be sure that an account imported via bin backup is in fact an old account (after all, it could be just a bin backup imported from another service, like openledger) we decided to prevent the automatic update from accounts imported via bin backups. Also, in order to further safeguard the user’s controlling keys we’re automatically creating a new bin backup of the newly generated keys as soon as we receive confirmation of the successful key update operation, and storing it in the sdcard.
After a close inspection of the code that makes up the list of past transactions of a given user in the Smartcoins Wallet, it was decided to completely discard the current architecture in favor of a more sophisticated and reliable strategy that makes use of the native sqlite database provided by the operating system (android in this case). The most relevant classes for this new feature are in the newly created ‘database’ package. The idea here is to keep a persistent cache of the user’s transactions in order to avoid having to keep asking the network about this information over and over. Bandwidth is expensive. The network should still be contacted, but just for updates of the database. The UI is updated directly from the database, and as such the information is displayed almost instantly now.
The procedure was further complicated by the fact that the raw information provided by the ’get_relative_account_history’ API call has to be processed in order to be nicely displayed to the user. The API call refers to user and asset ids for instance, and we’re required to display user names and asset symbols and take in consideration each asset’s precision. Since this is a completely new implementation of this feature, all these details had to be taken care of and as a result, not all data that was previously being displayed is yet supported. The following is the list of information already ported to this new architecture:
- Date
- Time and time zone
- From account name
- To account name
- Asset amount, correctly adjusting for the damn precision
- Asset symbol
- Equivalent values (at the moment of the transaction)
- Encode/Decode Memo Operations
Since we are adding support for 6 additional blockchains to the Smartcoins Wallet, we are also redesigning the homescreen just a bit so that the balances section can slide sideways so that you can view the balances of your additional cryptocurrencies if you own any. Bitcoin of course is the first chain being added, and this week we have finished up the BTC account-create method and are now building in the Overdraft Protection feature (in case you are at a BlockPay merchant and do not have enough Smartcoin to cover your bill, the wallet can cash out some of your BTC automatically to cover the balance for you). Once Overdraft Protection is done, then we have to build in the QR and NFC support next...
Due to our trip to Stuttgart (Chris, Sylvia and I) it put back the wallet release just a tad, but I will try to republish the Smartcoins Wallet to google play by tomorrow.
Stealth related: We are working on a wallet api for new functions to test the graphene-ui stuff we're working on now. Shared key derivation for memo field encryption/decryption is updated now and we have run all the joinsplit tests.
On the graphene-ui, the Create Account window is done. Some of the Stealth ui features need to wait though until we formally Release our C-IPFS stuff around Christmas (9 more days aaahh!).
We created a branch for the ui stuff at the moment so bugs are easier to trace (
https://github.com/kenCode-de/graphene-ui/tree/graphene-ui-dev-graphics-acc_creation).
For now the only visible change is the Create Account window which does as requested, and shows private/public keys if forms contain what they need. Stealth core and our c-ipfs stuff will be needed to complete this in order to hash check for the public key to show. We are nearing completion of the UI for transferring accounts. This week we are starting the transaction modals, and label creation/editing/deleteing, and then on to the send and receive windows themselves.
Once our Stealth ui stuff is a little prettier to look at I will upload some more screenshots.