open todo for p2p protocol flag days

This commit is contained in:
Joey Hess 2018-03-12 16:28:54 -04:00
parent 28589c92d2
commit e36ceb7448
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 30 additions and 10 deletions

View file

@ -64,13 +64,6 @@ that is less than or equal to the version the client sent:
Now both client and server should use version 1.
(Note that old versions of git-annex, which speak the P2P protocol
over tor, don't support this, and attempting to negotiate a version
will cause the server to hang up the connection. To deal with this
historical bug, the version is not currently negotiated when using the
protocol over tor. At some point in the future, when all peers can be
assumed to be upgraded, this will be changed.)
## Binary data
The protocol allows raw binary data to be sent. This is done

View file

@ -48,12 +48,12 @@ implementation todos:
It would be nice to support that, but if it added an extra round trip
to the P2P protocol, that could lose some of the speed gains.
My first attempt to implement this failed miserably due to a Free monad
type check problem I could not see a way around.
* What happens when the assistant is running and some connections are open
and it moves between networks?
* If it's unable to ssh to a host to run p2pstdio, it will fall back to the
old method. What if the host is down, does this double the timeout?
----
Benchmarks

View file

@ -0,0 +1,27 @@
Some things to do with the [[design/P2P_protocol]]
are works in progress, needing a future flag day to complete.
## VERSION over tor
Old versions of git-annex, before 6.20180312, which speak the P2P protocol
over tor, don't support VERSION, and attempting to negotiate a version
will cause the server to hang up the connection. To deal with this
historical bug, the version is not currently negotiated when using the
protocol over tor. At some point in the future, when all peers can be
assumed to be upgraded, this should be changed.
## git-annex-shell fallbacks
When using git-annex-shell p2pio, git-annex assumes that if it exits 1,
it does not support that, and falls back to the old sendkey/rerecvkey,
etc.
At some point in the future, once all git-annex and git-annex-shell
can be assumed to be upgraded to 6.20180312, this fallback can be removed.
It will allows removing a lot of code from git-annex-shell and a lot of
fallback code from Remote.Git.
Removing the fallback code will also improve speed of dealing with remotes
that are not reachable, since currently git-annex tries first to open a p2p
connection, and then tries the fallback, so it has to wait for two
TCP connection timeouts.