Conflicts and ITCs

32 views
Skip to first unread message

Steven Jewel

unread,
Mar 8, 2014, 4:25:06 PM3/8/14
to clearsk...@googlegroups.com
Hello,

As I've been thinking about ITCs this week, I think it's possible
that they won't work for an edge case of our protocol.

The edge case is something that might be important in practice. In
the "protocol_cleanup" branch, the read-only peers are able to spread
manifest updates to other peers. Since the updates are signed with the
read-write RSA key, this is a safe operation. However, in order for the
ITC mechanism to work properly, a fork() is needed each time the change
is sent to another peer, so that two peers don't end up with the same ID
component for a file. Since the message is signed, the read-only peers
can't make changes to the ITC without breaking the signature.

Since Vector Clocks and Version Vectors use the peer_id, they don't
share this problem, so I think we probably should switch to one of those
for now, even though ITCs would have been more efficient for us.

I will update the protocol in the protocol_cleanup branch
accordingly. Actually, I might defer this action for a few weeks so
that I can help with the C++ implementation instead, leaving a TODO in
the spec for now.

Steven
Reply all
Reply to author
Forward
0 new messages