Here are some of the main things to highlight this week:
- We are pleased to announce two new starters this week. Join us in welcoming David Geddes (@DGeddes) who is taking up the Customer Support Manager role based in Ayr. Connor Wood has also joined the team as a remote Rust Developer.
- Today, the front-end team is releasing a new patch version of the SAFE Beaker Browser (v0.10.2) which upgrades the Electron package (to v1.8.4) in order to solve some security vulnerabilities issues. You can download the new packages for the mock and live network from our releases page on GitHub.
- This week, the Crust team finally attempted to integrate the latest Crust changes (dev branch) into Routing. The integration itself was smooth and CI checks are passing.
Let’s start with a review of last month’s digital stats:
As you can see we are continuing to grow across all platforms and are very excited to have reached 100 followers on the SAFE Network publication on Medium. Keep an eye on Medium and our blog for a round up of all of last month’s activities.
Thank you to all those who took the time to provide us feedback for the Dev website. We have already incorporated your feedback into our design and created content in line with it. Development will continue over the next few days with your feedback front and centre. We are looking forward to launching this for you!
We have now confirmed the design style of the primary MaidSafe website with the website agency and are very excited about the new look and feel. We will be finalising the design of each page of the new website in the coming weeks before development can begin. We will share more news as we move towards launch.
We are making steady progress with both the SAFE Academy plans and CEP video projects. We will keep you up-to-date as we complete these projects. We hope to have the proof of resource scripts finalised this week, as well as making alterations to the animations for the Safecoin animation. We are excited to have these videos to show you all very soon.
We are all busy working to make the SAFE DevCon 2018, our first European DevCon, a huge success. It’s shaping up to be a fantastic event and we are looking forward to welcoming some community members from across the globe as well as through the livestream from Product Forge.
We are pleased to announce two new starters this week. Join us in welcoming David Geddes (@DGeddes) who is taking up the Customer Support Manager role based in Ayr. Connor Wood has also joined the team as a remote Rust Developer and we look forward to working with you both.
SAFE Authenticator & API
Today, we are releasing a new patch version of the SAFE Beaker Browser (v0.10.2) which upgrades the Electron package (to v1.8.4) in order to fix some security vulnerabilities issues (please refer to the release changelog for more details), plus a minor fix for some specific scenario where the DOM API handles were not being freed automatically when reloading a page (MAID-2602). You can download the new packages for the mock and live network from our releases page on GitHub.
We continue with our efforts to create the content for the dev website. Using the feedback received from the community in our forums, which is very valuable and helpful, we are working on creating a tutorial which can work as a quick start guide for any new developer trying to create a SAFE application for the very first time. We are trying to make it simple and straightforward, while at the same time explaining some basic concepts needed to understand the APIs and the data structures of the SAFE Network. This is challenging as in many cases explaining one concept leads you very easily to another one, but we are doing our best to avoid going into sidetracks to keep it simple and fun to follow.
All branches we had for different parts of our refactoring in Peruse browser were merged into a single Dev branch, which is where we are now working on some final stabilisation activities before it can be merged into the MaidSafe safe_browser repository. Some of the parts we are still working on is making sure it can register the URI schemes correctly on all platforms for both dev and production mode, as well as fixing some issues to have it running all tests in our CI environments successfully.
We have started to integrate the C# bindings from where the work had been paused because of a few nitpicks in safe_client_libs (see MAID-2556 for more info). This task in JIRA describes the effort that is still left to get the C# APIs merged to upstream and published in Nuget. The Java APIs are also progressing as expected. @lionel.faber and @nbaksalyar have been fixing the issues encountered during the JNI integration.
SAFE Client Libs
This weekend, kpp on GitHub reported a bug in the
get_if_addrs crate caused by performing an unsafe operation: dereferencing a raw pointer. We have accepted his PR fixing this and published a version change, and we are looking into reworking the internal API (MAID-2617) to make faulty code harder to write in the future.
We want to give an update on a revocation bug which was reported on the forums. @marcin submitted a PR and the team took care to make sure that this critical part of the code was thoroughly tested and reviewed. We decided that
SymmetricDecipherFailure should not be suppressed, as in the current code, but that instead an error should be immediately shown to the user. The PR is being revised accordingly; full details can be found in MAID-2616.
We have also continued upgrading crates to Rust 1.24.0 as per MAID-2533, and have merged commits in several of our crates, including self_encryption and routing. The only remaining updates are SAFE Client Libs and Vault – they should be reviewed and merged soon.
@lionel.faber has discovered some new issues in our Java bindings mostly related to the handling of null values in JNI. The default Java constructors initialise the class fields as zeroed memory and object fields are initialised as
nulls. This behaviour can result in
NullPointerException when we convert Java objects to Rust structs. We are going to fix this by implementing new default constructors initialising proper default values for the class fields. The progress can be tracked in the JIRA task MAID-2615.
As mentioned in the previous section, @adam is working with the front-end team to fix the issues in C# bindings reported by them. We are also continuing to work on integrating a proper C header generator into the bindgen – the major part of this work is done, and we are expecting it to be merged along with the C# and Java branches. Progress can be tracked in the JIRA task MAID-2575.
We want to highlight the community member @riddim and his effort in implementing Python language bindings. The Python bindings are shaping up nicely and we are looking forward to seeing further progress – it might be integrated into our safe_bindgen project eventually.
Routing & Crust
The Routing team continues to be split in parallel tracks with one of the teams working to improve the vote ordering algorithm and the other focussed on integration of this into the Routing codebase. We mentioned recently that we expected it would be difficult to provide very detailed updates in the very short term as we work out the finer details and that has proven to be the case. We anticipate that over the course of the next few weeks we should be able to be much clearer about remaining development work once we have a clear path forward and we will make our next Routing update at that point.
This week, we finally attempted to integrate the latest Crust changes (dev branch) into Routing. The integration itself was smooth and CI checks are passing. Although, we still have to do more rigorous testing to ensure no regression was introduced: we’ll spin a separate test network to make sure everything still works fine. Also, in Crust we discovered some abnormal uTP behavior which we will be investigating further soon, but it’s worth noting that should not affect Routing communication since the bug seems to appear only when a connection is being terminated. Finally, we proceeded with
Service::connect() changes where Crust will do connection information exchange by itself using an out-of-band channel. This task was paused for a while until we fixed some bugs and did the Crust dev branch integration into Routing, but now it’s almost done and the new interface should be ready next week.