github maidsafe/autonomi stable-2025.12.1.1
2025.12.1.1

14 hours ago

Binary Versions

  • antnode: v0.4.10
  • antctld: v0.14.0
  • antctl: v0.14.0
  • ant: v0.4.13
  • evm-testnet: v0.1.17
  • nat-detection: v0.2.22
  • node-launchpad: v0.6.0

Binary Hashes

x86_64-pc-windows-msvc

Binary SHA256 Hash
nat-detection 4fe040a49f322af1a2da3dce8b7a65fc2b82bb4bd489d490350a120e990fb46e
node-launchpad 44a5020637612889f31cc37ecb0365d372f95e3dc638e05d798ca294d19d16ba
ant 3200596788ee1d5001a980c121715ca8fa6e6bc17fdb26753f9a739f4a1f051a
antnode f9e1c48b5b56d487f72eb9f9018cc66c4f7b8c4d39a907394a8daf25e6385418
antctl 9040e12c1d2a4b15f677cd9057648b7ff476980b2bb4c664a83724ea7dee5ad7
antctld ae3f867505dff141775334fa8b6c5c8679f7900476c6c6bcb572b766da6d8dfd
antnode_rpc_client b90fad8e8ae548a47e6d9491421644b399bfa23ce387ef9f9e7cbc6f63b07225
evm-testnet bcd450cba480e3423531b1499de2aa6c029e7e22cad880285f111b60d0ab1491

x86_64-apple-darwin

Binary SHA256 Hash
nat-detection 1e60101b3b16fb1584100f62b998392619613e0f12bb014b85f5105a68a5d4b3
node-launchpad 6e27bf1c00a2f32ac05b8fd41d26494ba897aa882dd0e84e03d382c8fc0621b7
ant 6287f2016086e0695aea667a654a30e0383b25db59c45981b517e57e7b297a49
antnode 7c8a27707331cab3cf2299e82d71bd71d4ee231eedb321d25a9db0bc4e791e75
antctl d28a729ff4f02b5d77d90442b1d9798aa9e0decb2d009ef0eceb51fdea7a0f77
antctld f500f8e7a028194b21e9c4546e751ed739c4aa6ff5bb4a95f6f0663d12fbf5db
antnode_rpc_client ee43b854e32499aa2d54e28566019b0466162cfaee89e9052fe7cd2731132008
evm-testnet 105255822e4e0d938aefca286b367de90c6e02a85161f73016cdf941f8714c74

aarch64-apple-darwin

Binary SHA256 Hash
nat-detection 2b26fb6e5bb734270173b7d4172ea9b0528da9af23a13f7ef8593805bab370c8
node-launchpad 918c0ff3bdb1caa531f96d87610d7cce8234b20bd85e2598cf915f269051b614
ant 73e4d7796fe5089efa5d222c54c80c49d5fe775324de4f6db033afbdde8408a0
antnode 1a30bdbdb8c5a48b67877ec562c47063e347ef6e48eebbbe3b4fed647bb0f838
antctl 3929811ea881db90f70ce329980457fea611d5fdc81925d7f4cecabc40283028
antctld 3869c5f85b8e1632838edd736ceacbbead45dbba88e577611fc6e9c292dec895
antnode_rpc_client 6853b22e12056e3bb69b35686d7fb28a0c5a4540ed81fad29b7cd464b99c1ae1
evm-testnet 4f04663684bc5b5b9cfd171a965a53f104718921a7ab0f71a18c33df5283cf16

x86_64-unknown-linux-musl

Binary SHA256 Hash
nat-detection 8d41fccfa4a2a485c5e9dd9ee5de363c941cde9c94bcc3c81e44e60aefa7dd11
node-launchpad 298091b950fc28f6f89095553d544749e34b28eba22587b103537f401796f95f
ant 38b528e8fb86c69e1b735a41bfa3da6705a2db683375bb5b8be1787a4f30df01
antnode c7693a4e2c4abce6888e3af8ffa3604b5e825e975cee3d70ebd15ed58c8253ee
antctl a2dce18c93e9d11e4fc0d5813ec058eb6e20aa9f9fff54b59e62b93d2fbd0cd8
antctld e60da14a00e302b161dacd1870f6c0bfffd5445d123737ee14d2871d5145d6e0
antnode_rpc_client a8cf10c28fca794b8a8b116da37beb7bf5765097aabcab27b2618d90b4dc2493
evm-testnet 1ce61c8b49a9ea0b0cd79acf41a27942f5306ca3d59746468422fb593e582a90

