Latest Release April 1, 2025

:loudspeaker: Announcement: Latest Release :loudspeaker:
Please follow these instructions to upgrade your nodes to the newest version to ensure the best performance and stability for everyone! Check out the Github Release with changelog details.

For Node Launchpad Users:

  1. Open Node Launchpad v0.5.7 if you are not already on that version
  2. Press O to access the Options screen.
  3. Then, press Ctrl + U, and hit Enter. This will upgrade your nodes. Upgrading can take several minutes for each node. Please don’t close the app or stop your nodes during this process.
  4. Your nodes will now stop
  5. Press Ctrl + S to start your nodes again

For CLI Tool Users:

  1. If you’re using the CLI tool, please update and upgrade. Run the update first: antup update
  2. Then run the upgrade: antctl upgrade --interval 60000

For ALL Users:

  • Please start your nodes gradually — especially if you plan on running multiple nodes.
  • Be conservative with CPU allocation to maintain stability

Binary Versions:

  • antnode: v0.3.9
  • antctld: v0.12.2
  • antctl: v0.12.2
  • ant: v0.3.11
  • nat-detection: v0.2.19
  • node-launchpad: v0.5.7
25 Likes

Hey, I’m so stoked about getting enhanced RT refresh scheme with liveness check out there, cause I hope it will solve a lot of problems.

Good job! :+1:

10 Likes

One of my nodes closed by itself, logs:

02.737137Z INFO ant_networking::driver 916] Set responsible range to Distance(17668470647783843295832975007429185158274838968756189581216062012926197755)(Some(243))
[2025-04-01T19:47:16.859425Z ERROR ant_networking::event::swarm 478] IncomingConnectionError Valid from local_addr:?/ip4/0.0.0.0/udp/12118/quic-v1, send_back_addr /ip4/65.21.201.225/udp/38328/quic-v1 on ConnectionId(1964) with error Transport(Other(Custom { kind: Other, error: Right(Custom { kind: Other, error: Custom { kind: Other, error: HandshakeTimedOut } }) }))
[2025-04-01T19:47:17.736672Z INFO ant_networking::driver 916] Set responsible range to Distance(17668470647783843295832975007429185158274838968756189581216062012926197755)(Some(243))
[2025-04-01T19:47:32.736665Z INFO ant_networking::driver 916] Set responsible range to Distance(17668470647783843295832975007429185158274838968756189581216062012926197755)(Some(243))
[2025-04-01T19:47:45.762718Z WARN ant_networking::event::identify 35] identify: Error { connection_id: ConnectionId(1967), peer_id: PeerId("12D3KooWP5CwGDMyqW8fvV1EjL9PAinZDELPREWZySjiEENVTkw1"), error: Io(Custom { kind: NotConnected, error: ConnectionLost(ApplicationClosed(ApplicationClose { error_code: 0, reason: b"" })) }) }
[2025-04-01T19:47:46.211329Z INFO ant_networking::network_discovery 263] It has been 180s since we last added a peer to RT. Slowing down the continuous network discovery process. Old interval: 208.440113515s, New interval: 563s
[2025-04-01T19:47:46.220239Z INFO ant_networking::network_discovery 388] With min_full_bucket_index of Some(241), targeting buckets of [241, 240, 239, 238, 237, 236, 235, 234, 233, 232]
[2025-04-01T19:47:46.220281Z INFO ant_networking::network_discovery 128] Going to undertake 1 get_closest queries for non_full_buckets []
[2025-04-01T19:47:46.231344Z ERROR ant_node::node 357] The `NetworkEvent` channel is closed
[2025-04-01T19:47:46.231548Z INFO antnode 450] Node is stopping in 1s...
[2025-04-01T19:47:47.233430Z ERROR antnode 459] Node stopped with error: Node events channel closed!

Interestingly, when I check my IP with https://whatismyipaddress.com/ or any other similar site, I get only my IPv6 IP, but they get stuck with IPv4 and don’t show anything. I don’t know if this is connected to node dying or not.

5 Likes

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

11 Likes

I have 16 nodes running:

12 node UPnP, no Home network, running fine.
1 node with UPnP and Home network running fine.

But now, no matter how I add (Home Network or not, always UPnP) they don’t connect. Logs are like this:

