aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/blob.rs
Commit message (Collapse)AuthorAgeFilesLines
* sync: a delta's signatures as a blob of their owntv30 hours1-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | A sync message larger than the threshold for its peer (16 chunks, lower on a slow link or after a message to it failed whole) goes as a delta: the peer fetches its changes in chunks, from any node holding them. Its signatures, each writer's latest with changes in it, went in the envelope offering it: up to 65536 of them, 6 MiB, in one message, the size the delta exists to avoid. Nor did an Automerge message count its signatures (one per writer in a whole document pulled) towards the threshold. A delta's signatures are now a blob of their own: the offerer packs and keeps them (Blobs::keep, the latest 64), and the spec names them by BLAKE3 hash and size (DeltaSpec::signatures, None where no signature vouches for its changes). They are served as content (BlobId::Content), so their hash checks them. The receiver fetches them from the offerer alone, as another node holding the changes holds signatures of its own, before the changes, and offers them under the write lock just before judging the changes, so they wait for them as before. The envelope of a delta carries none. An Automerge message's signatures count towards its size: past the threshold, it goes as a delta. Wire version 49.
* offerer asked firsttv7 days1-2/+4
|
* chunk fetch counterstv7 days1-1/+12
|
* first chunk by the fastesttv7 days1-14/+33
|
* chunks from dropped sourcestv7 days1-13/+19
|
* last chunks from twotv8 days1-1/+55
|
* unreached sources hand overtv8 days1-1/+26
|
* chunk timeout adaptstv8 days1-6/+74
|
* manifests asked at oncetv8 days1-45/+57
|
* measure deflated chunkstv8 days1-8/+14
|
* deflate blob chunkstv8 days1-4/+27
|
* blob window growstv8 days1-5/+10
|
* one delta at a timetv8 days1-7/+38
|
* time blob messagestv8 days1-0/+2
|
* large messages over slow links are deltastv11 days1-0/+23
|
* use Automerge as Document instead of AutoCommittv13 days1-3/+2
| | | | This allows a lot of operations to drop mut.
* move changes as bytes to documenttv13 days1-130/+12
|
* rename AutoMerge to Documenttv13 days1-9/+9
|
* talk about "transport" unless mycelium is meanttv2026-10-271-8/+8
|
* reject and warn about too large delta blobstv2026-10-261-0/+4
|
* add delta blobstv2026-10-261-14/+186
|
* warn about dropped blob requeststv2026-10-261-0/+28
|
* add sync and relay statstv2026-10-261-0/+1
|
* introduce bounded blob downloadstv2026-10-261-13/+41
|
* read stamps sync and lock freetv2026-10-261-2/+2
|
* allow humand-friendly durations and sizes in CLItv2026-10-261-1/+1
|
* unify lock logictv2026-10-261-9/+4
|
* late messages don't flip peer's epoch backtv2026-10-251-2/+6
|
* put remake content into blobstv2026-10-241-4/+21
|
* add chunked download and use it during rejointv2026-10-241-0/+491