BlockPay, Stealth, Ledger Nano S, graphenej, Smartcoins Wallet... Weekly Report
Greetings from the humongous! .. The warrior of the wasteland!
Sorry, watched it last night, still got the lines stuck in my head ;)
Status of the BitShares Munich IVS hostile takeover attempt - So the other night, all the attorneys and @onceuponatime have asked me to wait just one more week before I make the big announcement, or reveal more of the bad stuff about you-know-who that I mentioned recently, so I am honoring their request.
On the plus side (in addition to the Danish announcement), it looks like you-know-who is being fired from the Bitshares Committee too:
Since you-know-who still hasn't shown us the accounting ledger, or paid the debts and bills etc, I have had to setup new servers (thanx again to onceuponatime). Those servers are now online and I will talk more about that below. Github also emailed me and said that he stopped paying the bill for the private repos a couple months ago, so those repos are now public.
The momentum is picking up again which is awesome, and there are over 150 of us in the new telegram group already, including a ton of the BlockPay Ambassadors, so pop in and say hello! ..
Belieeeve me when I tell you that I am just as anxious as you guys are. My family too, this has been an absolute nightmare. Rest assured, I am pushing as hard as I possibly can and I will move us past this.
Two days ago I saw a truck that could haul that tanker. You want to get out of here.. talk to me. -Max
Ok so, let's get to the mountain of coding that we got done this week! :)
BlockPay - This week we worked on tighter integration with the new graphenej library, initial steps for integration of additional Bridges, and the new Setup Wizard I spoke about. This Wizard will be a max of 3 steps, and is being implemented using a simple ViewPager and a custom indicator.
The first step involves the creation/import of a Bitshares account, the most basic requisite in order to use the app. The second step involves just the selection of the output asset (which currency does the merchant prefer). And finally the third step involves the setup and surety funding of the Bridge account so that even slow coins like Dogecoin and Bitcoin will go thru in 3 seconds as well.
Remember, customer-to-customer in 8 seconds max. BlockPay must be faster and safer than cash. Hence the surety, so that slow-coin customers don't have to stand at the cash register for an hour while their Bitcoin clears. ;)
All but the 3rd step are mandatory, and the app blocks the advancement if the current step was not completed. If the user leaves the app without finishing it, it will be returned to this step again. The 2 assets selected by default are "Smartcoins" and "Bitcoin". The merchant is free to later enable more coin choices (like Steem, SBD, Dash, etc) or even remove "Bitcoin".
The whole Setup Wizard was added in a single commit here. This code is still being maintained in a separate branch and upon my approval, it will be merged to the develop branch.
It's not pretty yet and I want to rearrange the steps just a bit more, but here is the alpha1 proof of concept:
Stealth - Stealth is coming along nicely too, finishing up the automated backups this week I hope. Then we can formally launch C-IPFS on my github as well. We also got a lot done on the gateway and API for it here:
https://github.com/kenCode-de/c-ipfs/commit/f7ddfa0088333b7b790e4d3beb271bf85b149a35
https://github.com/kenCode-de/c-ipfs/commit/bde4d4debef355e1794c90b4b531f43c773c61fd
https://github.com/kenCode-de/c-ipfs/commit/5941a3593a31a84604d38f96f34b413454f396c1
We fixed thread-safe and the handling of direct requests, the chunked encoding needs to be updated yet, but we can proceed without that and do it later, as we'll only we need it to transfer large files and keep it compatible with go-ipfs, but not for small requests like Stealth transactions.
We've also been finishing up the bitswap protocol. In the process of adding this protocol, we've also been able to clean up some old code, and simplify some methods. This is making testing a bit longer, but debugging faster, so the tradeoff is about even.
There are a ton of code changes this week. Some are minor, others are quite large. Here’s the rundown:
Added some tweaks to c-multiaddr to compare addresses:
https://github.com/kenCode-de/c-multiaddr/commit/c2f2c0c2da6d90195ee1ff65c11ed7b94aca74bb
Added compares to some areas of c-libp2p also, plus some code cleanup:
https://github.com/kenCode-de/c-libp2p/commit/dac251bf4c0f4cde6c32155267c68aeaa7a7dcaa
https://github.com/kenCode-de/c-libp2p/commit/c660a6eb32da19a2d70df75011345ee17d55eba7
https://github.com/kenCode-de/c-libp2p/commit/93bb78169a2dc29b307fafb89b820b5c7ba372c1
https://github.com/kenCode-de/c-libp2p/commit/1971e60438d44453f052582723e4afd3d03e083a
https://github.com/kenCode-de/c-libp2p/commit/1e49d8f7abe32963710d016d589a5d3608f9f754
https://github.com/kenCode-de/c-libp2p/commit/1e49d8f7abe32963710d016d589a5d3608f9f754
https://github.com/kenCode-de/c-libp2p/commit/343748bc0fc3729daad97041ed129cfc3483d29b
Implementation of the bitswap protocol, with some cleanup too:
https://github.com/kenCode-de/c-ipfs/commit/a63910e0d7bcbdc441171211b7524fa3d04ba6a2
https://github.com/kenCode-de/c-ipfs/commit/5507937bffccdbc999a51dad7ec1119b98254c2f
https://github.com/kenCode-de/c-ipfs/commit/4368e052e2f8cd828ef25a7abad0cfce155a1613
https://github.com/kenCode-de/c-ipfs/commit/9924d5dcf7433f416176ee319828f401eab24ef0
https://github.com/kenCode-de/c-ipfs/commit/3a8a85e62824497868988697d1cb6c8bb05a30ab
https://github.com/kenCode-de/c-ipfs/commit/108792ca4401d4a18b0086a938a136a83abb5bc0
https://github.com/kenCode-de/c-ipfs/commit/692d3406c88ea3ccce1fe1b0d8094a1855cfd0f9
https://github.com/kenCode-de/c-ipfs/commit/10aa932e08dccf4e0dc813a61f2ccdd18f719ccc
https://github.com/kenCode-de/c-ipfs/commit/e1135fef3bd5249fac9414472087420a7a97f560
https://github.com/kenCode-de/c-ipfs/commit/73d7d5daede7624cd00c3a1abf5a26e191fcba74
https://github.com/kenCode-de/c-ipfs/commit/b3bb857f3a0a1283f5250e0883f4278487417649
The testnet will run on our new servers as discussed below. There was a point mentioned by @full-steem-ahead about the legal aspects of using Blockstream's Confidential Assets (CA) open source code in the future. If there's a Lawyer willing to assure us that using their open source (and retaining their license of course) will not come back to bite us, I am offering a 500 SBD bounty for that work and pdf. See our comments on that here.
Ledger Nano S - Yep, finally cold storage for your Bitshares assets! :)
- Inspect/study Nano S Secure SDK (https://github.com/LedgerHQ/nanos-secure-sdk)
- (Header files and C library functions for BOLOS apps)
- BOLOS tech documentation (http://ledger.readthedocs.io/en/latest/)
- Inspect/study Python API for communicating with Ledger devices (https://github.com/LedgerHQ/blue-loader-python)
- Established communication with Nano device via python HIDDongleHIDAPI.exchange() method.
- Comprehension of blue-app-helloperso sample source code, which demonstrates BIP-32 derivation of addresses from a private key seed.
- Perusal of all repositories under LedgerHQ to assess relevance to current project.
We are doing a simple CLI Wallet proof-of-concept first (I'll post a simple youtube video for this too), and if funds allow then we will slap a nice UI onto it. With communications now working, some interface code is starting to flow to my github on it here:
https://github.com/kenCode-de/ledger-nano-s-bitshares
graphenej (for mobile app Devs) - This week we finally finished all of the node-hopping code, and coded all the unit tests. Our work on graphenej has been extensive so that it can be used in all of our other graphene-based mobile apps and for other Dev teams as well. Hope you like it! :) See the commits here:
https://github.com/kenCode-de/graphenej/commit/158c9604b889611d4d9b40aaa08a7b5ecb008fb1
https://github.com/kenCode-de/graphenej/commit/cadcca0230a67f0d6f6fd6df58c1073f9e742a8f
https://github.com/kenCode-de/graphenej/commit/7b7fd6e74ae22ee8f2c45e07be741540267e6b01
https://github.com/kenCode-de/graphenej/commit/7c05b8d3dbf3ef7469f588738546e22950ac5ce3
https://github.com/kenCode-de/graphenej/commit/c66ed9968176a6416528a413e745298c0fefcfcb
Smartcoins Wallet - The faucet code needed a serious upgrade since our upgrade to graphenej, here are the relevant commits:
https://github.com/kenCode-de/smartcoins-wallet/commit/e717281fbaf317be0bea4490c29a1fb1677fd407
https://github.com/kenCode-de/smartcoins-wallet/commit/d2796af1f53aac2f28a4232f92e268e804edf424
We have also standardized our code style to Android standards, and we also add 33-50% code commenting so that once we finally run doxygen, our online docs will be much easier to read. I'm pretty strict about this because I have been getting quite a few offers lately from Devs who want to help with our products and projects :)
The Carbon (Smartcoins Wallet v2.0) animation code, 6-chains integration, NFC support, C-IPFS integration and Bridge addition begins at the end of next week too fyi, just wanted you to know we are going gangbusters on this part.
New servers, full nodes - Our new servers have to run full nodes for 6 blockchains, no small task. Plus, Icinga (was Nagios), spamassassin on the email server, etc. Tons of RAM and hard drive space needed to run successful nodes with so much loaded (until we can afford more servers anyway).
We have dockerized the Bitshares node and are in the process of testing (well, beating the hell out of them actually) the other full nodes. This last week we got an issue with the first server, it restarted without reason, we contacted our support Rep, and he told us that this happens with other clients, so we are researching what happened so as to avoid any conflicts in the future.
Right now, that server restart only affects our faucet and the alt-coin nodes. But it doesn't affect the Bitshares node. With Docker, we built a Dockerfile (script to build a linux image) and a docker-compose (script to use that linux in a specific way).
The Dockerfile has everything needed to build a linux img with the apps needed to set a working Bitshares node in any machine (with virtualization compatibility).
The docker-compose uses this img and runs the bitshares node on a specific port (actually, it maps any port to 8090 in the running image).
Finally, we create a directory with the bitshares node data (the one that occupies ~6GB). This directory maps directly into the image. This means that when a node starts working, it doesn't have to synchronize everything again, it just uses what is synchronized already and only downloads what is left to synchronize (feeding the same directory). So, like docker best practices, this node is ephimere and can be replaced anytime.
This week we begin testing the Dash InstantSend code. From there, we just need to test out the account creation code and get Carbon (Smartcoins Wallet v2.0) to use the new nodes and the six blockchains :)
JOB OPENING - Do you know an expert C/C++ Developer? Spread the word and get 100% Upvotes! :) Just give him/her this link, and spread it around on social media:
https://steemit.com/bitcoin/@kencode/4qb3h8-hiring-experienced-c-developer-wanted
I have 2 other Job Openings coming in the next week or so too, so just Follow me here on steemit for all the news. I am just about to begin a couple more projects.. Both of them also very profitable so stay tuned..!
Can´t wait to see you working 100%!
Can't wait for Carbon release. Looking forward to NFC functionality. that will really help merchant adoption. Any word on the Blockpay token future revenue streams?
Not yet, as I mentioned in the post. I gotta push us thru this week first :)
Thank you Ken&friends for not giving up, despite all that has happened!
Great work @kencode, excellent to hear progress regarding the takeover attempt and stealth, graphenej looks very interesting!
Keep up the great work! :)
Excellent post. Thanks for Share!
Makes me want to refresh my blockfolio again! - https://steemit.com/cryptocurrency/@cryptocoinclub/blockfolio-addiction-help-group
thanks for the update - i wish you well - sorry it is not sorted out yet
Upvoted and also resteemed :)
Cool, thank you for the Re-Steem @smartdeveloper !! :)
UPVOTED 100%
Upvoted and following you and also re steemit .
Upped & Resteemed
great report....deserve my upvote and resteem