Update 05 September, 2024

This week we’re finalising the introduction of range-based searching into the code base. This is a vital intervention as it gives us protection against Sybil attacks.

That sort of attack goes as follows: Knowing the address of a chunk of data or a spend attempt, a well-resourced attacker can obtain nodes close to that address. Once it controls the five (say) closest nodes, in classic Kademlia it can then deny access to the data and possibly orchestrate double spends.

With range-based searching, instead of just asking the closest five nodes for the data, we expand the search to ask nodes up to a certain distance away. Remember that each node has a completely different view of the network so we are opening up a huge number of routes to the data. By this means, we can be sure to cover the entire search space and find the data. Once we find it we can also put data to nodes that should have it but apparently don’t, and if they continue to misbehave, shun them. Because all data on Autonomi is signed and self-validating this process can be very quick, and add to the resiliency of the network. This range-based searching code will be making its way into main soon.

The current release candidate 2024.09.13 features a lot of work from @anselme including a refactor of the Spend data type to make it lighter and simpler; redesign of the entire transaction system reducing the code size and complexity by an order or magnitude; rework the internals of Transfer and CashNote; and removal of obsolete code. Plus, there’s reduced replication range to reduce base traffic for replication and improvements to fetching of registers, among other gains.

Thanks @loziniak for the issue asking about a possibly redundant method. If the team doesn’t get back to you soon, give us a nudge.

General progress

@mazzi and @jimcollinson released a new version of the Node Launchpad (v0.3.13). This fixes the 0: storage mountpointerror — an important bug squash.

They’ve also been working on the next update, which will add the the ability to select connection protocol and choose custom ports for port-forwarding.

You can get your hands dirty and test it for us before it’s official release next week. The more eyes on the better.

@mazzi also opened a PR with some additional styling tweaks. He also worked on a hotfix for the launchpad with @chriso and debugged the Discord-bot.

On the topic of Discord, @rusty.spork reports that things are better on the nano earnings front, but not perfect. The Discord community continues to grow, with Wave 3 surpassing 500 members. Another positive sign is the steady increase in nodes, which now exceed 53k. Some users are reporting a PID process was not found error with Launchpad and safenode-manager, which we are investigating.

As well as the work on the transactions, @anselme has been focused on registers, namely how we gracefully handle the register storage size limit in order to manage files and folders.

On network launching and testing, @chriso has been incorporating the latest fixes into the release candidate, including fixing a storage mount issue, improved management of external addresses for better connectivity on roaming connections, and more, as mentioned above. Among other issues @shu has been implementing some metrics regarding the health of uploaders.

@qi_ma has been optimising the store cost algorithm as well as looking into the auditor to speed up its tracking of transactions. He also raised a PR regarding pricing refactoring.

@mick.vandjike has also been working in this area, focusing on transaction verification logic.

@joshuef is putting the finishing touches to our range-based searching algorithm (see above). He also put in a PR that enables node-side encryption by default.

Finally, @bzee and Ermine have been working on WASM, getting a test connection to work. Networking works great, as libp2p has websocket support (required for WASM), but there are a few places where our code contains file paths, which will need to be changed or worked around. Benno is also continuing to document the API.

51 Likes

First! 10 charzzzz (first time being first)

20 Likes

Silver! Wow been a while!

15 Likes

SECOND!!!

Aaaaargh!!! TURD it is then…

But probably the first to read it all through :slight_smile:

17 Likes

All this looks like serious simplification and adding of lightness - Chapman would be proud.

17 Likes

Super :ant: update! Thank you team and thank you supporters!

Despite the insanity of the day to day world, it’s nice to see the weekly update and learn that :ant: is ever moving forward :wink: :partying_face: :heart:

:heart_eyes: :heart_eyes: :heart_eyes: :man_bowing:

This will be cool to the max!

Cheers :beers:

17 Likes

Thanks so much to the entire Autonomi team for all of your hard work! :sweat_drops:

We are making great progress! :dash:

15 Likes

Thx 4 the update Maidsafe devs

I love it how you super ants keep finding solutions and solving puzzle, please keep innovating for humanity :heart_eyes: :vulcan_salute:

@loziniak :clap: :clap: :clap:

keep coding/hacking/testing super ants

12 Likes

I appreciate the constant iteration forward, and it looks like a lot of great work was completed, or near completed.

I do get a little hesitant when the messaging is that we are supposedly in Beta, but we’re still seeing introduction of new tech into the platform and wholesale refactoring of parts of the code base. That doesn’t really scream “Beta” to me, however necessary it may be.

7 Likes

Refactoring is a way of life for :ant: coders. :laughing: It never stops!

5 Likes

A pity - for a short moment I thought the version without live_time and without payment_count had made it into the next release - but seems like we think it’s important…

Very cool - a sigmoid curve indeed looks nicer than an exponential function where the stage of ‘impossible to pay’ appears and is surpassed rather fast :wink:

9 Likes

Everything seems beautiful. Thanks team!

7 Likes

Already been raised some time ago :slight_smile:

4 Likes

Most of this should really go to @Nigel , as it’s mostly my part of the work on JAMS.

5 Likes

Appreciate that but you’re the real brains and brawn here my friend! Just doing what can together :muscle:

5 Likes

Regarding the entire simplification of the transaction system, perhaps look at TigerBeetle DB. Something tells me that you should have a look for a few seconds @Anselme

1 Like

Looks promising! However, this system seems designed for architectures that are far less distributed than ours. It’s built for connected, powerful clusters of tiger beetles, whereas we’re more like numerous small ants running on everyday devices. :ant: :ant:

6 Likes