Update 25 January, 2024

This week we’ve closed down the NewYearsNet and been battling some CI issues and deployer issues with the quic change. That’s not due to any issues with the branch per se, so much as tooling around it having been tcp focussed.

Alongside that we’ve been trying to move over to use the node-manager internally (and for the testnet deploy), which is another round of complications we’re just inching over.

Once we have that in hand, there’ll be another quick quic testnet before we move on to testing some other interesting things out!

One of which is the work @mav has been doing on a proposed flow for the OMNI conversion, which should allow upcoming testnets to test out the conversion process, and allow folk with OMNI tokens to directly claim then (without having to resort to a faucet!). This is a first draft process, and we’ll be going into more details on that soon ™.

General Progress

@qi.ma has been continuing to help push forward releases, testnets and testing across the board, fixing benchmark tests, reducing logging, and digging into other test failures.

@roland and @chris have been pushing on the node-manager front, starting the shift into the monorep so we get dogfooding this across the board (for example in upcoming CI improvements where we run live testnets nightly, which should give us a missing test layer over a public network.)

@bochacho is back at improving the CLI and signing processes, in order to allow for out of band signing of transactions, as it looks like direct ledger/trezor integration may not be possible as yet. This should put us in a good place to push forward from when that does make sense.

@jason_paul continues improving the client documentation and is starting to get stuck into creation of new features in the codebase too.

@Anselme has continued pushing forwards on DAG capabilities for nodes, allowing for audit of the currency, and complete royalty collection. And we’ve continued to debate around how best to integrate such DAG verifications into the normal node spend-verification flows (in order to prevent money-creation attacks). Things are starting to take shape on that front.

@joshuef has continued some digging into the possibilities of wasm compilation for sn_client. Towards the end of last week, we had some basic PRs to rejig and remove certain dependencies that would not work on wasm32-unkown-unkown, but now we’ve a basic proof of concept of its use in place, and a PR getting in the changes needed to enable further work here. This is quite exciting as wasm32-unkown-unknown architecture is what allows rust code to be run in a browser :tada: (there are limitations on this, and how best to run this is still to be decided, so don’t get too excited. But it is great to be potentially opening up another front for safenetwork use!).

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!


Fist! Fist! Fist!


Second :partying_face: keep it up team :clap:t2:


On the box! :ok_hand: :blush:

Still a great job by the Team, not slowing down! Thanks a lot, looking forward to more :point_left: :clap: :wink:


BREAKING :rotating_light:

OMNI MAID starts trading at a premium to eMAID :joy:


Super update team. :partying_face:

Very excited to hear about conversion work coming along. Also the WASM work. I guess this maybe means keeping node and cli separate? Does working WASM compilation inform about how to proceed with cli GUI? Having cli in the browser would be pretty neat.

Thanks for the update.



I’ve had a look at the code and i’m a little bit confused. Is plan to use OpenPGP to decrypt the “coin note” locally with the private key? and then this “coin note” can be claimed on the safe network?

Is a snapshot of public keys the correct approach here? Should it not be (address, value) because you can only see public keys on the blockchain of addresses that have a spend.

Should the user not send the public-key, which you hash into an address, validate it has coins, create an encrypted “coin note” using the provided public-key. What happens if someone claims my encrypted file before the rightful owner who can decrypt? will you just send out multiple copies?


Thx 4 the update Maidsafe devs

Jippy can’t wait for the Quic testnet, bring it on :partying_face:

Know that I’m sounding like a broken record :sweat_smile:, but would be fun if you could also claim other assets on the pubkey. SAFE Network could enable cheaper, faster and privacy first tx’s

Keep hacking super ants


Thanks for the update, looking forward to further testing of quic. Hopefully that goes well and then we can move onto the other goodies mentioned above.

Thanks as always to all involved, whether you got namechecked or not :slight_smile:
Every ant in the nest deserves appreciation.


The wasm bit seems interesting, but my lack of knowledge about how wasm actually works is impeding me.

I had understood wasm as being this thing that various languages could target, like assembly but for the web. How does it make sense then for Rust to have its own compilation target? Wouldn’t it target the thing everyone targets? Or is it some sort of little VM, written in Rust, that can only run Rust?

Put differently - if this works out, are we then closer to having all the languages that can compile to wasm, or is that a seperate question? I think it’s being suggested that the answer is yes. Which would still be cool, of course, to have Rust!


Basically it’s RustWasmEvery language

So if you are using python or c or javascript you can import the wasm lib and use it directly. This has been a goal for a while, a cross language and cross-platform way for folk to use SAFE


Is it…

sn_client lib RustWasm
Any app in any languageWasm

Then combined as WASM into either of:

  • web app in browser on WASI runtime
  • native app (desktop or mobile) on WASM runtime

I’m a bit rusty [cough] and possibly out of date with how the things fit together, but am very excited that you’re already targeting WASM. Itching to play with this.


It’s both really. So a wasm lib can be imported by almost any language AFAIK. Then apps can be made in that language or indeed recompiled to wasm again. So yes web apps, browser based apps and so on.

My big one though is just being able to use wasm as a lib in any language as then we are cross language/cross platform and that’s huge in my book. I hate having many FFI layers and different bindings, so I hope this gets us away from all of that and means a single source of truth API that many folk can use direct and allow us to iterate and bug fix in one place.

I had a bash a few years back then @bochaco made mroe progress and now @joshuef is leading the fight there. It’s very promising to me


I’ve missed this and not sure how that works because every language still needs a way to bind to the lib, which presumably doesn’t need to go through WASM as most can use C bindings. :thinking:

I probably need to read up on this, if you have any pointers to how that works it an example let me know.


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

And also the people who are testing our testnets! :horse_racing:



Following on you are correct provided the language has a WASM runtime which can run the WASM library/module that you want to import.

This blog shows how to do this for Python:


Yes, I don’t think it’s totally simple in every language just yet, but surely it has to be. Better than writing bindings and should only improve.


The public key of each maid address is used to encrypt the cashnote so only the owner of the maid address can decrypt it. This uses ecies, not pgp.

Yes, this is what happens! If the public key is available on the blockchain it’s used to create distributions when the network starts, which is really useful for keeping the undistributed tokens to a minimum, lowering counterparty risk. If the public key is not available, people can submit their public key and be issued encrypted cashnotes on the spot. Submitted public keys are kept so next time a new network starts they can be used.

They could only claim that file if they have the private key for your maid, since the private key is needed to decrypt the cashnote. Anyone can get a copy of any encrypted cashnote, but only the maid holder can decrypt it.


And the cool thing - if I’m not mistaken - would be that for a C FFI binding based python lib we would need to compile the bindings lib for every architecture we want to support and use the right one on the right platform as blob…

And with wasm it would just be one library for all platforms and the wasm runtime would take care of the platform stuff…