github maidsafe/autonomi stable-2025.12.3.1
2025.12.3.1

10 hours ago

Binary Versions

  • antnode: v0.4.11
  • antctl: v0.14.1
  • antctld: v0.14.1
  • ant: v0.4.15
  • evm-testnet: v0.1.17
  • nat-detection: v0.2.22
  • node-launchpad: v0.6.1

Binary Hashes

x86_64-pc-windows-msvc

Binary SHA256 Hash
nat-detection 4fe040a49f322af1a2da3dce8b7a65fc2b82bb4bd489d490350a120e990fb46e
node-launchpad 3cee00abab561b09db467380022c393e7e36bf82155e6b0e7c2e4b8764928c6d
ant a8d2c14f66830c5b9343aedf3b8fe43bc27a3c55985c4bf52670dd22c0f51507
antnode 8e0cc185dcecd01edb70b8277245c882c307c01067579710f71522487667d30f
antctl 139d9d4e39f4e31577bb92d8ff902b9f696a34c5ddd169af364cf227e20b022b
antctld 22d2c71a92f5d69871bac19932344e4af84aa49b20ab524ece4ad7cff833c218
antnode_rpc_client b90fad8e8ae548a47e6d9491421644b399bfa23ce387ef9f9e7cbc6f63b07225
evm-testnet 993700abce78a8d00a0e3017edfaaf20e70969f210854070828d8215c603cd45

x86_64-apple-darwin

Binary SHA256 Hash
nat-detection 1e60101b3b16fb1584100f62b998392619613e0f12bb014b85f5105a68a5d4b3
node-launchpad 7278716095db579c79e7541a70eed30159cd72d4a699101ce14846763dd70787
ant c10fc67ea5d2c5f31fc0174ee5da1a8e28fc210e2328912bd4b9defa6a029c86
antnode 49ca6a377b484395873c7e63242bd12b49d8be32693e0a788ccc18da292d7cf3
antctl 444a8ab88fab79f1bac75748f3f2b65e8fc2ae2ba0c57d574debf0847bdaadfd
antctld 98b0e9d64e4af8581c4fe405e5b49474531eafb5218db6664cf7874b6173cf8b
antnode_rpc_client ee43b854e32499aa2d54e28566019b0466162cfaee89e9052fe7cd2731132008
evm-testnet 105255822e4e0d938aefca286b367de90c6e02a85161f73016cdf941f8714c74

aarch64-apple-darwin

Binary SHA256 Hash
nat-detection 2b26fb6e5bb734270173b7d4172ea9b0528da9af23a13f7ef8593805bab370c8
node-launchpad c27271f58a4c5e1c40e401eceaa3321dbf821f7171b76caec9cada60427d2516
ant 570ff46489a1c4c79026700bba3bfea76aaf83edbc6cbc2b1dec841122c0ea45
antnode 931f173509aa023763f59e4f0875e62326b508ce1e4b2c21a2b55081227d97f3
antctl 88a5ef5f6aa2d846e06d20a31077bea158edc44f210e6642b17f4c43bd3da246
antctld bc0e85479dc9a700bee77bcc96c59459e054e8bbc6924eac3d081b4254ebda7b
antnode_rpc_client 6853b22e12056e3bb69b35686d7fb28a0c5a4540ed81fad29b7cd464b99c1ae1
evm-testnet 4f04663684bc5b5b9cfd171a965a53f104718921a7ab0f71a18c33df5283cf16

x86_64-unknown-linux-musl

