radicle-heartwood-lfs/radicle-node/src
Fintan Halpenny 3ad2b4431f
fetch: only send changed wants and haves
This change limits the amount of `wants` and `haves` data that is sent
to the serving side of a fetch.

When a `RefsAt` announcement is sent, the fetching peer can calculate
the difference between the `rad/sigrefs` they're aware of -- if it
exists -- and the newly advertised `rad/sigrefs`. This means they can
efficiently ask for the `wants` and `haves` of references that have
changed -- saving some data sent over to the serving side.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-12 13:01:03 +01:00
..
runtime node: Expose listen addresses 2024-02-26 12:35:20 +01:00
service fetch: only send changed wants and haves 2024-03-12 13:01:03 +01:00
test node: Expose listen addresses 2024-02-26 12:35:20 +01:00
tests node: duplicate fetching logic respects RefsAt 2024-03-09 13:43:08 +01:00
wire node: increase timeouts 2024-03-11 11:28:38 +01:00
worker fetch: only send changed wants and haves 2024-03-12 13:01:03 +01:00
bounded.rs node: loosen BoundedVec::collect_from bounds 2023-11-17 16:09:42 +01:00
control.rs node: Expose listen addresses 2024-02-26 12:35:20 +01:00
deserializer.rs node: Implement protocol multiplexing 2023-04-10 14:41:55 +02:00
lib.rs Rename `Id` to `RepoId` 2024-01-22 15:51:44 +01:00
main.rs cli: Add `rad version --json` flag 2024-03-11 17:36:31 +01:00
runtime.rs node: remove unused timeout 2024-03-11 11:28:38 +01:00
service.rs fetch: only send changed wants and haves 2024-03-12 13:01:03 +01:00
signals.rs node: Handle `SIGINT` and `SIGTERM` properly 2023-02-14 13:28:16 +01:00
test.rs radicle: expose shared logger 2023-12-20 15:11:10 +01:00
tests.rs radicle: implement caching for issues and patches 2024-02-23 16:03:21 +01:00
wire.rs Rename `Id` to `RepoId` 2024-01-22 15:51:44 +01:00
worker.rs fetch: only send changed wants and haves 2024-03-12 13:01:03 +01:00