This past week was absolutely amazing, we got more code committed than past week's reports for over 3 months!! What does that mean? That means that we're kickin butt and getting a ton done. So, without delay, let's get right to this weeks report...
Status of the BitShares Munich IVS hostile takeover attempt - As was shown here, you-know-who is being removed from my company, and we hope to meet with him in person on the 11th (yes, in 3 days) at the address he registered with the Denmark government here (look closely, it appears to be an auto-repair shop!!):
Vintervej 119, 1.1., Hasle, 8210 Aarhus V. , Denmark
As soon as he is voted out (I own 51%), then we can hopefully trace down all the funds, regain control of the company's assets, pay all the debts due, and do what is necessary to get the BLOCKPAY token holders back on track as fast as possible. There appears to be well over 800 of us holding those tokens now, so damnit I want the passive income that I was promised! Speaking of income, I still have not received my salary and it is overdue by 3 months now. I wonder if he's paying himself a salary from Investors' funds..?
Ok ok, enough rant for today, on to the WORK being done! :)
BlockPay - If you haven't gotten your local market or cafe to try BlockPay yet, what are you waiting for? Don't you want to spend your Steem Dollars or Bitcoin there??
This week we got a ton of new streamlined coding into the app. It's a continuation of last week's effort in order to remove the old websockets library and completely replace it with our graphenej functionality.
However, the existing graphenej usage was still very simple, and did not handle all the possible situations. Some of the features described above were specially developed in order to cover these cases.
Whenever the user pressed the "home" button in the app for instance, not only the connection was being retained in the background, but the subscription data was still flowing in, despite the app not being in the foreground anymore. This of course represents a waste of user data (which is usually limited on mobile devices) and has a direct effect on battery life. A similar situation was already fixed in the previous websocket implementation, and now had also to be taken care with graphenej. We now keep the connection open, in order to reuse it in case the user comes back to the app, but issue an unsubscribe API call in order to cut the incoming data stream. The previously described "resubcribe" call is issued in case an active connection is detected when the user comes back to an existing instance of the app.
Another case that had to be handled was the possibility of a node (server) being down or unreachable. Remember, in my report last week I mentioned that we are taking the current nodes offline (freezing you-know-who's bank account) and putting in brand new servers (thanx again to @onceuponatime). That was also present in the previous websocket logic, but was not yet present with the graphenej implementation. We now just go ahead and try to connect to the next node in the list in case of any problem with the currently selected node. All this work is uploaded into this commit.
A bunch of classes were rendered useless with these changes and were removed here.
For now, I am still keeping the blockpay repo private until we can get BlockPay some traction, so for cryin' out loud show it to your local merchant!
graphenej - Exposing a new method called "resubscribe" in the SubscriptionMessageHub class. This method will make use of an existing connection, and just issue a new subscription over it. This update can be checked here:
A couple of internal variables were introduced to keep track of the connection state of the SubscriptionMessageHub, which solved a critical bug here:
Fixing a bug introduced by some previous changes in the UserAccount class. We basically now need to call the "getObjectId" method instead of the "toJsonString" which was previously used. See the coding:
Stealth - Stealth transactions will offer up secure automated backups too and this week we're working on the c-ipfs and c-libp2p repos to facilitate this. Check out the latest coding for this feature here:
The failure of the multistream handshake was leaving the connection open and opening a new connection, which left the code unstable and freezing, now that is fixed but we still have to find out why the multistream handshake is failing. This week we should get the code for that finished up as well and then on to the C-IPFS release on github so that everyone can hack on it with us and help me with the security audits, etc.
Smartcoins Wallet - Have you tried the android wallet yet?? I've poured my heart and soul into this thing so if you want an easy way to move your Bitshares assets around please download it and give it a shot. I hope you like it :)
This week we finished (see Note below) the migration to the external graphenej lib, update some of its usage and started working on the reported bugs at github and crashlytics.
I was just about to publish an update to google play, but in some intense testing we found UX bugs like, not always the balance updates (even in same conditions, sometimes it does, sometimes not), etc. The only serious bug found is an occasional problem with encryption/decryption of transaction memos. So we'll focus on this over the next couple days and then see if we can upload a more stable release that fixes that as well. I love that we catch these sort of things before the user can :)
Note: To finish the full migration to graphenej as an external library, we decided to include some old model classes hardcoded from the old graphene-lib you can see here:
Only two classes , the Market.java and api/GetLimitOrders.java. The logic behind these two are coded completely different in the current graphenej lib. We were porting these two to the new graphene standard, but it would have been a considerable time to do it (we left this partial work done in a staged commit), then we decided to not port this now, and focus on the github issues first so that we are all caught up from the point where our paychecks stopped coming.
These two classes were coded by a different Dev in the past in an unfavorable way, so we decided to change some of the logic and the classes where this logic goes on our newer graphenej lib releases, so that explains the incompatibility.
The relevant commits for this work are:
Thanx for following our work! Tons done and a lot more products to build! :)
BONUS 1: Upvotes and Re-Steems get you a 100% upvote (yes, free money!)
BONUS 2: Ok, so on Tuesday I am going to give you a little treat. Remember when I told you that we have been working on a new mobile wallet that natively supports 6 different blockchains? Yes, just ONE mobile wallet app that let's you spend your STEEM, Steem Backed Dollars, Bitcoin, Bitshares assets, Dash, Dogecoin, Litecoin at any crypto merchant? That's not all!
Well please Follow me here and you'll be the first to find out.
Oh, and yes, it's newsworthy too......