Update 27 April, 2023

Another relatively compact update this week as we work on readying the next community testnet, which needs a bit more tweaking in-house. We actually have two testnets planned. The first will be a relatively simple affair, with data stored in memory and no NAT traversal. Knowing the community’s propensity to bombard testnets with cock pics (sic) and record collections, we expect it to be a fairly short-lived affair, but it should allow us to see what’s happening with messaging between nodes. Soon afterwards, though, we should be able to flick a switch to allow store to disk, and after that NAT traversal. So, baby steps, but it’s the fastest baby you ever saw.

Also we’re pleased to welcome Angus (@aed900) to the team :tada:. Angus is a network engineer who’s going to be helping us on the routing and connectivity side of things. He’s leaping in at the deep end, working with @bzee to see how libp2p handles NAT traversal and what tweaks might be needed for Safe.

General progress

@Bochaco is currently Sr Serialisation, making sure all data can be transferred and stored efficiently in memory or on disk, that messaging is efficient and able to cope with the anticipated asynchronicity, and ultimately that we can support multiple programming languages by ensuring data formats are platform-agnostic (e.g. protobuf).

Much of the generic stuff we think can be pushed to libp2p, leaving us to handle the specific requirements for apps running on Safe.

@roland, @qi_ma and @anselme are looking at how libp2p handles data requests. Basically, there are two scenarios for a GET. One is a simple Kademlia request that gets routed to the closest nodes based on the data’s XOR address. libp2p also has a service provider functionality where the client requests a service from a specialised node (e.g. an audit or an archive node) which then carries out the request. Obviously this will be massively helpful later on.

@bzee is continuing to test NAT traversal. Currently he’s looking at the relay functionality, specifically how we can use this as part of the startup sequence, i.e. first detecting NAT then optionally connecting to a relay. He is also looking at how to identify which nodes offer which functionality (see above).

@joshuef is digging into libp2p’s refresh functionality. Kademlia by default forces nodes to check the liveness of their closest neighbours by periodically replicating data to them, but this may (or may not) be wasteful in our case. Limited testing has not revealed any problems (and indeed has been quite pleasing to see!), but as we scale up we may want to move this time-based functionality to one that’s event-driven, where checks are carried out when changes to the close group (joins and leaves) are detected.

And spanner in hand like a latter-day Mario, @oetyng has been heroically plumbing DBCs into the new architecture. Our new home now has a faucet for use by whoever starts a comnet. This person claims the genesis DBC and can then redistribute it as they wish. We plan to have a webpage where users can tap the faucet by themselves to make payments. Prior to that, payments can be made using the CLI by following these three steps:

  1. Receive a public address from the recipient.
  2. Call the faucet with the amount to get.
  3. Hand over the resulting DBC hex to the recipient.

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?! . . . . . . .


Sneaky second I’m never far away :slight_smile:

Now to read this beauty


not this time it was me :grinning:

but I don’t mind sharing it with you :grinning:


Thanks @Maidsafe!

Welcome aboard @aed900!!!


Indeed, nice to see new folks coming on board!

Great update in general, good to hear that libp2p is taking care of the more generic stuff. It seems to be doing even more than expected.

The plan with the testnets sounds also good. I don’t mind if they live short or long, as long as they are any benefit or fun.

One thing though, that gave me goosebumps was this:

Please, tell me this is not a beginning of a new round of approach with total order, membership etc. :cold_face:


Nice and tidy update. Thanks team :wink: Seems things are cruising along at high altitude.

Greetings @aed900 - Hope you find your time here to be enjoyable and productive.

Cheers all! :beers:


100% not :smiley: That’s never happening again


That’s what I thought, just got to hear it from you. :smiley:


Thx 4 the update Maidsafe devs.

Welcome @aed900

Wow that’s really amazing 2 testnets, can’t wait.

This time they will also be bombarded with dick pics

Keep hacking super ants


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

More community based testing is here! :clap: :clap: :clap:


About time that a fella called Angus was brought on board, now you know that we’re getting close to the action :muscle: best of luck @aed900 getting up to speed and jumping in, fair play to you.

Data stored “in memory” here is not referring to something fancy, it just means in RAM on a client’s machine in the usual sense?

How does whether data is stored in memory or on disk relate to NAT traversal? It seems to be implied that data must be stored on disk for NAT traversal to become a possibility, and I don’t see the link. Maybe I’m missing something obvious.


Ah, that’s maybe bad wording, but we are tackling both next week, but they are not related.


Thanks for the update, its an exciting time.
Welcome @aed900, you picked a fine time to join us :slight_smile:
I hope your stay is long, productive and satisfying.
The agogometer is emitting a steady thrum and I have been forced to lubricate it with Bruichladdich twice already this afternoon. It has been taken from the shelf and placed carefully on the floor. Minimise the PE in case of sudden excess KE and tears.


Ah, ok, understood, cheers! Rereading :slight_smile:

Edit: actually, I think it was written fine, I was adding a link between the two things. Upon a rereading here, it is totally possible to not make the jump I did. Anyway, all clear now.


funnily enough I bought my router in Dubai and it cost about @aed900


Something I wonder: You mentioned a while ago that network is likely not stable with under 2000 nodes. Yet you seem to use only 24 in your testing. I’m sure it makes sense, but how?


I think we might be seeing issues because of this actually.
But hard to know. We haven’t yet been able to spin up 2k node testnets for ci.


Thanks all for the warm welcomes! Hopefully I can be of some use :slight_smile: Delighted to play any part in helping this amazing project reach its aims.