Update 12 October, 2023

With the HeapNet2 testnet having just left the launchpad, it’s time to review the previous one, MemDebugNet .

MemDebugNet served us extremely well, before inevitably spiralling into Weimar Republic territory due to the highest StoreCost in a close group being the one that gets paid. We are changing how that works by discarding the higher fees and only paying the majority, which should cut out wild price increases. And while it isn’t yet available for HeapNet2, it should follow soon enough.

Other things we learned included that uploading files in batches where the batch size is less than the total number of chunks can fail.

We had a problem with our streaming self-encryption/decryption leading to downloads retrieving prior attempts’ chunks and yielding larger than expected (and corrupt) files. Thanks to @19eddyjohn75 for alerting us to that one. It’s fixed now.

The cash_notes directory can get very large. Saving CashNotes is just a temporary measure for debugging purposes, so this won’t be an issue long term. Its size is also dependent on batch_size. See @anselme’s explanation for why that is.

Work continues to understand and address memory usage and clean-up issues during file transfers and decryption. We’re testing some of these on the new testnet.

As always, a thousand thanks to everyone who’s helping out. Every squashed bug is one step closer to launch. :muscle:

General progress

@Chriso has been working on a node manager binary, including an install command, and looking at extending the service-manager-rs crate to suit our needs. This will allow nodes to be updated on the fly, like clients can be now. This is working on Linux, but needs more work to support macOS and Windows.

Meanwhile, @bochaco continues to work on having nodes publish and subscribe to predefined topics such as storage payment notifications over GossipSub. The notification message contains the payment’s recipient key and the transfer details, and the owner of the corresponding public key can listen and receive these messages. Initially this will be used for rewards payments and for paying Foundation nodes. We will be trialling this shortly.

@joshuef has been turning his attention to the issues turned up in the last MemDebugNet testnet, including PRs 811 and 812 aimed at reducing memory allocation and simplifying connection handling by removing identify cloning/collecting and unroutable peers. He’s also been leading testing of large (multi-GB) file uploads/downloads where we’ve been seeing some flakiness, looking into hangs which seem to be related to StoreCost, and implementing some wallet cleanup in the event of network tx not being registered to disk. He also fixed an unfeasibly large timeout issue that’s a likely cause of the hangs spotted by @happybeing.

@Roland has been digging into the finer points of Terraform and Ansible to help Chris with the sn-testnet-deploy tool. He’s also refining the logging process to capture test client logs to individual files instead of stdout, and working on data location tests during churns to find out where chunks really end up.

Based on heaptrack analysis of resource usage, @Bzee is looking into memory allocation for multi-address conversion. Could that be one of the causes of the slow memory leak?

@Qi_ma opened two PRs (814, 815) to clean up temporary chunks after uploading and compare downloaded files twice to ensure integrity. He has also fixed error handling issues in the GetClosestPeers function which, when an error occurred returned the wrong peer, and a memcheck CI failure which turned out to be related to StoreCost not being paid properly.

And @Anselme has been digging into wallets. He found that wallets keep spent CashNotes, allowing reuse, and so is working on locking them during transfer and deleting spent ones after. Tested locally on Linux, this makes concurrent uploads much faster as previous concurrent CashNote uses would create errors and thus retries. This should also allow folk to run various client commands in various terminals at the same time without incident.


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!

54 Likes

Great update Maid team. Lots of gears in motion as always. Will have a look at the next testnet tomorrow.

Thanks for everyone’s hard work.

Cheers :beers:

22 Likes

Second! Great update as usual

18 Likes

On the box - third!!!

A big nod to the team and all the testers! Respect Gentlemen!
This is really great teamwork! :clap: :wink: :ok_hand:

I am most curious about the progress in the CashNote area.

16 Likes

The speed and learning of each test net is amazing to see. Thanks team, and all who use their free time in the community to break each test net, so it can be fixed. Champions all!

20 Likes

Constant lurker, very infrequent commentator: great to see the progress as always! Thanks to all contributors. :pray:

:ant: :ant: :ant:

17 Likes

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

And also to the community members who are testing our testnets! :horse_racing:

17 Likes

Thx 4 the update Maidsafe devs

Thx also to all the testers for providing valuable feedback/info, together we’ll solve this puzzle and get our SAFE Network. MemDebugNet probably had the most client updates, update on the :fly: is so :drooling_face: the devs really nailed this

I encourage community members to try out the testnets, if you don’t know ask, these testnets are so fun that I’m kinda like addict to it (reallly love that the devs keep pushing them out non-stop :exploding_head:)

Enough talk, time to start testing :sweat_smile:

Keep hacking super ants

16 Likes

Happy to see that you found some fixes for the cost function. One detail that came to mind during reading was if you can upgrade nodes automatically, is there some system in place that makes sure the node temporarily does not accept new tasks and finishes the queue before upgrading to a new version? If there is a breaking change or task in action, upgrading the node might cause problems if these are not dealt with before and that other nodes become aware of the change in status?

Great work as always @maidsafe, keep up the good efforts! And hopefully we can enter 2024 with a :boom:

10 Likes

Imagine if all Americans experienced hyper-inflation
There are people out there in the real world who deserve a better economy, than their fiat economy :crazy_face:
Only truly foundational strong money can achieve this

3 Likes

No exactly hyperinflation but…

2 Likes

I should have said what I mean, what I mean is:
There are more people living in hyperinflation at the moment, than there are in America.
If SAFE is strong money, then people don’t have to move from one country to another anymore or worry about the incompetence of their banks/govs. Internet, a mobile and SAFE could…

5 Likes

What I keep telling people is to decentralize and get off-grid (if possible of course). We should rely more on what is locally available and produce local. Food, energy, water, construction materials, etc.

I hereby officially announce that we’ve entered the reversal of trend from rural to urban. Good old farming will be hot topic, as it should be!

7 Likes

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


Privacy. Security. Freedom

6 Likes