Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Changelog

All notable changes to the `ant-node` crate will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.11.0] — Unreleased

### Changed

The wire-protocol surface previously owned by `ant-node` has moved to
the new [`ant-protocol`] crate. All previously-exported paths continue
to resolve via re-exports, so existing downstream imports keep working
unchanged.

[`ant-protocol`]: https://crates.io/crates/ant-protocol

- `ant_node::ant_protocol` — now re-exports from `ant_protocol::chunk`.
Both `ant_node::ant_protocol::ChunkMessage` and
`ant_node::ant_protocol::chunk::ChunkMessage` resolve.
- `ant_node::client` — `compute_address`, `peer_id_to_xor_name`,
`xor_distance`, `DataChunk`, `ChunkStats`, `XorName`, and
`send_and_await_chunk_response` now re-export from
`ant_protocol::{data_types, chunk_protocol}`.
`hex_node_id_to_encoded_peer_id` stays as node-owned code.
- `ant_node::payment::proof`, `ant_node::payment::single_node` — now
re-export from `ant_protocol::payment::{proof, single_node}`.
- `ant_node::payment::{verify_quote_content, verify_quote_signature,
verify_merkle_candidate_signature}` — now re-export from
`ant_protocol::payment::verify`.
- `ant_node::devnet::{DevnetManifest, DevnetEvmInfo}` — now re-export
from `ant_protocol::devnet_manifest`. JSON format unchanged.

### Security

- `ant_protocol::SingleNodePayment::verify` (used via
`ant_node::payment::PaymentVerifier`) now rejects proofs whose median
quote has zero price or zero paid amount. Previously a malicious
client could have submitted a zero-priced median, and the on-chain
`completedPayments >= 0` check would have trivially succeeded.
- `ant_node::payment::PaymentVerifier` now rejects unknown
`ProofType` tag bytes (including future variants added on an
`ant-protocol` minor bump) instead of silently accepting them.

### Added

- Re-export of the `chunk` submodule from `ant-protocol` so
`ant_node::ant_protocol::chunk::<item>` paths keep resolving for
downstream callers that used the longer path.

### Deprecation notice

`ant_node::ant_protocol`, `ant_node::client` (except for the node-only
`hex_node_id_to_encoded_peer_id`), `ant_node::payment::{proof,
single_node}`, and `ant_node::payment::verify_*` will be removed in a
future 0.x release once the wider ecosystem has migrated to
`ant_protocol::*` directly. No timeline yet.
21 changes: 20 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 14 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ant-node"
version = "0.10.0"
version = "0.11.0"
edition = "2021"
authors = ["David Irvine <david.irvine@maidsafe.net>"]
description = "Pure quantum-proof network node for the Autonomi decentralized network"
Expand All @@ -23,6 +23,19 @@ name = "ant-devnet"
path = "src/bin/ant-devnet/main.rs"

[dependencies]
# Wire protocol — the single version-pin shared with ant-client.
# Bumping ant-protocol's `evmlib`/`saorsa-core`/`saorsa-pqc` pins ripples
# through here automatically; we keep a direct saorsa-core dep for
# node-only DHT internals (DHTNode, TrustEvent, DhtNetworkEvent), which
# Cargo unifies with ant-protocol's version constraint.
#
# TODO: swap to `ant-protocol = "2.0.0"` once 2.0.0 is on crates.io.
# The git ref is the tagged `main` commit at the time of this PR and
# stays byte-for-byte identical to what will be published.
Comment on lines +33 to +34
Copy link

Copilot AI Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment above the ant-protocol dependency mentions using a "git ref" / "tagged main commit", but the manifest currently uses a local path dependency. Please update the comment to match the actual dependency strategy (path vs git vs crates.io) to avoid confusion during release/publish steps.

Suggested change
# The git ref is the tagged `main` commit at the time of this PR and
# stays byte-for-byte identical to what will be published.
# For now this uses a local path dependency during development/release
# coordination; keep the version in sync with what will be published.

Copilot uses AI. Check for mistakes.
# TODO: swap to `ant-protocol = "2.0.0"` once 2.0.0 is on crates.io.
# The pinned commit matches the current `WithAutonomi/ant-protocol` main.
Comment on lines +35 to +36
Copy link

Copilot AI Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TODO: swap to ant-protocol = "2.0.0" once 2.0.0 is on crates.io. note appears twice in a row. Could you remove the duplicate to keep the dependency block concise and avoid confusion about whether there are two separate follow-ups?

Suggested change
# TODO: swap to `ant-protocol = "2.0.0"` once 2.0.0 is on crates.io.
# The pinned commit matches the current `WithAutonomi/ant-protocol` main.

Copilot uses AI. Check for mistakes.
ant-protocol = { git = "https://github.com/WithAutonomi/ant-protocol", rev = "597dbdb1b680a43d80a082d77076ff2080444079" }
Comment on lines +31 to +37
Copy link

Copilot AI Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ant-protocol is currently pulled via a git dependency. If ant-node is intended to be published to crates.io as 0.11.0, cargo publish will fail because published crates cannot depend on git (or path) dependencies. Please switch this to a crates.io version requirement (e.g. 2.0.0) before merge/release, and if you still need the pinned revision for development, consider using a temporary [patch.crates-io] override in a non-published workspace context instead.

Suggested change
#
# TODO: swap to `ant-protocol = "2.0.0"` once 2.0.0 is on crates.io.
# The git ref is the tagged `main` commit at the time of this PR and
# stays byte-for-byte identical to what will be published.
# TODO: swap to `ant-protocol = "2.0.0"` once 2.0.0 is on crates.io.
# The pinned commit matches the current `WithAutonomi/ant-protocol` main.
ant-protocol = { git = "https://github.com/WithAutonomi/ant-protocol", rev = "597dbdb1b680a43d80a082d77076ff2080444079" }
ant-protocol = "2.0.0"

Copilot uses AI. Check for mistakes.

# Core (provides EVERYTHING: networking, DHT, security, trust, storage)
saorsa-core = "0.23.0"
saorsa-pqc = "0.5"
Expand Down
Loading
Loading