Binary SHA256 Hash
nat-detection 8d41fccfa4a2a485c5e9dd9ee5de363c941cde9c94bcc3c81e44e60aefa7dd11
node-launchpad f6a114917b60b49ae3f25c751742988c3c9fc020623f63126ce1f3e9bc600375
ant ce233b547dc2e1c90a7d01305eee0933272fb62a343b359a5e21fdecb21061df
antnode 85ab563607f6003e6fb012b1e18afa3e3d5b460b72d851fb898dfbfb935cefbb
antctl 80bdc10c71268ae300d546f6d1a6e116bd1e1535d477606544e84022bf6d9f5e
antctld fd66b1de44b212c6625f0aa9f7331a9dbe8ed914045c44ddd296136d646f3e00
antnode_rpc_client a8cf10c28fca794b8a8b116da37beb7bf5765097aabcab27b2618d90b4dc2493
evm-testnet 1ce61c8b49a9ea0b0cd79acf41a27942f5306ca3d59746468422fb593e582a90

arm-unknown-linux-musleabi

Binary SHA256 Hash
nat-detection 153abb95e3b3e37d3140947afc44f0618ad2306be6a94113f073fc7301e2df87
node-launchpad da243df66aeb12b8d42d75c5d003f26265b758ab931d471001318ae623c03614
ant 2d6a7af40d993ea666e8f80a2c5979c1bb531726684f23235ebb6e92e50219c8
antnode 3f39e00f74481ebcb706f46f8f17c3a6e011eb6c60ea3e3968b506d6d716a72a
antctl d0958df3ec8133e54433041f49c662aa545646a7c31249038006e5a11163222b
antctld 3b829f3e59e0256d5f7106ff0eb8a91c6102a25701a0375f55a0e72ff293fc83
antnode_rpc_client b374f20333bd3cda8f1df76204a59601159911a7f6533dbfe9d32c955c4a92a6
evm-testnet a1b096722a33877b2cc363b7d78d28573185e9944fd592ffd64217240c7551a1

armv7-unknown-linux-musleabihf

Binary SHA256 Hash
nat-detection a7edb8c3e1894084b9148c8e3272c0a462336f4c19af4ea5fee2499a3cce512b
node-launchpad 008d36fda017cf0120e8e102b6487850d32c4eadc31f6ca0868c4d6b9b8c6ab2
ant 3dec975598705ba348a8e18ca770cc32364c653a400a50148e9a066ddc185fca
antnode 614c322e4ba65f8e4e3832ed283211b18cbe7fcf63f11e2b4624ef3d07131d3f
antctl 3c6f62570a07a08ed9bfa3f348a425564c846a6be2d2bf8615e6382e4bb206da
antctld 632cbbdfc36228f192c6d6bd0e1ca19895d91f9cc82ad41977c124d8b679568e
antnode_rpc_client 674803d950e53b4923fa2586587584e1edfc191dc297ea55439c5668035811f2
evm-testnet 06d61323d2c985a0da940c6db4b7e422ae000ab9f05c6a967a15ba5bc70c9223

aarch64-unknown-linux-musl

Binary SHA256 Hash
nat-detection 420107959441fda347e6c693a1d8d99d9fb97bb9b81ad1c94e355aa7d97a152c
node-launchpad ca402b5e22880bed051f90375bf126979073f71221bc29a955d3ac3845cb98ad
ant c817a01023f732f55e8b104bc813d8b9bad8e2408ee93cdf6fd4be6a53901818
antnode 02e4fa2534725257872a48e6df88015ffe886112189148ff5ebae4804a5b4d8a
antctl 1f248154383b2eddff50d075357e7d8f31a06e8e56997497c746552f3fd5e80c
antctld e2fbf4bd6d7ac183324c9fa19ebc0118de9a79f06a20cd18799f0a4469285ed2
antnode_rpc_client 12e07fb3a1a6f38bea05b4597604b89424cb5fdcb605b9ee7abceae0869d7305
evm-testnet 23eb9cd3d37bb324a2065f46a2603cb5ffb5b3252478bd492f144f980318f803

Merged Pull Requests

