Is it July already? Man how time flies when you're BACK AT WORK :)
In this weeks update, I have good news and bad news.
TRANSPARENCY, remember? :)
Ok, so it's mostly good news, but the "bad" news is just a time delay setback on the Stealth core, but I will show you my solutions to this below. So, without delay..
First off, the hostile takeover attempt of my company (BitShares Munich IVS) should be over pretty soon as I was finally able to fire Chris (my CEO/CFO) and freeze the bank account and assets. The largest of the crypto accounts that he holds the keys to was here (http://cryptofresh.com/u/bitshares-munich-wallet), but 11 days ago he transferred almost everything out of that company account into a multisig account I found here. As you can see, there is still roughly 16 Million Bitshares in that account (over $3,000,000) so once I regain control of the finances, my Dev teams and I will be in good shape financially again and @onceuponatime won't have to keep injecting his personal capital to keep the work moving along. Chris also collected hundreds of Bitcoins and other cryptocurrencies as reflected on the blockpay.ch website that he published here. See the letter my attorney sent to him this week here.
Since the Facebook, Discord, Telegram (and who-knows how many other social media) accounts were suddenly deleted, Rodrigo, Angie, Miguel and many of the BlockPay Ambassadors have stepped up and resumed marketing efforts of BlockPay, and yes, they are unpaid as well. I created a Telegram supergroup if you would like to chat with any of us, or coordinate efforts in your town, setup Meetups, get tech support, etc here: http://t.me/BlockPay
For all of you entrepreneurs out there, please remember one thing. When you build things of value, you are going to be attacked by competitors, by trolls, by opposing-agenda media, by bankers and even government thugs. But, be strong, stand your ground, remember Sun Tzu, always document everything, always be honest, decentralize, love what you do and plow right through them (meeting force with equal force of course). Non-Aggression Principle is the root of Agorism, peace and love.
Ok, so what's been going on this week?
graphenej - All the classes inside the "api" package were created in order to be used in a very simple request-response interaction with the full node server using the websockets interface. The websockets protocol of course allows us to establish a bidirectional communication channel with the remote endpoint, but all those classes were simple handlers that didn't provide for that.
For more sophisticated features, like being notified when a given transaction was included in a block, we needed something more than just a request-response handler, and thus the SubscriptionMessageHub class was introduced. The purpose of this class is to act as a central broker for messages coming from the full node. It maintains a persistent connection to the full node and is notified of events. It also exposes an interface that allows interested parties to register themselves to be notified of any updates.
This class was still limited though, since it was just a passive listener that received and forwarded messages to each one of the interested parties, if any existed. A logical extension of its capabilities would be to allow it to also forward requests and manage their specific responses, thus allowing the reuse of the connection that has already been established with the full node.
The beginnings of this specific feature, that will from now on be described as "multiplex support", were introduced in this commit. The GetAccouts class had to be adapted in order to work with this new kind of broker architecture, and so far it is the only class that has been adapted to work with it. In order to move this feature to a more stable branch, we would need to apply the same small changes to all the other classes in the "api" package.
As we upgrade graphenej further, we will update all of our apps like the Smartcoins Wallet and BlockPay to make use of these enhancements...
BlockPay - First of all, since I had to have the BitShares Munich bank accounts frozen, this means that our server providers will start shutting down our existing hosting accounts for non-payment. Tonight we are setting up a brand new dedicated server account and getting it online asap. This might mean some downtime for BlockPay transactions, but the code in the app should revert it to the Openledger node so that there won't be a network blackout, but latency may be observed. Rest assured though, as soon as the new server is online and configured, I will modify the code to look for the new primary server and then release the update on google play immediately. In other words, BlockPay may seem a bit laggy over the next few days.
The motivation behind the features described in the graphenej section above was the detection of some performance issues with the websockets communication infrastructure currently in place. To be more specific, it was discovered that the current implementation was not only using an outdated websockets library, but it was also using blocking network calls that sometimes were freezing the app.
In order to completely replace the previously used websocket library we initially thought it would be a good idea to add support for a multiplex communication to the graphenej library. Although this would indeed be a nice thing to have (since reusing an existing connection is always better that keep spawning new connections every time) a close inspection to the existing code base revealed that most of the API capabilities required were already implemented in the graphenej library as a single-request methods.
So in order to have the app in a better condition sooner rather than later, it was decided to stash the multiplex support work for now and just replace the existing websockets library usage by introducing the single-request graphenej library classes when needed. This work can be seen mostly here.
The old websockets library was not removed altogether yet since we're still working on a feature branch, but the idea is to completely deprecate it and instead supplant it with our graphenej library. This is a work in progress that still needs to be refined before merging it with the develop branch.
Some other small fixes like:
- Fixed some spanish strings here.
- Added support for the coinmarketcap API in order to have a redundant source of marketcap data here.
- Improving the layout of the BackupBrainkeyActivity class, was performed here.
- Simplified the DatabaseLoadActivity here.
In case you're wondering about those commit links, I am keeping BlockPay in that private repo for just a bit longer until we get some traction. I want to see some businesses actually accepting crypto with BlockPay before I just hand over our hard work. A lot of money has been invested in this, I hope you understand :) So, if nothing else, please install BlockPay on a tablet or phone and get your local grocery store to try it out! Download:
Stealth - The C-IPFS code for the secure automated backups for Stealth transactions is coming along nicely and those commits can be seen here:
Node to node and client to node is now working, and is starting to play nice with Go-IPFS clients and nodes as well. This was a huge barrier we had to cross, but finally we are there. On Monday, we will be chatting with the Go guys and make sure it is seamless.
The next step is to launch the first formal release of C-IPFS to the world, and then start the integration of it with our Stealth core code with the bitshares-core. That part is not that hard really, but the most time consuming part will be getting acquainted with Blockstream's Confidential Assets (CA) code, and dumping the slow, unscalable libsnark code that we spent so much time on testing and tweaking and testing. My Stealth core Dev has had to take some time off for family, and to be quite honest, he might not be able to return. So, realizing this, I am hiring an additional core Dev this week which will start plowing thru his code and getting savvy on the CA crypto. I want the Stealth public testnet launched just as bad as anyone, so rest assured I am helping him to get up to speed and fast. I bought 600,000 STEALTH tokens and I want to see some income from them asap. By the way, I am hiring a third guy right now for some scala work, so if you know of a savvy scala dev, please have him ping me via github. You guys know I am into meshnet, and in my free time I have been developing a bridge between our different products. I'll reveal more about this later :)
Smartcoins Wallet - Issues are now being addressed again thanx to the recent capital injection, so if you have any problems with the mobile wallet at all, please let us know about it here:
More commits and tighter integration with graphenej library:
If you remember, the 2.0 version will probably be called "Carbon" and it will enable the mobile wallet to initially and natively support 6 different blockchains. The STEEM chain is the final of the 6 and is being worked on as we speak. So, that's good news for Steemians, right? :)
Dash InstantSend is working great, Bitcoin of course, Bitshares assets, Litecoin.. oh yeah I just remembered, I want to post another video of Carbon so you can see the new UI/UX. Ok, I just set myself a reminder to get the updated video done and uploaded.. Will try to have that online for you guys in the next week or so, I think it's pretty awesome.
If you haven't tried the current Smartcoins Wallet and want to go mobile with your crypto (ESPECIALLY if your local store has a BlockPay point of sale) then check it out! The download for the mobile wallet is here:
So, TONS of good news this week, I hope you guys enjoy reading my reports!
Please help me spread the word and bring these products to the world now, MUCH love for resteem and upvotes :) Peace, Love, and Agorism..