arm-unknown-linux-musleabi

Binary SHA256 Hash
nat-detection 153abb95e3b3e37d3140947afc44f0618ad2306be6a94113f073fc7301e2df87
node-launchpad 6bb47a95f7a91fa2fbe44823d445c5b5ba9464fa8b173f9c9868fc95b9bf43dc
ant 83cbbd8e18bb20cf9be6b8e376333a05e4913206177d193ece9a4cc5f1f908b6
antnode 506c0eb6a2dcc86479c5c916789b45ce6e4227bf98c78bd132d1452587ebfd66
antctl 023a3b846e03a0c66cc8924047f3825170b3246fc6eec7ce0eae732cc5571275
antctld e39054014fcad6ac02201d9ba89031fbe5afff61d6c23c14492fd82ce1a384a8
antnode_rpc_client b374f20333bd3cda8f1df76204a59601159911a7f6533dbfe9d32c955c4a92a6
evm-testnet a1b096722a33877b2cc363b7d78d28573185e9944fd592ffd64217240c7551a1

armv7-unknown-linux-musleabihf

Binary SHA256 Hash
nat-detection a7edb8c3e1894084b9148c8e3272c0a462336f4c19af4ea5fee2499a3cce512b
node-launchpad 3839db946d4cb25ea84753cefe3bdada83e33f65336c189443594bcd5b3c092b
ant 8b17ff23fed8c66fe1b534b90e4a459f76ed71badd1a8013339d7ea786d405af
antnode 0b90b39ecd7050a92b573b072702f1087c2799893654815255542fd1dbd6b9c0
antctl 7309c7c41d1f88c20b25b539970a6da97ef2d13cf29bb50c077a3931ee34724c
antctld 5bb60be4ccc136456194d5f52859ee20fcf66e6a6566a8bdff3d3c4f2cd91af0
antnode_rpc_client 674803d950e53b4923fa2586587584e1edfc191dc297ea55439c5668035811f2
evm-testnet 06d61323d2c985a0da940c6db4b7e422ae000ab9f05c6a967a15ba5bc70c9223

aarch64-unknown-linux-musl

Binary SHA256 Hash
nat-detection 420107959441fda347e6c693a1d8d99d9fb97bb9b81ad1c94e355aa7d97a152c
node-launchpad 28b1f4911452e5250ef3e71621246e52696faf1b6afa4326fa49a75a5f5f6d9c
ant 4b3c6da7facf4464eb6a96d72d95377e05aa9c8ff124ba8e40056246da83a8b8
antnode 87ec69679ccc4bf5aff28ce169cb3748f38f93a42910b5cfb70368b6d6b6d21e
antctl ba39e34b970e134f4813ac6c0688debd47a333fb905384286606673dd248ece4
antctld 4de38a526ebe465ca32fa1953e45b3a48eae96275a0e0bac4dfd52b723fc5d26
antnode_rpc_client 12e07fb3a1a6f38bea05b4597604b89424cb5fdcb605b9ee7abceae0869d7305
evm-testnet 23eb9cd3d37bb324a2065f46a2603cb5ffb5b3252478bd492f144f980318f803

Merged Pull Requests

2025-12-04 #3319 -- feat(client): check target's close group from targeted nodes' perspective [@maqi]
2025-12-11 #3356 -- Support Automatic Upgrades [@jacderida] [BREAKING]
2025-12-11 #3354 -- Merkle payments Infrastructure (without CLI) [@grumbach]

Detailed Changes

API

Added

  • Merkle payment support for batch payments through cryptographic proof verification.
  • MerklePaymentOption enum to enable merkle payment mode in upload operations.
  • MerkleUploadError and MerkleUploadErrorWithReceipt error types for merkle-specific upload
    failures.
  • MerklePaymentError for merkle payment processing errors.
  • MerklePaymentReceipt type to track successful merkle payment transactions.
  • MerklePutError for merkle-specific put operation failures.
  • Client::upload_with_merkle_payments method to upload data using merkle batch payment mode.
  • Client::put_with_merkle_payment method for storing individual records with merkle payment
    proofs.

Protocol

Added

  • Query::GetMerkleCandidateQuote query variant for requesting merkle payment candidate quotes from
    nodes.
  • Includes key (target address for topology verification), data_type, data_size, and
    merkle_payment_timestamp fields.
  • Node signs its current state (metrics + reward address) with the provided timestamp, creating a
    cryptographic commitment binding PeerId to RewardsAddress.
  • RecordKind::DataWithMerklePayment variant for records paid via merkle proofs.
  • Uses index range starting at RECORD_KIND_MERKLE_PAYMENT_STARTING_INDEX (20) to differentiate
    from traditional payment records.
  • Merkle payment timestamp verification to ensure payments are neither expired nor in the future.

