github maidsafe/autonomi stable-2025.9.1.2
2025.9.1.2

one day ago

Binary Versions

  • antnode: v0.4.4
  • antctld: v0.13.3
  • antctl: v0.13.3
  • ant: v0.4.6
  • evm-testnet: v0.1.16
  • nat-detection: v0.2.22
  • node-launchpad: v0.5.10

Merged Pull Requests

2025-07-15 #3098 -- fix(client): make file_upload use same workflow as dir_upload [@maqi]
2025-07-16 #3099 -- feat(client): remove existence verification during upload [@maqi]
2025-07-16 #3102 -- feat: factor out encryption in fs api [@grumbach]
2025-07-17 #3103 -- fix: remove expect from routine work flow [@maqi]
2025-07-29 #3020 -- feat: Node.js package for Ant Node [@b-zee]
2025-07-30 #3112 -- feat(antctl): spawn evm-testnet as part of local testnet cmd [@RolandSherwin]
2025-07-31 #3109 -- upload flow refactor for the future streaming accomodation [@grumbach]
2025-07-31 #3115 -- fix(node): log result for query response type [@RolandSherwin]
2025-07-31 #3130 -- fix(bootstrap): remove multiple config dependencies [@RolandSherwin]
2025-08-01 #3123 -- feat: added remaining methods and classes + fixed PyTransactionConfig [@vphongph]
2025-08-03 #3091 -- chore: remove CI formatting enforcement and standardize Rust lints [@dirvine]
2025-08-04 #3095 -- feat: upgrade all workspace crates to Rust Edition 2024 [@dirvine]
2025-08-04 #3065 -- docs: clarify timestamps in file Metadata are UTC (see #2983) [@happybeing]
2025-08-04 #3136 -- fix: resolve failuring data_with_churn CI test [@maqi]
2025-08-04 #3014 -- fix(test): fix cross_platform_service_install.. [@mickvandijke]
2025-08-04 #3132 -- feat: update wallet term information [@ermineJose]
2025-08-05 #3124 -- feat: add caching possibility to mut types [@grumbach]
2025-08-05 #3127 -- feat(node): block peers with unsupported protocols [@RolandSherwin]
2025-08-05 #3037 -- feat: make chunk_batch_upload public [@b-zee]
2025-08-06 #3139 -- chore: fix fmt and unused fn params [@grumbach]
2025-08-06 #3142 -- fix(autonomi): retry failed chunks from the final / only batch [@mickvandijke] [BREAKING]
2025-08-06 #3138 -- feat(node): add git branch to the metadata endpoint [@RolandSherwin]
2025-08-07 #3143 -- fix: store single file upload access locally [@mickvandijke]
2025-08-07 #3141 -- test: self_encryption backward compatible test [@maqi]
2025-08-07 #3147 -- chore(test): more output to help identify benchmark charts issue [@maqi]
2025-08-07 #3146 -- chore(deps): bump actions/download-artifact from 4 to 5 [@dependabot[bot]]
2025-08-07 #3149 -- chore: resolve clippy error [@maqi]
2025-08-07 #3150 -- fix(bench): trying to restore the benchmark charts [@maqi]
2025-08-07 #3151 -- fix(benchmark): shall have more data_files for the benchmark run [@maqi]
2025-08-07 #3152 -- fix(benchmark): dest_file shall not be a directory [@maqi]
2025-08-07 #3153 -- fix(benchmark): correct benchmark chart download throughput calculation [@maqi]
2025-08-08 #3148 -- feat(client): utilize streaming encryption for upload [@maqi]
2025-08-08 #3154 -- feat(client): implement streaming downloads for file_download and fil… [@grumbach]
2025-08-13 #3156 -- chore(client): using streaming_decrypt_from_storage corrected self_encryption [@maqi]
2025-08-13 #3161 -- chore: fix new clippy lints [@RolandSherwin]
2025-08-13 #3157 -- fix(client): support recursive data_map properly [@maqi]
2025-08-14 #3162 -- using stream_encryption during CI [@maqi]
2025-08-19 #3164 -- fix(node): add and sync on the same thread [@RolandSherwin]
2025-08-21 #3159 -- chore(deps): bump actions/checkout from 4 to 5 [@dependabot[bot]]
2025-08-22 #3167 -- fix(bootstrap): dont overwrite self with peers from fs [@RolandSherwin]
2025-08-23 #3165 -- ci: provide tests for covering all file types [@jacderida]
2025-08-25 #3168 -- fix(cli): re-enable ant cli logging [@maqi]
2025-08-25 #3168 -- fix(cli): re-enable ant cli logging [@maqi]
2025-08-27 #3166 -- chore(client): unify Pointer and Scratchpad split resolution approacch [@maqi]
2025-08-27 #3172 -- Extend stream download coverage [@maqi]
2025-08-28 #3173 -- feat: cleanup api methods duplication [@grumbach]
2025-08-28 #3169 -- chore(deps): bump actions/checkout from 4 to 5 [@dependabot[bot]]
2025-09-01 #3175 -- Revert "feat(node): block peers that do not support mandatory protocols" [@jacderida]
2025-09-03 #3177 -- Fix the issue that after download success, chunk_cache not got cleaned up properly [@maqi]

Detailed Changes

API

