Will Maidsafe launch within the next 3 years?

What a bs. Vort is just realistic, you need a few ppl like him (not too many obvious). We cant have all pink glasses and live on hopium


Suspending @Vort is really not cool. The undercurrent on this forum to insist on any criticism to be shared in only a particular, positive way is not good. A lot of people are blunt and direct, it doesn’t mean that they necessarily have ill intent.

Honestly, things like this is why I’m against committees as anything approaching fair arbiters because I’ve consistently seen how a few individuals actually wield all the power in such a committee and nothing that doesn’t fit their viewpoint or originated from people they like gets past the committee. Maybe this is a completely unavoidable property of the human condition and hoping to get around it through decentralization is futile.


I totally understand @dirvine frustration butI think a lot of the problem re @Vort is language.
His first language is NOT English and while his communication in here is good, I think some is still getting lost in translation.
Said this before and I will say it again, I am in awe of those whose native language is not English but come on here and contribute. And that extends to those I too often argue with as well.

@Vort is annoying at this time but I would def not accuse him of FUD.

I would vote for his ban to be removed immediately.


Reading the last posts, I see that I was left with the wrong impression of a targeted FUD and the mistake is mine. @Vort suspension has been lifted.


Im sorry but I have to disagree here -

Lets face it Rust is hard for non-programmers to read and understand, let alone grok. It does take a lot of effort to plough through rust code, especially if you have no pro experience as a coder. Rust is NOT easy, its NOT python or JS… Its not as hard as C++ but thats not saying much.

In a perfect world, the team would be commenting every other line of code on Github for those of us who are yet to become familiar/mildly competent in Rust. But its not a perfect world and we have no right to expect it to be.

Perhaps a good community project would be for a couple of rust-savvy folks to comment one or two of the core functions which are unlikely to change significantly^ for the benefit of those who want to learn, not just the basics as in any Rust 101 but the syntax and rusticisms as used by the team.
Sort of at random I chose safe_network/cli.rs at main · maidsafe/safe_network · GitHub. This is already well-commented, if changed would, I think only be added to in a similar style,but if (almost) every line was explained then much more would be clearer for the frustrated.

^ Im sure @dirvine or someone can pick a suitable piece of the puzzle that is likely to remain stable-ish so its not work that needs to be repeated too often if at all.


@moderators Maybe this should be in Learning Rust :safe:

In safe_network/cli.rs at main lines 28 on

use clap::{AppSettings::ColoredHelp, Parser};
use color_eyre::{eyre::eyre, Result};
use sn_api::{Safe, XorUrlBase};
use std::path::PathBuf;
use tracing::{debug, warn};

Ok we are importing functions/code from else where - just what are we importing and why? some is obvious to me, some is not

line 34 has a useless (to me) comment after it

#[derive(clap::StructOpt, Debug)]
/// Interact with the Safe Network

Somebody ELIF that line #[derive(clap::StructOpt, Debug)] please? cos # is NOT a comment here AIUI

lines 49-57 deal with options on the command line

  /// Output data serialisation: [json, jsoncompact, yaml]
    #[clap(short = 'o', long = "output", global(true))]
    output_fmt: Option<OutputFmt>,
    /// Use JSON as output serialisation format (alias of '--output json')
    #[clap(long = "json", global(true))]
    output_json: bool,
    /// Base encoding for XOR-URLs. Currently supported: base32z (default), base32 and base64
    #[clap(long = "xorurl", global(true))]
    xorurl_base: Option<XorUrlBase>,

Why would I want to use any option other than the default? What are the use cases for the non-default options?
Just little stuff like that would certainly help me and possibly others too.

Well like I said there have been community members who’ve commited code, most seem to be considered and accepted. From @happybeing, @bzee to @Southside have made commits, pretty sure. Folks like @tfa and @jlpell have made great suggestions that were adopted. @JPL AFAIK single handedly updates the primer these days.

You’re obviously welcome to share your feelings but fact is community is involved and as David says integral, even in a supportive role, accountability, etc. Though the team can’t just let the community develop the network yet because the full design is yet to be completed and they have the most direct knowledge of it, despite being very transparent with updates and open source GitHub repos but they are always open to discourse and commits that aren’t too much overhead or showstoppers. There is a cost to dead locking on any of these.

Once the network is live and design is solid I have no doubt they will focus heavily on documentation and outside involvement but there will still be much to do for them yet to become feature complete and reach beta and beyond so it still seems like a lengthy road to those mile markers but they’ll need all the help they can get and when they need it. So if we want this, we should be here to help in whatever ways we can.


Thanks but please take me off that list of contributors - my PR was mind-numbingly trivial, a typo and slight reword IIRC. Pales into utter insignificance compared to the work of others. I only raised the PR as thats the RightWayToDoIt, even for a minor typo.


If I’ve had a commit accepted it is in that vein but I honestly can’t remember. I don’t deny my contributions though, and the value of the community generally. It is a misunderstanding by @Vort for him to think of the project as closed. I’m not sure what he’s comparing it with but this is the most open project I know and even when it has been difficult MaidSafe have always tried to accomodate anyone from outside who can make a useful contribution.

Obviously not everyone who wants or tries to contribute can do that, and I don’t think we can expect MaidSafe to be educating people who need too much help or learning that at this point because it would be counter productive. Especially when it is possible to learn in other ways without taking time away from development - my app vdash was built in order to help me learn Rust, and has I think helped the project and community even though it isn’t part of the MaidSafe codebase.

