Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dilated File Transfer #23

Open
wants to merge 49 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
aac7fc9
prelim v2 sketch
meejah Jun 13, 2022
1f454ee
clarify
meejah Jun 13, 2022
efc0011
overall selection
meejah Jun 13, 2022
58e32e5
attempt at state diagram
meejah Jun 13, 2022
8240b1a
tweak diagram
meejah Jun 14, 2022
8e8985d
more tweaks
meejah Jun 14, 2022
0e94de2
more version work
meejah Jun 15, 2022
c8aaa0d
random notes
meejah Jun 17, 2022
bb917fe
new writeup, incorporating extensive discussion from brian warner
meejah Jun 17, 2022
75d1c05
clarify
meejah Jun 17, 2022
7caca5b
words
meejah Jun 17, 2022
545a050
basic -> core
meejah Jun 21, 2022
efdf7ee
paths are lists; cleanups/edits
meejah Jun 21, 2022
12eacc9
clean
meejah Jun 21, 2022
23e1e8a
clean
meejah Jun 21, 2022
dd4f11d
dot diagram
meejah Jun 21, 2022
8b3ffa7
tweak diagram
meejah Jun 21, 2022
59ade4d
editing tweaks
meejah Jun 23, 2022
d90275c
add philosophy
meejah Jun 23, 2022
d15f61a
grammar is fun
meejah Jun 23, 2022
6f545bb
links
meejah Jun 23, 2022
0ba5c9a
old
meejah Jun 24, 2022
0ffed00
slight re-wording and spelling
meejah Jun 28, 2022
83b8dae
clarify
meejah Jun 30, 2022
b650bf8
old
meejah Jun 30, 2022
63ed3b7
q: compression?
meejah Jul 4, 2022
aaf49b0
subtly change version declartions; add more version discussion / exam…
meejah Jul 4, 2022
63b41b1
decide: yes, we want send/receive modes
meejah Jul 4, 2022
8a57ad0
use strings for kind in control messages
meejah Jul 4, 2022
4426249
clarify further
meejah Jul 4, 2022
55c8eae
tweak wording
meejah Jul 4, 2022
477cf60
get rid of 'core', no features currently
meejah Jul 4, 2022
5fc4c17
make 'permission' mode a future enhancement
meejah Jul 4, 2022
88b124b
features: list -> dict
meejah Jul 4, 2022
0a7992a
reword
meejah Jul 4, 2022
1b91a74
clean up examples, expand compression
meejah Jul 4, 2022
f61ec7a
no version 1
meejah Jul 5, 2022
dd24416
add a final message with checksum hash
meejah Jul 5, 2022
7705f33
clarify
meejah Jul 5, 2022
7792aaf
clarify
meejah Jul 5, 2022
6606347
add symlink discussion
meejah Jul 8, 2022
aa27570
further clarify data fragmentation etc
meejah Jul 8, 2022
da44652
verb tense
meejah Jul 13, 2022
24e5335
nah
meejah Jul 13, 2022
6057b14
how to close the session
meejah Jul 13, 2022
d1aae38
re-word offer language to clarify modes
meejah Jul 13, 2022
74de043
clarifications and minor re-wording
meejah Jul 13, 2022
2d881ee
control-message 'kind' is string
meejah Jul 14, 2022
0af29f4
clarify the timestamp
meejah Jul 14, 2022
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
64 changes: 64 additions & 0 deletions dilated-file-transfer.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
digraph {

start[color=blue style=bold];
done[color=red style=bold];
start -> connected [label="peer mode: connect \l"];
start -> receiving [label="peer mode: send \l"];
start -> sending [label="peer mode: receive \l"];

connected -> offer_start [label="subchannel open \l"];
connected -> send_offer [label="make:Offer\lopen subchannel"];

receiving -> offer_start [label="subchannel open \l"];
sending -> send_offer [label="make:Offer\lopen subchannel"];

subgraph cluster_receive {
label="incoming offer";
color=lightseagreen;
style=filled;
node[color=white; style=filled;];

offer_start[color=white style=filled label="subchannel open"];
offer_start -> accepting [label="recv:Offer\lour-mode: yes"];
offer_start -> got_offer [label="recv: Offer\lask:accept?"];
got_offer -> accepting [label="answer:yes\lsend: AcceptOffer"];
got_offer -> rejecting [label="answer:no\lsend: RejectOffer"];

accepting -> accepting [label="recv: data \lwrite"];

recv_closed [label="closed"];
accepting -> recv_closed [label="subchannel close \lclose file"];

rejecting -> recv_closed [label="subchannel close \l"]
}

subgraph cluster_send {
label="outgoing offer";
color=lightblue;
style=filled;
node[color=white; style=filled;];

send_offer[color=white style=filled];
send_offer -> permission [label="send:Offer\lmode:ask"];
permission -> stream_data [label="recv:OfferAccept\l"];
permission -> send_closing [label="recv:OfferReject\lclose subchannel"];
send_offer -> stream_data [label="send:Offer\lmode:yes"];

stream_data -> stream_data [label="have data\lsend:Data"];

stream_data -> send_closing [label="completed\lclose subchannel"];
send_closed [label="closed"];
send_closing -> send_closed [labe="subchannel close"];
}

// "we" close down first
receiving -> closing [label="done\lclose dilation"];
sending -> closing [label="done\lclose dilation"];
connected -> closing [label="done\lclose dilation"];
closing -> done [label="dilation closed\l"]

// "they" close down first
receiving -> done [label="dilation closed\l"];
sending -> done [label="dilation closed\l"];
connected -> done [label="dilation closed\l"];
}
Loading