simperby
simperby copied to clipboard
Tracking issue for DMS repository networking
Background
Current impl. of Simperby's repository networking is based on directly fetching and pushing branches using the Git remote protocol. This works nicely, but has some drawbacks
- Not fast. We can't even optimize it because its Git internal
- Not abstracted above p2p protocol. If we introduce a new p2p channel that accepts only byte packets, I think it's not trivial to integrate git push and fetch above it. 3.Additional channel is always good!
- Reuse interface and future optimization effort in DMS which is already used in with Governance & Consensus.
How
- Use DMS to broadcast Git branches. See
repository::interpret::dms
. - You should be familiar with DMS.
- Encode target branches and commits into binary packet, and then put it to a DMS instance.
- Decode binary packets into branches and commits, after received from a DMS instance
Caveats
- Note that DMS is for a single height. We still need plain git push / git fetch for multiple block followup