Update 04 May, 2023

Testnet time is here again! :tada: This thread explains how to join the first community testnet (joshnet) using our new architecture, what we are looking for, how you can help, and current limitations.

General progress

This week the team has been mostly engaged in tracking down node discovery anomalies. We don’t think these will be an issue with a full scale test net but they can make testing on a smaller scale tricky. Put simply, messages sent out by nodes are held in a buffer and it seems like without enough activity to push things along, we were not seeing that message. @qi_ma and @bochaco have been digging in there, and it looks like a solution has been found as we were misusing some of Rust’s async functionality there.

Regular async messages between nodes are essential to keep the routing table (RT) updated, but we want those messages to be valuable, e.g. checking balances, rather than only for updating the RT, which would be wasteful. This is something @anselme has been looking at this week.

As David has mentioned, with Kademlia some issues don’t scale linearly, meaning you can’t see the true picture until you have a few thousand nodes in the network. We don’t want to make any ugly kludges that might potentially hide underlying issues, particularly if it’s not something in our code. However the team is also combing through our codebase looking for any potential deadlocks and RWlocks, which, as we know from experience, can be a real pain.

New boy @aed900 is off to an excellent start in another area of discovery, reviewing the code around identities and mDNS - the broadcast DNS protocol. He’s also looking at setting up testnets on AWS, as is @ChrisO. As you may know, we are working with both Digital Ocean and AWS clouds and Chris is working on automating that process as well as getting tracing working properly. Currently logs and traces produced by nodes are not particularly usable, so that’s something that needs refinement and optimisation. @Joshuef is doing something similar for Digital Ocean.

Useful Links

Feel free to reply below with links to translations of this dev update and moderators will add them here:

:russia: Russian ; :germany: German ; :spain: Spanish ; :france: French; :bulgaria: Bulgarian

As an open source project, we’re always looking for feedback, comments and community contributions - so don’t be shy, join in and let’s create the Safe Network together!


First time first?


Congratulations!!! Increible!!!


Thanks for update!!!


What a great update, a great day!


Thanks a lot for your hard work. I’m very happy to have this testnet up and running, no matter the warts, possibly short life span, or anything. Just so happy you chose to put it up without too much internal testing and polishing. Thank you!

… and on top of that, it didn’t take more than “promised”:


:tada: Testnet days are here again!!!

Great news and nice update.

Thank you team for your continued efforts. :smiley: :smiley: :smiley:


Awesome to see a fairly well working testnet with the new setup only a few short weeks after the change began… impressive and promising!

Well done everyone involved, and bring on the iterations in the coming weeks / months :smiley:


Thanks so much to the entire Maidsafe team for all of your hard work! :horse_racing:

And I’m very excited about the new testnet! :horse_racing:


I was a bit concerned that there are only 10 posts in this update. Then I saw the activity in the joshnet thread.

Nice job guys!


Awesome! Bring it on


Question about the payment system: How light it will be resource wise?

I mean are micro transactions really possible in a big scale? If we look at this forum for example, I think there is maybe 5-10 likes :heartbeat: per post on average. In something like Facebook much more. Does liking and paying for it fit nicely in to the Network payments wise?

And how is such a small change stored? Thinking of chunk size etc.


we have really small token units. but also they can be batched, like the app will cache the likes and will store them once in a while if the small token unit is too expensive for a like!


You mean app would cache them locally? If so, then my like would not be visible to others immediately.

But I’m more thinking about this: A like would be a tiny change in network, when thinking about the size of data it takes. If the smallest chunk that is saved to the network is 1MB, how does saving something of a size of few bits work?

And is it possible to save/upload one bit, for example? If it is, how much messaging and network load is connected to that? Is it possible attack vector, to upload cheaply multiple one bit files to the network and jam the network with that? Or is pricing going to reflect not just the amount of data, but the overall load of the upload/save operation?


Whether you change one bit or ten thousand there will be a minimum load and cost for doing so.

The means may vary, writing a new value to a register, or storing a small file, but the network won’t care whether you are changing a flag, several bits or kilobytes, and the charges will reflect that or nodes won’t be paid enough and will leave. So auto balancing to a significant degree.

The costs though will be small. Facebook et al have the same problem of messaging overhead, along with keeping infrastructure running whether you click like and pay or do nothing.

Maybe it won’t be pay per like, but some other way, we can’t really tell until people start testing out these apps and different approaches. We can speculate of course, but asking how much doing X will cost isn’t really answerable.


Thank you for the heavy work team MaidSafe! I add the translations in the first post :dragon:

Privacy. Security. Freedom