Changed

  • Record serialization now supports merkle payment proof headers alongside data payloads.
  • RecordHeader serialization extended to handle merkle payment record types.

Network

Added

  • Merkle payment proof verification in PutValidation for all data types
  • PutValidationError::MerklePaymentVerificationFailed error variant for failed merkle proof
    validations.
  • Merkle payment quote generation signed with node metrics and reward address.
  • Cryptographic verification of merkle proofs against on-chain merkle tree roots.
  • Merkle payment expiration validation to reject expired payment proofs.
  • Support for deserializing records containing (MerklePaymentProof, T) tuples where T is the
    data type.
  • The antnode binary now supports automatic upgrades on macOS and Linux. Every 3 days the node
    will check for the availability of a new version. If available, the new version will be downloaded
    and the current binary will be replaced (this is permitted for running processes on Unix-based
    systems and it also works with symlinks). Each node is then assigned a restart time based on its
    peer ID and the network size. This ensures the restarts will be spread out quite evenly. When the
    node restarts it will retain its peer ID and data.

Changed

  • Put record validation now branches on RecordKind::DataWithMerklePayment to verify merkle proofs
    before accepting records.
  • Node quote responses now include merkle payment candidate signatures when requested via
    GetMerkleCandidateQuote.
  • Payment proof structure extended to accommodate merkle tree proofs alongside traditional payment
    receipts.

Payments

Added

  • ant-evm::merkle_payments module providing core merkle payment infrastructure:
    • MerkleTree for constructing and managing merkle trees with up to MAX_LEAVES (1024) leaves.
    • MerkleBranch type representing the path from a leaf to the root in a merkle tree.
    • MerklePaymentProof containing the merkle branch, on-chain commitment info, and signatures.
    • MerklePaymentCandidateNode representing a node's signed commitment for merkle payment selection.
    • MerklePaymentCandidatePool for organizing candidates into payment pools.
    • verify_merkle_proof function for cryptographic verification of merkle proofs.
    • MidpointProof for proving the midpoint of merkle tree ranges.
  • MERKLE_PAYMENT_EXPIRATION constant defining the validity period for merkle payment proofs.
  • MAX_MERKLE_DEPTH constant defining the maximum depth of merkle trees.
  • CANDIDATES_PER_POOL constant for pool organization.
  • MerklePaymentVerificationError for merkle-specific verification failures.
  • PoolCommitment type for on-chain merkle root commitments.
  • OnChainPaymentInfo containing merkle root and payment metadata from smart contracts.
  • expected_reward_pools function to calculate expected number of reward pools based on data size.

Changed

  • EVM network configuration now includes optional merkle_payments_address for merkle payment vault
    contracts.
  • Wallet and testnet setup extended to support merkle payment contract deployment and interaction.

Client

Changed

  • Upload strategy now supports both traditional per-chunk payments and merkle batch payments.
  • The client will now carry out a check of its close group candidates to see whether each peer is
    known by the others in the group. This improves uploads because more robust nodes will be chosen,
    and in turn downloads will also be more stable.
  • The quoting candidate range is extended from 7 to 10 peers to attempt to provide more stability.

Antctl

Changed

  • The service definitions emitted by the add command now use an 'on success' restart policy
    on Unix platforms. This is to allow the service manager to restart the node for use with automatic
    upgrades. Before upgrading to the new version of antctl, users should use antctl reset with
    their current version to clear any existing node deployments. The new node is not compatible with
    the old service definitions produced by antctl. New deployments can then be created with the new
    version of antctl. [BREAKING]
  • The add command will assign a random port in the service definition rather than
    delegating that to the node. This is to ensure the node will restart with the same port when it is
    automatically upgraded.
  • The status command now obtains the version number of each service. This makes the command work
    naturally with automatic upgrades.

Launchpad

Changed

  • As with the antctl change above, old service definitions are not compatible with the new version
    of the nodes to have automatic upgrades work correctly. Before upgrading to the new
    node-launchpad, users should use the reset command with Ctrl+R to clear out their current node
    deployments. New deployments can then be created with the new version of node-launchpad.
    [BREAKING]
  • The Status panel will update with the new node versions when automatic upgrades take place in
    the background.

Don't miss a new autonomi release

NewReleases is sending notifications on new releases.