::cache_store 153] Creating new CacheStore with config: BootstrapCacheConfig { addr_expiry_duration: 86400s, max_peers: 1500, max_addrs_per_peer: 6, cache_file_path: "/home/toivo/formicaio-v0.4.9-x86_64-unknown-linux-musl/formicaio_data/bootstrap_cache/bootstrap_cache_1_1.0.json", disable_cache_writing: false, min_cache_save_duration: 300s, max_cache_save_duration: 86400s, cache_save_scaling_factor: 2 }
[2025-04-01T20:53:15.334481Z INFO ant_networking::driver 968] Scaling up the bootstrap cache save interval to 600s
[2025-04-01T20:53:15.334514Z INFO ant_bootstrap::cache_store 327] Flushing cache to disk, with data containing: 0 peers
[2025-04-01T20:53:15.430953Z INFO ant_bootstrap::cache_store 376] Cache written to disk: "/home/toivo/formicaio-v0.4.9-x86_64-unknown-linux-musl/formicaio_data/bootstrap_cache/bootstrap_cache_1_1.0.json"
[2025-04-01T20:53:30.334161Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:53:45.333867Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:54:00.334578Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:54:15.334249Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:54:30.334114Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:54:45.334245Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:55:00.333862Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:55:03.333951Z INFO ant_node::log_markers 69] IntervalReplicationTriggered
[2025-04-01T20:55:07.206437Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.
[2025-04-01T20:55:15.334488Z INFO ant_networking::driver 873] Not enough estimated network size 1, with 0 peers_in_non_full_buckets and 0 num_of_full_buckets.

I think I solved this:

I started those non connecting nodes with ethernet unplugged, and I have a rule in my router to only allow port forwarding with the ethernet, not wifi. So I guess the nodes that have port forwarding set up with cable on, will continue to work even unplugged, but new nodes cannot be started.

Now that I reconnected the cable, everything works fine.

4 Likes

This is the best release in a long time for me!

I’ve upgraded AntTP to use autonomi libs 0.4.3 and it is night and day better than the last version.

I can reliably download files again and I can even test some streaming again!

We’re not quite at test net speeds again yet, but I’m getting some files coming down in sub 1 second, which is very promising. Big thanks to the team for all their hard work!

22 Likes

What happens when half the network is running the latest version of the software and the other half runs old versions?

4 Likes

Well this is not an April’s fool joke.

My ping-a-node script which uses ant file cost and analysing the logs is seeing a marked improvement in getting to closest nodes. Although a little increase in failing to get 5 quotes with maybe 20 to 25% failure rate and would need more testing to confirm that.

I did a run which repeated a node ping 4 times and one failed due to not enough quotes and 3 succeeded. In the past with 3 successful I would see 21 nodes pinged and 50/50 that the target node would get pinged.

This time I saw 8 nodes total pinged with 6 pinged 3 time, 1 pinged once and 1 pinged twice. Interestingly the target node was the first node pinged each time and pinged every successful quote request

Bloody good result even if not perfect. It is a BIG improvement.

Congratulations to the team for this improvement @qi_ma

22 Likes

An update to this and I am seeing ant file cost <filename> fail upto 8 out of 10 times with no quotes retrieved, and nothing about not connecting. So 100% of times they connect and one run was 8 out of 10 failed with zero quotes received for all 8. Another run was 3 out of 5 failed the same way. and a couple of runs only had 1 out of 4 fail that way

So seems there might be an issue here @qi_ma when running this from a home PC

Obviously I need to test more, although it does seem an issue.

EDIT: now doing 10 quotes in quick succession one after the other is seeing the connection failed message after failing with zero quotes a few times.

Failed to populate our routing table with enough peers in time.

6 Likes

we do see home PC experiences a worse performance than client from DO.
there might be some networking parameter setup needs to be tweaked to give a higher margin to tolerate various connection status.
will keep it noted for the next.

12 Likes

Yes, it was odd, because I did a number of 4 quote runs and 3 out of 4 always were working, then when I tried some 8 quote runs (sequential) they started to not connect one after the other.

Tried deleting the bootstrap file and tried again, but did not help

Then an hour later even random quotes failed every time.

This device has nodes on it as well operating happily and even restarted a couple to see if they would fail a restart with no connection. But they worked fine.

Its really odd indeed

9 Likes

Seeing the same issue:

Paying for 4 chunks..
Error: 
   0: Failed to upload file
   1: Failed to upload file
   2: Error occurred during payment.
   3: Cost error: NotEnoughNodeQuotes { content_addr: c587aa(11000101).., got: 0, required: 5 }
   4: Not enough node quotes for c587aa(11000101).., got: 0 and need at least 5

2 Likes

We have no recent stats on node versions on the network. Would be fun and informative for sure!

2 Likes

There is no info about new API (0.4.3). Could info about API changes be also included in release announcements? Thanks!

4 Likes

I am short on time but tried two uploads with the latest ant client.

1st attempt: straight up :slightly_smiling_face:

josh@evo:~/Documents/singlepageapp$ ant file upload app_data.json
Logging to directory: "/home/josh/.local/share/autonomi/client/logs/log_2025-04-02_05-31-42"
🔗 Connected to the Network                                                     Uploading data to network...
Encrypting file: "app_data.json"..
Successfully encrypted file: "app_data.json"
Paying for 3 chunks..
Uploading file: app_data.json (3 chunks)..
Successfully uploaded app_data.json (3 chunks)
Upload of 1 files completed in 367.195249318s
Uploading private archive referencing 1 files
Successfully uploaded: app_data.json
At address: 6802571661682385550
Number of chunks uploaded: 6
Number of chunks already paid/uploaded: 0
Total cost: 89414259219 AttoTokens

2nd attempt: data went up but archive failed with not enough quotes.

josh@evo:~/Documents/singlepageapp$ ant file upload -p singlepageapp.log
Logging to directory: "/home/josh/.local/share/autonomi/client/logs/log_2025-04-02_05-44-23"
🔗 Connected to the Network                                                     Uploading data to network...
Encrypting file: "singlepageapp.log"..
Successfully encrypted file: "singlepageapp.log"
Paying for 4 chunks..
Uploading file: singlepageapp.log (4 chunks)..
Successfully uploaded singlepageapp.log (4 chunks) to: 710bf71f176b6d849f85d8bd0cbc3a44657fe03b4adf402e14814f6bb269a017
Upload of 1 files completed in 288.49837169s
Uploading public archive referencing 1 files
Error: 
   0: Failed to upload file
   1: Failed to upload file
   2: Error occurred during payment.
   3: Cost error: NotEnoughNodeQuotes { content_addr: 2df7e5(00101101).., got: 0, required: 5 }
   4: Not enough node quotes for 2df7e5(00101101).., got: 0 and need at least 5

Location:
   ant-cli/src/commands/file.rs:77

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
josh@evo:~/Documents/singlepageapp$ ant file download 710bf71f176b6d849f85d8bd0cbc3a44657fe03b4adf402e14814f6bb269a017 app.log
Logging to directory: "/home/josh/.local/share/autonomi/client/logs/log_2025-04-02_05-53-22"
🔗 Connected to the Network                                                     Successfully downloaded file at: 710bf71f176b6d849f85d8bd0cbc3a44657fe03b4adf402e14814f6bb269a017

All that I can do for now but it seems to be a huge improvement, pretty quick too.

Nice one @maidsafe

14 Likes

image

first successful upload in a while for me :slight_smile: :rocket:

15 Likes

They would be, but there were no changes to the API in this release.

The API was bumped because one of its dependent crates had a change. I might exclude these ‘safety bumps’ from the releases in future.

4 Likes

It’s good to see things have improved, especially with the still very large network and lots of nodes running old versions. Great work Autonomi :clap:

I am now able to view @Southside’s vroom using my versioned History to retrieve the most recent version - from my laptop over mobile broadband. This is wonderful:

We really need those nodes to update to test things further though, because as of now, the Pointer for Southside’s website has not moved once since he created it. I still points to the first entry.

Nerdy bit, below, using dweb you can inspect where the pointer is by looking for P>.

$ dweb inspect-history -fe 0: b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96
Dweb Autonomi client initialising...
🔗 Connected to the Network                                                                         -> public network evm-custom
>>TRYING pointer_get() 1 times...
>>TRY 1 of 1
DEBUG pointer counter: 0, head address: b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96
>>OK
DEBUG History::update_from_graph_internal()
DEBUG stepping forwards: iter_index 0
DEBUG GraphEntry exists
DEBUG stepping forwards: iter_index 1
DEBUG GraphEntry exists
DEBUG stepping forwards: iter_index 2
DEBUG GraphEntry does not exist
history address  : b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96
  type           : ee383f084cffaab845617b1c43ffaee8b5c17e8fbbb3ad3d379c96b5b844f24e
  size           : 3
  pointer address: b0d75e520ad552d8a56fa43be47704384345eb17be853cf7722276c0728340bb18185388b5007840378ec5e653c09a9d
  graph root     : b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96
  graph head     : ab091bcc0626fb3ac194edb197b9ee533efdba65842f3a97e39450c017656df0763368bc369e2fbfde8049edca28d9dd
  entries 0 to  2:
P>  entry    0:
    address   : b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96
      owner      : b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96
      parents    : 
      descendents: [860f74d61151628b96e7f0daacac639a24c48d9a0a86b6c1acc49aaaffb18a7fb868b810108d09383672a355b15e6039] 
      content    : ee383f084cffaab845617b1c43ffaee8b5c17e8fbbb3ad3d379c96b5b844f24e
      signature  : 81b8e73d43d4486ab4327187548be6f65119533cd69cbb162186ea44281b9264646ced6efb00b0f8f1839b96bc3f5db10d857cb97ca6dddbcdf4308b9aef4d8c3e914ed872fc8cca4ea7cfc3351b8369ba41acd80f956f5502be9c5d5425f075
DEBUG GraphEntry exists
    entry    1:
    address   : 860f74d61151628b96e7f0daacac639a24c48d9a0a86b6c1acc49aaaffb18a7fb868b810108d09383672a355b15e6039
      owner      : 860f74d61151628b96e7f0daacac639a24c48d9a0a86b6c1acc49aaaffb18a7fb868b810108d09383672a355b15e6039
      parents    : [b4d001a4b826cf9cfca6101f35da73d21c2464ab8abf4d054ea99ecd9a57858f9c74854ae1acf856d244aba5d4a0ed96] 
      descendents: [ab091bcc0626fb3ac194edb197b9ee533efdba65842f3a97e39450c017656df0763368bc369e2fbfde8049edca28d9dd] 
      content    : eb02924f63b257a12f4bb856563ba821d483fbf18cb6d962e89a3e0a46020a92
      signature  : b310651899f4ab15ee83c583ba018a5d62fea492fcfea43ee20e9fe42ba28b9e73a988b0210a15e5174cbaae12c1cd08018edfd690cde9a5403564cc91e7abdb445b2ef9ce790718f874c163438244e9ed1f547b3b01ae55f0afa0e27c1914c4
DEBUG GraphEntry exists
    entry    2:
    address   : ab091bcc0626fb3ac194edb197b9ee533efdba65842f3a97e39450c017656df0763368bc369e2fbfde8049edca28d9dd
      owner      : ab091bcc0626fb3ac194edb197b9ee533efdba65842f3a97e39450c017656df0763368bc369e2fbfde8049edca28d9dd
      parents    : [860f74d61151628b96e7f0daacac639a24c48d9a0a86b6c1acc49aaaffb18a7fb868b810108d09383672a355b15e6039] 
      descendents: [ae2bcb10a121158d115f9782adee7cd594dff6da6ebcd9a7bc39397c7e78aa3a81412e158c3c411ec6948e41ef9f7709] 
      content    : 9021db42d84e062aa290eb9792b4c933b22b0f34bf4ba3a8f754ac7928d33170
      signature  : 9421d90f2a8bb6eb128cc3ecbcbfbdfe2ccfe2365a443ca3ef0ba7a453af57bd8b44b66b5ba486f2be525ba569ddc2950e518acc8d0ee435b84e043a7ac677727d81eb4de84223306c414e63e9fed1b3efd269ffec575d3c93ada97cdf6fb263

It should be pointing to the last entry (entry 2 - which corresponds to the second published version). In fact the pointer is still at entry 0 (which means it isn’t pointing to the first version (since that is entry 1).

So we are seeing improvements client side :partying_face: …but it isn’t clear if this has helped with things like updating a Pointer.

To see if the client side changes also improve the updating of mutable types, especially Pointer, it would be good if someone would like to publish and update a new website with dweb as it uses the very latest Autonomi client libs.

To do this isn’t hard if you have Rust:

cargo install --locked dweb-cli
dweb publish-new --help

…and off you go. Try something with very few files first, and for these tests it doesn’t need to be a website, just a directory with a single file that you change and then update with dweb publish-update will do.

Then run the above dweb inspect-history command for your history address to see if the pointer updates. I could do this myself of course but want to carry on building the Autonomi REST APIs for a bit.

15 Likes

We are now just below 5 million per the autonomi website, seems ghost nodes were a thing.

Also makes more sense as Mighty said his ~500k nodes were getting about 10% of the emissions.

Everything is adding up much better.

15 Likes

to being upgrading your nodes

should probably be

to begin upgrading your nodes

Also, it would be helpful if the doc then explained what those commands will do. Apparently each node will be upgraded and restarted automatically. Is that correct?

It’s hard for me to tell because my systems remained on refreshing node registry for hours, I went to sleep, then awoke to broken pipes for all of my SSH connections to the machines on my LAN.

5 Likes