Metadata resistant app question of the day.

In @cwtch_im, file sharing is done via a torrent-like protocol where the file is chunked & each part can be requested individually (maybe from different people). Only the root hash is initially sent.

How should acks work?
A few caveats:

(2) Is currently implicit in the protocol as all messages are acknowledged

(3) might not always be possible right away (in group contexts) and so requires some extra effort on the recipients end.
Option (3) Also viscerally *feels* like a read receipt to me, even though it isn't necessary (we do allow auto downloading of images e.g.) - and so I think if we went that direction I would feel compelled to make it optional (but then it isn't an ack...)
Also, ack metadata exists regardless in certain contexts.

In a 2-person session if 1 party requests all necessary chunks from another party it can probably be assumed that they have the file.

Same in group contexts if all members of the group fetch all chunks from the sender.
(you could theoretically anonymize those requests, but the overall context of the app makes it functionally pointless)
So really the question becomes - does the recipient have an obligation to tell the sender that they successfully reassembled the file - in the cases where they received chunks from other parties?
There is also a related question regarding sender-side download "progress". In many cases it is extractable from the underlying requests - but as soon as you jump to a group context with rehosting those assumptions are gone.
I don't think there is a correct answer to this, people definitely have different expectations - and maybe it is proper to treat 2-party p2p as functionally different and provide different views over the same data when compared to groups.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Sarah Jamie Lewis

Sarah Jamie Lewis Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @SarahJamieLewis

Jan 14
As PoS is seen as inevitable for some cryptos there is an interesting meta shift away from "stop saying our consensus is centralized" towards "yes, the consensus is 'technically' centralized but *how* we arrive at consensus is less important than *what* we do with the consensus"
A few years ago i think I would have been under the impression that such rhetoric would effectively kill a community as they drop their committent to decentralization and concentrate power in a few hands.

lol
It feels like we are heading towards a point where there are the very few PoW currencies that have enough staying power to survive, and the rest of crypto will blend into a handful of very centralized payment processing hubs.

All claiming victory.
Read 11 tweets
Jan 11
In a decentralized metadata resistant messenger where direct peer to peer messages may be unavailable because the other party is offline - what is the best way to order the conversation list:
(Note: Any solution to offline delivery likely carries an additional security assumption either in order to protect the metadata inherent to the conversation or in the risk involved in outsourcing storage)
This is actually slightly complicated by another factor: @cwtch_im doesn't save p2p conversation histories by default. It's a UX preference we adopted from Ricochet and does mean that "last message time" might be "Never" for some contacts even if you talk to them often.
Read 5 tweets
Dec 13, 2021
It's been a while since I've visited this topic, and with some vacation coming up I think I might want to dive into it some more. I would really like to find some kind of solution to this.

I'm going to dump some thoughts about approaches I've already tried in this thread.
Failed Approach #1: Custom Wiki

What worked: flexible, linkable some nice features like reference embedding and basic term rewriting / derivation.

What didn't work: lack of formalization, everything felt too ad-hoc,

Perhaps salvageable with process.

Failed Approach #2: Literate Programming.

What worked: Nothing, literate programming tools are terrible.
Read 11 tweets
Dec 11, 2021
Most software is a composition of layers of fossilised snapshots of the organizational understanding of the problem those layers were originally designed to solve - but we rely on it as if it is continually maintained critical infrastructure.

One of those has to give.
What a system was designed to do, what it does, what it is supposed to do, and what people use it for are 4 mostly unrelated concepts.
Asbestos problems, where you've introduced a dependency to serve purpose but due to "unforeseen" danger now needs to be completely replaced, suck - but competent organizations have continuous deployment pipelines and dependency tracing . At worst, at least you know of the danger.
Read 6 tweets
Dec 9, 2021
My ongoing rage at papers that define an adversary strong enough to compromise any participant at will, but weak enough that they are incapable of arbitrary protocol violations.
"We permit the adversary to perform all of these actions, but we assume they will never lie to the other members about it"
"We assume the adversary is omnipotent in regards to the internal state of protocol participants, but they will definitely never introduce arbitrary network delays."
Read 4 tweets
Nov 29, 2021
Many of the major trends in crypto right now are leading to the development of structures that are fundamentally aligned with anarcho-mutualism (community ownership and control, community credit).

You have to wipe off the icky layer of rentier capitalism settling on the surface.
Seriously please wipe off the layer of rentier capitalism, it is what Adam Smith would have wanted.

Anyway, "left" and "right" economic dichotomies are imaginary - and I wish more people would read the damn source material.

Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(