Comments (6)
Thanks for filing this! Yes, ut_gittorrent
should hook up git-fetch-pack to git-upload-pack over the ut_gittorrent
transfer stream. I've been working on this but it's not ready yet.
Normally git-upload-pack conducts the negotiation with git-fetch-pack, then sends "PACK", then the pack itself. We'd want it to:
- conduct the negotiation
- at PACK, stop sending data over the stream and save it to disk instead
- create a .torrent for that captured pack
- tell the client what the infoHash of that torrent is
- start sending the torrent after that
from gittorrent.
At first I only thought about extending ut_gittorrent
for a client to ask for want
and send its list of have
s, but you're right, there should be a way to let git-fetch-pack and git-upload-pack negotiate exact content instead of re-implementing it.
from gittorrent.
Counter-argument regarding determinicity as mentioned in the HN thread: having a fetcher send the same want
and have
to everyone and each sender compute a pack object with those should be more deterministic than having fetcher and each sender negotiate every time
from gittorrent.
@rakoo Sorry, I'm not sure I understood that last point. Could you elaborate?
from gittorrent.
If a fetcher sends its want
and its have
s to all senders (as I was thinking in the first place), it's going to be the same for everyone, the only variable then is how git-pack-objects is implemented; if on the other hand a fetcher negotiates pack content with every sender, I feel there is more chance that the actual pack content changes, because there are more variables. But maybe it's just an illusion.
from gittorrent.
Yeah, I don't think there's actually a difference between those two in the resulting packfile, but might be wrong. The only input the sender has to the negotiation is what commit they're at, which isn't changing.
from gittorrent.
Related Issues (20)
- Bitcoin username registration
- Open to burning coins to an unspendable address? HOT 18
- Namecoin HOT 8
- How to integrate naming services with GitTorrent? HOT 3
- multi protocol handoff HOT 4
- Is this Project abandoned? HOT 26
- Registering the gittorrent: URL scheme
- Private Repos? HOT 2
- Clone hangs forever for self-hosted repo HOT 3
- Ethereum Registry HOT 3
- Possible collaboration with similar project (Gitchain) HOT 4
- Is the project active anymore? HOT 1
- Decouple GitTorrent from blockchain HOT 11
- Public Gittorrent repository as Github clone HOT 1
- Create pull-request at Git-SCM
- same user/repo ? HOT 1
- "WARN deprecated [email protected]" - Time to look closer at older depedencies? HOT 1
- Browser Compatibility
- other js compatibility
- what is the difference between GitTorrent, Gitpay, Gitchain, radicle, gitnonymous?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gittorrent.