Here are some of the main things to highlight this week:
- Today, we released a new video on Proof of Resource. We’ve introduced the video in a Medium post and you can find the video on YouTube. Please clap, like, retweet and share away!
- The PARSEC whitepaper was submitted to the Crypto-Economics Security Conference (CESC 2018) where it will receive peer review from some of the big names in our space. We can’t wait to receive this feedback.
- Crypto changes were finally merged into p2p and Crust. That allowed us to move forward and start integrating safe_crypto and the latest Crust
devbranch into Routing.
June Community Digital Stats
As ever, we’ll start the first update of the new month with a summary of the social stats. The community continues to grow steadily in size and strategies for each platform are now under review.
Proof of Resource Video
You may remember we received extra money during the CEP process back in January and the decision was made that we’d ask Hypercube to work with us on producing two introductory videos. The first (on Safecoin) was released at SAFE DevCon18 back in April and now we’re delighted to release the second, this time on Proof of Resource.
The other key areas of focus this week have been the website (so close!) and a range of work that relates to the next PARSEC milestone - all of which will become much clearer in the very near future…
User Experience & Website Design
So here we are again. Another week, another dev update where I have to tart up a description of “we gone and done some web coding guys!”
But I promise you this. We’re close. So close in fact that @shankar hasn’t slept in days. And given that there can be no other plausible explanation, it must be down to the sheer buzz of it all. Right?
So being the responsible employers we are, we’ve compiled him a list of excitement suppression techniques. And of course, we’re open-sourcing them here for you guys too (GPLv3). Although I’ll warn you some of them are experimental/pre-alpha:
- Double-entry bookkeeping
- Refresh GitHub until my PR is merged
- Transcribe a Routing Hangout
- A catering size bag of marshmallows [I can now confirm this **does not work**]
- Write a dev update
- “BBC Question Time Brexit Special”
- Open the Tupperware cupboard
- PRO Monthly [This one will need some testing]
- Flip a concrete coin until it lands on its edge
And there you go; they might come in handy this week.
We live to give.
SAFE Browser, Authenticator & API
Some issues in Peruse have been resolved and we are currently reviewing the PRs and testing them. One of these issues was related to the Peruse window not being fully draggable on some platforms. Another one was related to the Peruse process not finishing when the window has been closed. Also, clicking the URL in the “Authorised Apps” page of the Authenticator was opening the page in multiple tabs in the desktop’s default browser. Even though they sound fairly simple issues to solve, a few of them ended up being a bit more complex to fix, but we are moving forward steadily to have all these types of bugs fixed in the next couple of weeks so that we can share a new Peruse package.
We have also been putting a lot of effort into our research around the use of the RDF data model and how we could provide utilities to help developers make use of them on the SAFE Network. At this point, we can probably just share some of our experience with it so far. It has been a steep learning curve to be able to understand how to construct this type of structures. This is why we are trying to understand a bit better how to make the life easier for any developer trying to do the same thing, as we believe it will be the key for helping developers create data-driven apps that are RDF compliant, and which allow users to use their data with other applications without a need of the traditional export/import mechanisms between apps.
As work on the Java API continues, we’re dueling with the core concepts of Android to ensure that our libraries, JNI and wrapper functions get along with each other, ensuring full compatibility on all platforms.
We have released a new SafeApp NuGet package (v0.1.1). In this NuGet update, we fixed a garbage collection issue for callback delegates. Also, we have updated AuthBindings in the SafeAuthenticator app in the safe_mobile repo.
SAFE Client Libs
This week, we continued working on the API refactor for
Client, which we are changing from a Rust struct into a trait which will be implemented by Safe Authenticator and Safe App. It is taking longer than expected due to the complexity of the refactor as well as due to limitations in Rust’s trait system, such as the lack of trait fields (which is still WIP by the Rust team). Nevertheless, we are happy with the way this is heading and believe that it will benefit future development and maintenance as well as end users’ ability to use and understand our API. But, most importantly, it will also help us to separate the concerns of the libraries comprising the Client Libs because at the present moment SAFE Core takes too much responsibility on catering for the Authenticator. So, for example, if we’d want to change something only in the Authenticator component, it might require a change in SAFE Core too, taking more time and effort. This is a fragile state of things and we want to fix it with this large refactoring too, solving several problems at once.
In parallel, we’re continuing to work on integrating
safe_crypto with SAFE Client Libs. This is largely interwoven with the same effort going on in Crust and Routing as both libraries serve as a foundation for us. Still, we’re able to progress independently, so in the end, SAFE Crypto should be integrated with most of our libs at about the same time.
This has been a good week for Routing
Work on the PARSEC implementation has been progressing extremely well! Expect to hear more from us on this subject very soon
The PARSEC whitepaper was submitted to the Crypto-Economics Security Conference (CESC 2018) where it will receive peer review from some of the big names in our space. We can’t wait to receive this feedback.
Meanwhile, we also have made significant progress on the proofs side towards refining our synchrony assumption so that the proof for liveness can be expressed more formally. From the early reviews we received when releasing the paper, this has been the most important point that surfaced, which is why we are very happy with the outlook on this front.
This week, crypto changes were finally merged into p2p and Crust. That allowed us to move forward and start integrating safe_crypto and the latest Crust
dev branch into Routing. This is very good news for us - we want to see new Crust goodies being used as soon as possible
Crypto changes introduced some minor regression and our CI reported a couple of failing tests specifically on the Windows platform. The cause is very obscure and being researched. Hopefully, we’ll have a fix next week though
Last but not least, we fixed the uTP packet loss issues. The problem was with packet acknowledgement. uTP uses
State packets to acknowledge other packets. Our implementation would never ever send
State packet with the same ID. So if a
State packet was lost at some point, the other end of communication would think that its packet was lost. Now we make sure all the packets are acked and if needed,
State packets are resent.