Dev Update - Week Beginning 2nd June 2014


Hi everyone,

Another week, another core Dev update; so without further ado, let me present the update…

BSD Support

This week saw BSD build support merged into the NEXT branch (FreeBSD, at least, should work with all the other BSDs). Ancillary benefits include restoring clang 3.3 build support, much improved build support for older systems (the internal copy of Boost is now always built with the exact same toolset as MaidSafe, fixing ABI mismatch problems) and of course bug fixes illuminated by BSD. Note that while MaidSafe will build on BSD, it doesn’t currently completely pass all unit tests for all parts on BSD; this will be improved in due course.

CLI Tool

There has been a body of work by the team to create a simple to use Command Line Tool (CLI) that will allow user input and output. This aids very fast prototyping of API functionality without the need for a GUI and in a manner that is cross platform, requiring no further libraries than the MaidSafe core libs. This is enhanced by a simple to use menu system that allows some further functionality to be included. We will make use of these tools in examples and also in the QA suite (originally python).

These tools are found in menu.h and cli.h in the common library.

Network Viewer

This is in late testing now and seems to be performing as we wished. The team have done a terrific job so far and we expect this to be complete next week. There are some small performance issues and additional network health stats per node that were included late in the specification. These are in place now and after some further testing we should be able to release this to the community to analyse their own local networks. It should be noted though that this tool cannot differentiate between networks, so we need to be careful to check that the tool is not in use before performing any tests of our own.

It is pretty easy to set up though and we may provide code and instructions for anyone keen on doing their own analysis. The target IP address can be altered easily in the code to target different servers.


Drive code has now been adapted to work with the local network controller. This enables us to use and test drive against a network. We will continue with more testing and bug-fixing on all supported platforms.


Vaults tests are now re-factored to use network_controller tool. We are currently working towards lifetime issues (object destruction), with Routing and NFS object, that have recently been observed.


We are simplifying the use of Maid Node NFS by completely wrapping the Routing interface inside it. This will reduce code duplication and maintenance overhead for NFS users.


The team completed a bugfix in SessionGetter (API), which allows all API tests to pass now.

Local network controller - low end testing

Here we have been focusing on local network controller tests across different platforms (OS X 10.9 / Ubuntu 14.04 - including ARM devices / Windows 7 32 & 64 bit / Windows 8 32 & 64 bit), especially concentrating on lower end / less well spec’d machines; to test a recent fix in the NEXT branch code to increase performance with slower devices.

As always, if you would like more information on a specific area please ask and we will do our utmost to provide more detail.