Dev Update - Week Beginning 30th June 2014


Hi everyone,

Core Dev update time - some of the team: @Viv , @nicklambert and @dirvine spent Wednesday, Thursday and Friday in Dublin at Bitfin 2014 spreading the SAFE message. So what else has been happening…

Third Party updates

Updated gtest / gmock / protobuf to the latest versions and now they pass our strict compile flags and sanitiser tests (mostly). Third party code all under test and checked dynamically and statically for code errors. LevelDb (used for storing persona data in Vaults) still presents possible issues as it does not pass all Windows tests; we are investigating SQLite for this purpose with memory tables. We also evaluated Unqlite and then SQLlite for the purpose of multiprocess access of bootstrap file. We finally decided on using SQLite as it is heavily tested and has a more mature library.

Testnet 1 RUDP performance improvement

Maidsafe saw a lot of third party library dependencies updated to their latest versions this week, which has meant a lot of time expended adjusting things for breakages. That said, time was found to get the CI tracking RUDP performance over builds, so if you have a look at the Jenkins dashboard at you’ll see a neat new RUDP Performance history graph, which shows RUDP performance per build for 0%, 1%, 2.5% and 5% simulated packet losses. As you will note, currently ANY packet loss causes instability in RUDP and the test fails, so first order of business will be getting RUDP stable with as much as 5% packet loss, after which we shall start to think about performance.

Routing / Vaults

Simplified the routing table interface by removing duplicate functions and merging similar functions to one. Removed remove_node_functor, close_node_change_functor, network_status_functor and network_statistics_ from routing table by introducing RoutingTableChange struct, which enables handling all changes outside routing table. Removal of group matrix from routing table introduced some joining issues with client and is now fixed. We also changed the way clients are notified on appearance of closer Vaults in the Network. Tested Group Matrix removal changes.

TestNet1 - bootstrap files

Finalised the approach to handling bootstrap files and aiming to complete the change by early next week. This will allow work to continue on the API changes and auth example.

Vault Manager (now completed)

Bugfix in detection of TCP connection failure in Vault Manager.

Local Testnet 0

As office testnet setup and teardown is automated to bring up network with our daily commits every morning, we plan to run CI nightly suites against the network.

Drive Launcher and Drive

Worked towards using TCP in place of shared memory IPC between Drive Launcher and Drive.

Local Network Trigger

Worked on test utility to trigger local network for gtests if it’s not already running.


Find our Roadmap here >