Here are some of the main things to highlight this week:
- The Marketing Team have been consumed with preparations for SAFE DevCon 2018 during the last week. As mentioned yesterday, we may be able to squeeze in another couple of people at the last moment. So if you’re interested in joining us, contact @dugcampbell here or by email (email@example.com).
- During the last week, the SAFE Client Libs team has been continuing to improve the language bindings (Java, C# and C remain our top priorities). Generally, the language bindings are getting close to production. The only missing part is full support for the C language in
safe_bindgenwhich is almost done.
SAFE DevCon 2018
The Marketing Team have been consumed with preparations for SAFE DevCon 2018 during the last week - a never-ending stream of emails, conversations, orders, hoodies etc! However, all is shaping up very nicely for the big day. For everyone that’s coming to Ayr on Sunday 22nd April for the event on Monday 23rd April, you will receive an email tomorrow with further details of your hotel booking and transport arrangements for the day.
As mentioned yesterday, we may be able to squeeze in another couple of people at the last moment. So if you’re interested in joining us, contact @dugcampbell here or by email (firstname.lastname@example.org). You’ll get a couple of nights’ accommodation and food - but most importantly get to meet some of the community face-to-face.
We have also been preparing for having most of the team in one place at our HQ in Ayr the weekend preceding DevCon. The weekend represents a rare opportunity for everyone to get to know each other a little better during a couple of days of work and play. For many, this will be the first time they have met so getting this fresh perspective will not only be enjoyable but will help maintain the company culture that can be difficult to instill in teams as decentralised as ours. A few of the guys are taking extended stays so this face-to-face communication will also enable in depth discussions on technical solutions.
@nicklambert was a guest on the Declare Your Independence radio show with Ernest Hancock late last week. @SarahPentland was also interviewed by popular YouTuber The CryptoLark earlier this week - so keep your eyes open for that interview going live any day!
SAFE Authenticator & API
@lionel.faber has been making good progress with the Java bindings integration. The basic JNI APIs are being integrated and unit tested on desktops as a first step. The issues that were discovered are being addressed with help from @nbaksalyar. Once the basic unit tests pass, the test cases will be expanded to use the Authenticator APIs. The CSharp APIs are also progressing well with the integration of the latest CSharp bindings. We are testing the example apps on Android and iOS this week and once the apps are confirmed to work on these platforms as expected, the latest code will be merged upstream.
We’ve pinned down and negated some CI bugs for Peruse, with the dev branch looking much healthier now after the refactor. We’re now concentrating on fleshing out the end-to-end test suite and making sure everything is stable, both in terms of the browser and the updates to the DOM API, which will be of great value for assuring quality as we add new features moving forward.
As you know we are also working on the dev website and we have dedicated some important efforts to this to have it ready as soon as possible. We don’t have much details to share about this at the moment, just that we continue gathering information and feedback from the forums to shape it in the correct way to make it useful and easy for developers to use. In addition to this, as you can imagine, the front-end team as all others are helping in the preparation of the DevCon from different aspects.
SAFE Client Libs
During the last week, we have been continuing to improve the language bindings (Java, C# and C remain our top priorities). We have fixed the issue found by @lionel.faber that we covered in the previous update and now we don’t see any
NullPointerExceptions in Java code. Generally, the language bindings are getting close to production. We have raised a pull request to integrate the bindings code with the
master branch, making them officially supported. The only missing part is full support for the C language in
safe_bindgen which is almost done. We are currently working on automated integration tests and code samples. Current progress can be tracked in this repository.
@marcin is working on improving
get_if_addrs by making it harder to write unsafe code. He is investigating ways to update the API and lower the number of
unsafe blocks. In addition, the revocation bug fix that was being worked on in MAID-2616 has been reviewed and approved, and we will now be testing the new code thoroughly (MAID-2618) as it is critical we get app revocation right. Also, the final Rust upgrade PR has been approved and soon all of our Rust crates will be at Stable 1.24.0 and use Clippy version 0.0.186.
Routing & Crust
No Routing update this week. We are still finalising some exciting developments there. See last week’s update for more info:
In Crust we slightly simplified the
Service::prepare_connection_info()was removed from the public interface
Service::connect()now takes a connection info relay channel instead of two structures: our and remote peer’s connection info. Crust users don’t have to deal with connection info anymore - that’s handled by Crust itself.
We also discovered that on some routers LAN peer discovery was not working. We were using broadcast address
255.255.255.255 which is not handled by some routers. So eventually we used broadcast addresses for specific subnets, e.g.
192.168.1.255 which seems to work on all our tested devices. It’s worth mentioning that we found that netsim is not working on Debian 9 and Ubuntu 16 systems. Reasons are yet unknown and we’ll keep investigating. For the lucky ones who don’t run those systems, we released a new netsim version which adds basic firewall functionality. Now it’s possible to block packets originating from specified addresses.