Literally anyone who wants to contribute can do what I did, even if starting with much less or zero experience. It will just take much more effort and time to get there, but it is IME much more fun than banging on about things on the forum so I recommend it and there is help available from the community for anyone who wants to do this.

Building, modifying, fixing software (or anything) can be a lot of fun and very rewarding. It can even lead to new and exciting careers.


This topic is about how fast development goes.
Of course, it is possible to propose small changes even without full understanding of how code works.
I made such changes in other projects even in cases when I did not knew programming language.
But how much speedup it will bring?
Changing 0.01% of code is a good achievement for person, but what about whole project?

Let’s say someone is ready to make relatively large change (~100-1000 lines of code). How person can understand what part of the code he may change without interfering with work done by other developers? He can’t see what parts of code are in process of change right now, he can’t see what is planned to be changed in near future, he can’t see how final structure of program looks like in developers’ mind.
Many essential parts of information needed for major changes are hidden. That’s why I’m talking about closed development.
Development may become less closed in future, but I’m saying only about what I see right now.
And again, I want to repeat what I already said:

I only wanted to note that significant acceleration of development by community members looks not plausible right now.

It is possible that in case someone decide to make large contibutions and ask for help, developers will share needed information.
But starting without asking looks unrealistic. And this is perfectly valid style of work: just choose something and just make pull request.


I was thinking mostly about how Wikipedia articles are made.
I’m sure that it is possible to find similar approaches to development of code.
But I don’t have examples right now.

1 Like

Glad to see @Vort is still with us and was not discouraged by his temporary ban.
He does raise some points that may be difficult to deal with but I do not think he is a FUD merchant.

Again, lets all keep in mind that English is not the first language of many of our contributors and while most appear to have excellent written English, the mental processes required to output that English may still have lost a little bit on the journey.

So a little slack, please if the nuances are not quite right from your PoV.


Quite so. I don’t know if you’ve ever worked on software in a collaboration, but your suggestion here, while feasible in theory is unlikely unless you have first done earlier work on the project and with the team. It isn’t likely to work on an active project in the current situation:

You say that starting without asking looks unrealistic but that it is perfectly valid:

That’s true, but ineffective. If you want to do a lot of work it is not sensible to do that without first getting to know the code and work with the team to decide what it is worth you tackling. How else can you know what to work on or what is needed. Anyone approaching this kind of work would, if serious, start by discussing what they want to do, or ask the team where they could help.

I think you lack the experience in this field to judge what is feasible or sensible, or to decide whether the project is open or not. I think you are commenting on things you don’t understand and are not qualified to call.

1 Like

By looking at Issues section of GitHub for example.

It would be interesting to look at your criterias for deciding whether open source project have open or closed development processes (if you have enough experience, understanding and qualification of course).
My classification, as I said, is based on amount of publicly available information about project development.

My experience is primarily of software development, and secondly in open source. I’m not sure if you have any experience in software of development in general. Yet you are here apparently pronouncing as if you do.

Please can you share why you think your judgements here have value, because they don’t make sense to me.

Saying ‘by looking at GitHub issues for example’ suggests to me that you don’t. That’s not an answer to the points I made, so you don’t appear to have the experience to comment on these issues.

1 Like

This is how all our devs work. All work is in the public forks of the main repo. We can all see them. We have 2 internal meetings per week to understand what everyone is working on, mainly. But, this is just a large code base and we have folk that come in and work on some module and they have no idea about the rest of the code. That happens a lot.

This is how open source works!

Who has asked us about a bit of code and not had an answer? We cannot answer every question from every person, but right here, right here in this forum, you will find you have a ton of answers and yet you call us closed? It baffles me. This is why I feel you are purposefully distracting us from launch


I see


That is a macro that allows some of the following struct to be command-line arguments.

In terms of code documentation, I feel it’s never good enough, but again I hope the AI advances we are now seeing will not only document the code but allow you to ask specifically these questions. It will help us all.

BTW every single contribution is golden for us as it means folk just cared enough. So take the credit there man. It’s all great. Look at all the scripts etc. They are all great


Ok, I’ll jump in with the BIG premise of not knowing anything about open source software development…and with this idealistic view of how that would work.
We know that, for example, there is a problem with NAT transversal. Shouldn’t in the qp2p crate be a GIT issue about that, to give external contributor the opportunity to jump in? Is this what @vort is referring to?
I can see how there’s a lot of prep work to be done to clearly frame the issue and the scope of work, but I can imagine there’s a lot of people willing to contribute, maybe to use the same crate for other purposes, but not being enabled because the path to contribute is not clear?
Sorry, might completely be off the mark here, and apologise for that. But I see parallels with the kind of work I’m familiar with, and delegation and enabling contribution is foundamental, although painful sometimes…


I am not sure it is anything specific @Vort is alluding to. In fact there has been no specific issue he seems to be focussed on fixing or contributing to.

In terms of somebody fixing NAT then yes it would be amazing. There is a lot to consider there (changing IP via DHCP) constant keep alive every <10 seconds to stop the hole closing and so on. The good thing about that is that every p2p project has the same issue. So there is plenty of discussions and I even posted a paper to show how to do it in a decentralised network. So that one has a ton of documentation from us and others. Not trying to cop out, just pointing out the facts.

This is true. Many of our crates are used elsewhere, in fact one of them was the chosen “create of the week in rust”/

Not at all, always good to check.


Looks like that sentence by me was not precise enough.
What I tried to say is that some (many?) people prefer to make contributions without asking questions.
And such methods of work looks unrealistic when not enough information is publicly available.

Such information is often outdated because of freqent changes in code.
How can person understand if answer, which he found on forum, is still applicable to present state of codebase? By making another question?