Test 12b has been great and very useful! It helped us identify problems that didn't come up in our internal tests. Without the community testnets, it would take us a lot longer to find these bugs. Thank you to everyone who participated in this testnet Also, as discussed in this topic, we are looking for a way to make it easier for users to submit logs to us.
We are currently addressing the issues we saw with Test 12b. As you might have already guessed, we haven't iterated to Test 12c today. One of the main issues (there were a few, most of which are already patched in
routing master) we saw with Test 12b was a bug which caused a single node to accumulate as a group and which then rippled further through the network causing other issues. We are going to be patching that soon (like tomorrow) with a simple minimum threshold for accumulation, but it also – as highlighted in this post made by @dirvine – pointed to some current limitations which if addressed would have prevented it without even needing the minimum accumulation threshold. The Routing team are currently also working on the integration design for these parts and hopefully we can remove some of these temporary patches with it and address the limitations once the proposal there is complete. In the meantime, we're hoping to be done with this patch and other general fixes we've seen with Test 12b this week, which should then give us some time to run the internal tests early next week and iterate onwards to Test 12c.
SAFE Authenticator & API
@bochaco and @lightyear have been knocking out bugs that were identified in the Node.js API last week. We have been expanding the test cases of the API to make sure that it's getting more stable. We also added documentation of the complete API to the safe_app_nodejs repo.
At present, the beaker plugins for
safe_browser and also
safe_app_nodejs have to be built locally to get the library dependencies based on the platform. But in the future, when the module is installed via
npm, the dependencies will be downloaded based on the platform. Electron takes a similar approach where the Electron executable is downloaded at the time of installing the dependency.
@Shankar has been working on an example application to allow website publishing. This is an example application to show the devs on how to use the Node.js APIs. It currently has minimal features. We will be adding more features like deleting services, remapping services, etc. in the weeks to follow.
The Electron example application is just out of the shelf. We know what needs to get done to get an Electron compatible version of
safe_app_nodejs. In the meantime, building the example might need minor tweaks to get it building depending on the platform. This is explained in the README. Also, the application needs to be packaged to test the entire IPC process with
SAFE Client Libs & Crust
The Mio-bug seems to be finally resolved with this commit. With that merged into mio-master, we are now waiting for a Mio version to be published to crates.io. Our Crust PR to latest Mio is ready for merge, having passed all tests on all platforms. The existing version in master uses the previous Mio which had a bug that caused a panic on Windows. We had forked Mio-v5 to turn that into an error instead of a panic for avoiding a crash in an otherwise running system. That however meant that Crust on Windows could not be used as an echo/stun service, thus causing problems such as reported here. This has been resolved with Mio-v6 and the upcoming Crust. The test, which had been previously disabled for Windows, has been re-enabled and passing. Also, we did a quick build of
safe_vault with the new Crust, which solved the issue raised in the forum. Unless we hit any major problems in testing against droplets, the Crust PR should be good for a merge and version publish.
safe_client_libs side, we are working on exposing the bootstrap config of the Authenticator to the apps during the IPC handshake (see this PR). This will be useful as apps now run as individual processes connecting independently to the SAFE Network. Instead of expecting all of them to keep track of networking configurations with their own set of bootstrap nodes etc., the Authenticator will pass the configuration that its Crust uses on that user-machine to the apps so that the same config can be reused by them.
Routing & Vault
As mentioned above, we are working on the issues uncovered by Test 12b:
#1354 addresses several bugs related to merging sections.
- The merge bugs wouldn't have shown up in the first place if we already had full message signature validation in place, so we were looking into completing #1356. However, we decided against that for test 12c.
- We are extending the
churn test to simulate more churn, in particular more split and merge events, as well as nodes joining and leaving at the same time.
We've also got a few of us travelling through Asia next week. David, Nick and Krishna are going to be attending and speaking at a Tech Conference in Jakarta this coming Monday about the SAFE Network.
Also, Ben (@lightyear) gave a talk titled "It's time to SAFE the Internet" at FOSDEM 2017 Click here to see the video and slides of his presentation.