simperby icon indicating copy to clipboard operation
simperby copied to clipboard

Tracking issue for DMS repository networking

Open junha1 opened this issue 1 year ago • 0 comments

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

  1. Not fast. We can't even optimize it because its Git internal
  2. 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!
  3. 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

junha1 avatar Apr 03 '23 05:04 junha1