Added

  • chunk_batch_upload function is now public, allowing developers to upload multiple chunks in
    batches with custom receipt handling.
  • deserialize_data_map function in DataMapChunk for backward compatibility with old data map
    schemes.
  • pointer_update_from async method for updating pointers from specific sources.
  • scratchpad_update_from async method for updating scratchpads from specific sources.
  • EncryptionStream struct with methods:
    • total_chunks() to get the total number of chunks
    • next_batch() to retrieve the next batch of chunks for processing
    • data_map_chunk() to get the associated data map chunk
    • data_address() to retrieve the data address
    • new_in_memory_with(), new_in_memory(), and new_stream_from_file() constructors for
      different encryption modes

Changed

  • DataMapChunk field visibility changed from pub(crate) to pub, making the inner Chunk
    publicly accessible.
  • Enhanced error handling and retry mechanisms for chunk upload operations through improved helper
    functions.
  • File upload workflow now uses the same approach as directory uploads for consistency.
  • Improved streaming encryption support with updated self-encryption dependency integration.
  • Enhanced language usage in user-facing messages for better clarity across client operations.
  • Unified approach for Pointer and Scratchpad split resolution through resolve_split_records
    function.
  • Reduced IN_MEMORY_ENCRYPTION_MAX_SIZE threshold to 50MB for improved memory management during
    encryption operations.
  • Streaming download capability in high-level file operations for file_download,
    file_download_public, dir_download_public, dir_download. Allows downloading larger files
    without spikes in memory usage experienced previously.
  • The streaming capability results in a new datamap format that requires four extra chunks. If there
    is an attempt to re-upload files uploaded before the streaming implementation, there will be a cost
    for these extra chunks.
  • The new datamap format always returns a root datamap that points to three chunks. These three
    extra chunks will now be paid for in uploads.

Fixed

  • Vault operations now properly support single file uploads and access.
  • If there were failed chunks in the final batch of an upload they were not retried. This has now
    been fixed with improved error handling.
  • Deduplication logic for fetched scratchpads with identical highest counter values.

Language Bindings

Added

Python:

  • AttoTokens class with methods: zero(), is_zero(), from_atto(), from_u64(), from_u128(), as_atto(), checked_add(), checked_sub(), as_bytes(), from_str(), __str__(), __repr__()
  • ClientOperatingStrategy class with getters: get_chunks(), get_graph_entry(), get_pointer(), get_scratchpad()
  • BootstrapCacheConfig class with configuration methods: new(), empty(), with_addr_expiry_duration(), with_cache_dir(), with_max_peers(), with_addrs_per_peer(), with_disable_cache_writing()
  • InitialPeersConfig class with peer management methods: new(), getters/setters for first, addrs, network_contacts_url, local, ignore_cache, bootstrap_cache_dir, get_bootstrap_addr(), read_bootstrap_addr_from_env()
  • MainPubkey class with methods: new(), verify(), derive_key(), as_bytes(), as_hex(), from_hex(), __str__(), __repr__()
  • MainSecretKey class with methods: new(), public_key(), sign(), derive_key(), to_bytes(), random(), random_derived_key(), __repr__()
  • Signature class with methods: parity(), from_bytes(), to_bytes(), __str__(), __repr__()
  • StoreQuote class with methods: price(), len(), is_empty(), payments()
  • RetryStrategy class with methods: none(), quick(), balanced(), persistent(), default(), attempts(), backoff(), __str__(), __repr__()
  • Quorum class with string representation methods
  • Strategy class with getters: get_put_quorum(), get_put_retry(), get_verification_quorum(), get_get_quorum(), get_get_retry()
  • QuoteForAddress class with price() method
  • RegisterAddress class with methods: new(), owner(), as_underlying_graph_root(), as_underlying_head_pointer(), as_hex(), from_hex()
  • DerivationIndex, DerivedPubkey, DerivedSecretKey classes for key derivation functionality
  • Enhanced ChunkAddress class with xorname() and from_hex() methods
  • Enhanced TransactionConfig class with new() constructor and max_fee_per_gas getter

Node.js:

  • Complete ant-node package with network spawning capabilities

Fixed

  • Python get_bootstrap_addr() method updated to match original Rust API changes
  • Python cache_save_scaling_factor return type corrected from u64 to u32 to match Rust API
  • Python PyTransactionConfig class fixes for proper configuration handling

Network

Added

  • New metrics: antnode_branch
  • Improved logging for query response types to aid in network debugging and monitoring. This will
    help us measure the success of the next node upgrade.

Fixed

  • Race condition in local network startup where bootstrap cache where the bootstrap cache was never
    written with newer addresses.
  • Issue with the bootstrap cache where newer nodes were not updated when the cache became full.
  • Expected holder calculation now properly capped to majority of CLOSE_GROUP_SIZE for improved
    consensus reliability.
  • Replication accept range expanded from 5 to 7 nodes for middle range records to improve data
    availability.

Antctl

Changed

  • The local run command will now automatically provide the EVM setup for a local testnet without
    having to run the evm-testnet binary separately.

Fixed

  • The local run command has extra wait time before launching a second node to prevent startup
    conflicts and improve reliability.

Payments

Added

  • The evm-testnet binary will be included in each release. This will make it easier to work with
    local testnets and we will also use it in our CI processes.

Ant Client

Changed

  • Previously, the file download command required access to RAM in proportion to the size of the
    file being downloaded, making it prohibitive to download large files. The command has now been
    changed to utilise new streaming features that keep memory usage low and consistent, so larger
    files can be downloaded without issue.

Fixed

  • Logging is restored for events in the ant binary after it was inadvertently disabled.
  • In some cases the chunk cache was not correctly cleared after a download.

Don't miss a new autonomi release

NewReleases is sending notifications on new releases.