Helping out MaidSafe core development, gradually

We are setting up a pivotal tracker project. This is here MaidSafe Open Source - Pivotal Tracker and I suggest we add tasks to this. Anyone who fancies taking a shot at these will of course get as much help as they need. Just grab a task and start it. We can set up code review and assistance as we go along.

The mechanism for helping is to use pull requests, this process is found here Contributor work flow · maidsafe-archive/MaidSafe Wiki · GitHub

The code standards we use are here

Any issues can be recorded here Issues · maidsafe-archive/MaidSafe · GitHub and may set off a new task in pivotal tracker.

Please feel free to request any help and jump right in. We will do our best to add some tasks that require to be done and also help the network quickly. One thing we will always accept is test improvements and especially when they help with coverage. Please test only public interfaces though and use the Catch test suite. This is a bit better than gtest in some ways. We will be forking that I think and allowing multi thread test runs (this is lacking there just now). The docs for catch style tests are here Catch2/ at devel · catchorg/Catch2 · GitHub Its a decent project but does not seem to update very quickly. We have added some pull requests as have many. This is another reason we may end up forking this project.

The third party projects in SAFE are contained in our superproject (MaidSafe) and any tests or even code improvements can be made there. There are a couple of leveldb improvements to be made there as well as some test improvements.

Please suggest any tasks on the issue tracker and we will get them in process after review.

I hope this helps people dip their toe in this code base after its all compiled etc. Of course the examples and testnets will also be starting so it may get a wee bit busy. I know I will be in code for a few weeks and less on the mailing lists and interview circuit, although we will be in Amsterdam, London and Dublin. Shout with any suggested improvements to this process as we move along. It is new ground for us all and we need to test and improve as we go along. Thanks everyone.


I should have added that if people are just interested in progress etc. they can subscribe to each of the github repositories. This will allow you to see each commit etc. It is a bit busy though and likely to be very busy over the next few months. You will see pull requests, commits and code reviews as we progress though.

If you are looking at helping out, then it is a good source of information about any code alterations and fixes etc. for instance with the safecoin introduction we can now heavily refactor vaults in a way they will increase substantially the speed and also security (you will see a branch very soon to do this in parallel with the testnet runs).

It should be a bit of a wild ride code wise for a few months as the testnets provide us info. We expect testnet1 to be slow as we will be using a lot of debug output and many nodes will report back to a central logging server to allow us to analyse performance and accuracy of some of the code. This will not affect security in any way (of data elements that is) but will be crucial. We are building a logging system this week coming especially for this. We will hopefully make it available to everyone. This will log some logic and not so much speed etc. as that is secondary for us at the moment.


I’m not a C++ coder but I can use git, (well, sort of) cmake and make and can do some testing on several VMs on both Linux and Windows.
How can I be of most use to testnet1 and its successors? I’ve been running some tests and submitting them to but I don’t really know how useful I am, if at all.
Simplish instructions, please… :slight_smile:

1 Like

As I am planing to adapt my old application (Project management system) with back-end in php/xml/mysql and front-end in Flash ActionScript, maybe working on POST/GET could be complementary? This is a simple team collaboration platform where you can read/write messages, upload/download files, create/manage users. I can even use fronted i Flash for testing SAFE with only changed code for communicating with SAFE API. later I can rewrite the front end.
But maybe you already done API part?

1 Like

Same situation here.
If somebody can give us some info for novices, this would be helpfull.