2025-12-17 #3364 -- Merkle CLI [@grumbach]
2025-12-18 #3371 -- Merkle client optimized pool creation [@grumbach]
2025-12-18 #3369 -- Fix merkle tests [@grumbach]
2025-12-18 #3368 -- Merkle remove abusive xorname use [@grumbach]
2025-12-18 #3375 -- fix(test): refactor verify_max_parallel_fetches test setup [@maqi]
2025-12-19 #3378 -- fix: failing merkle payment txs [@mickvandijke]
2025-12-22 #3377 -- fix(node): avoid pruning irrelevant_records too aggressively [@maqi]
2025-12-22 #3383 -- fix(test): make verify_max_parallel_fetches test deterministic [@maqi]
2025-12-23 #3386 -- Merkle high level retries [@grumbach]
2025-12-23 #3387 -- feat: merkle chunk existance check progress reporting [@grumbach]
2025-12-23 #3380 -- fix(ci): resolve ring crate ARM cross-compilation failure [@dirvine]
2025-12-23 #3381 -- Merkle payment Client (CLI) [@grumbach]

Detailed Changes

API

Added

  • Client::check_records_exist_batch async method for checking the existence of multiple records
    in batch operations, improving efficiency when verifying data presence on the network.
  • Client::retry_failed_merkle_chunks async method for retrying failed chunk uploads with
    configurable retry attempts and pause duration between attempts.
  • NetworkAddress::xorname method to extract the XorName from a NetworkAddress, returning None
    for PeerId and RecordKey variants.
  • MerkleBatchUploadState struct to track failed chunks from a merkle batch upload, including
    chunk data for retry operations.
  • MerkleBatchUploadResult struct returned from merkle batch uploads containing remaining streams,
    completed files, and any failed chunks.
  • MerklePutError::Batch variant for tracking batch upload state with failed chunks.

Changed

  • Client::upload_batch_with_merkle method signature now requires an additional dont_reupload: &mut HashSet<XorName> parameter to track and skip chunks that already exist on the network. The
    return type has changed from Result<(Vec<EncryptionStream>, Vec<(PathBuf, DataMapChunk, Metadata)>), MerklePutError> to Result<MerkleBatchUploadResult, MerklePutError>. [BREAKING]
  • Merkle payment uploads now skip redundant encryption when all chunks already exist on the
    network, significantly improving performance for re-uploads of existing data.
  • Upload operations no longer pay for chunks that already exist on the network, reducing
    unnecessary costs when re-uploading or syncing existing data.
  • Chunk existence checking now reports progress during Merkle payment operations, providing better
    visibility into upload status.
  • File upload operations with merkle payments now provide high-level retry logic with exponential
    backoff, improving reliability for large file uploads.

Fixed

  • Issue where one-chunk files would fail to create merkle trees correctly, preventing successful
    uploads of very small files using merkle payments.
  • Incorrect chunk upload count display during merkle payment operations.
  • Excessive use of XorName in merkle hashing flows, improving efficiency and correctness of merkle
    tree operations.

Payments

Changed

  • Gas limit buffer increased to 50% to provide more headroom for transaction execution and reduce
    the risk of out-of-gas errors.
  • Transaction receipts are now validated after mining to ensure successful execution before
    considering the transaction complete.
  • Pool creation for merkle payments is now processed in parallel, significantly reducing the time
    required to prepare batch payments.

Fixed

  • Merkle tree maximum depth validation corrected to prevent tree construction errors with large
    datasets.
  • Duplicate hash function removed from merkle payment implementation, simplifying the codebase.

Ant Client

Added

  • The file cost command now supports a --merkle flag to estimate costs using Merkle batch
    payment mode instead of traditional per-chunk payments.
  • The file upload command now supports a --merkle flag to upload files using Merkle batch
    payment mode, enabling more efficient bulk uploads.
  • Merkle payment upload operations now cache successful payments and support retry of failed chunks
    through cached_merkle_payments module.

Changed

  • Upload operations display clearer progress information when checking for existing chunks on the
    network.

General

Fixed

  • Python bindings for ARM architectures now compile correctly by setting appropriate CFLAGS to
    define ARM architecture version for cross-compilation targets. This resolves the ring crate
    compilation failures on older GCC toolchains.

Don't miss a new autonomi release

NewReleases is sending notifications on new releases.