Binary Versions
antnode: v0.4.11antctl: v0.14.1antctld: v0.14.1ant: v0.4.15evm-testnet: v0.1.17nat-detection: v0.2.22node-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_batchasync method for checking the existence of multiple records
in batch operations, improving efficiency when verifying data presence on the network.Client::retry_failed_merkle_chunksasync method for retrying failed chunk uploads with
configurable retry attempts and pause duration between attempts.NetworkAddress::xornamemethod to extract the XorName from a NetworkAddress, returningNone
for PeerId and RecordKey variants.MerkleBatchUploadStatestruct to track failed chunks from a merkle batch upload, including
chunk data for retry operations.MerkleBatchUploadResultstruct returned from merkle batch uploads containing remaining streams,
completed files, and any failed chunks.MerklePutError::Batchvariant for tracking batch upload state with failed chunks.
Changed
Client::upload_batch_with_merklemethod signature now requires an additionaldont_reupload: &mut HashSet<XorName>parameter to track and skip chunks that already exist on the network. The
return type has changed fromResult<(Vec<EncryptionStream>, Vec<(PathBuf, DataMapChunk, Metadata)>), MerklePutError>toResult<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 costcommand now supports a--merkleflag to estimate costs using Merkle batch
payment mode instead of traditional per-chunk payments. - The
file uploadcommand now supports a--merkleflag 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
throughcached_merkle_paymentsmodule.
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.