Protocol - Retransfer of the index - based on actual change


When Syncthing is restarted for config changes or some other reason, it is always retransferring the index to all other node.

All nodes know:

  • When they last saw the all configured nodes.
  • When was the last file change

If there would be a short handshake:

  • Did you change any file since you last saw me? Answer yyyy
  • I have xxxx changes since I last saw you. If the answer to xxxx and yyyy is “0” then the index should not be retransmitted.

That would speedup the time to sync a lot. Especially on nodes with large repos and many nodes. And also makes the frequent restarts less painful.

Yeah, it’s just not implemented yet. (See the small section about “Max Local Version” here.)

Thank you for your answer, this was excatly what i was looking for.

Should i make an issue for that on GitHub?

In the “Fields” section there is a line: Exactly one of the T, R or S bits MUST be set. I didnt see the use or the description of the “S” bit. Is this bit obsolete?

There is now a GitHub issue to this: