Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Posted Jun 20, 2020 15:36 UTC (Sat) by hmh (subscriber, #3838)In reply to: Updating the Git protocol for SHA-256 by ms-tg
Parent article: Updating the Git protocol for SHA-256
At that point it becomes app specific, and other than the obvious protocol best practice that you should explicitly encode the protocol version (in this case what hash and hash parameters if not implied), there is little to be gained.
Prefixing (hidden by base# or explicitly) the hash type in git has already been covered by other replies and posts, and yes, imho it really should be done if at all possible.
Posted Jun 20, 2020 17:11 UTC (Sat)
by cyphar (subscriber, #110703)
[Link] (5 responses)
Now there isn't an IANA-like procedure, everything is done via PRs on GitHub but that's just differences in administrative structure.
Posted Jun 20, 2020 18:42 UTC (Sat)
by hmh (subscriber, #3838)
[Link] (1 responses)
This link you sent is much better, the other one lacks essential information...
I am quite sure git would severely restrict the allowed hashes, but at least the design of multihash seems sane and safely extensible, including when ones does the short-sighted error of enshrining short prefixes of the hash anywhere that is not a throw away command line call... A bad practice that is very common among git users.
Posted Jun 20, 2020 23:17 UTC (Sat)
by mathstuf (subscriber, #69389)
[Link]
"Best practice" for short usage in more permanent places includes the date (or tag description) and summary of the commit in question (which both greatly ease conflict resolution when it occurs and gives some idea of what's going on without having to copy/paste the has yourself).
Posted Jun 22, 2020 15:37 UTC (Mon)
by tialaramex (subscriber, #21167)
[Link]
RFC 8126 lists 10 such procedures for general use in new namespaces.
So what Multihash are doing here sounds like a typical new IANA namespace which has an Experimental/ Private Use region (self-assigned) and then Specification Required for the rest of the namespace. You must document what you're doing, maybe with a Standards Organisation, maybe you write a white paper, maybe even you just spin up a web site with a technical rant, but you need to document it and then you get reviewed and maybe get in.
Apparently Multihash is writing up some sort of formal document to maybe got to the IETF, but given they started in 2016 and it's not that hard they may not ever get it polished up and standardised anywhere, it's not a problem.
Posted Jun 24, 2020 4:03 UTC (Wed)
by nevyn (guest, #33129)
[Link] (1 responses)
Another similar point is the table itself, the hashes added are done ad hoc when someone uses them and wants to use multihash ... again, fine if the project is very new and gaining traction but much less good if the project is established and you go see that none of https://github.com/dgryski/dgohash are there. I understand it's volunteer based contributions but if you want people to actually use your std. it's going to be much easier if they can use it without having to self register well known/used decade old types.
Then there's the format itself. I understand that hashes are variable length but showing abbreviated hashes is very well known at this point. A new git repo. shows 7 characters for the --abbrev hash, ansible with over 50k commits only shows 10 (and even then github only shows 7), and they want to add "1220" to the front of that? And they really want you to show it to the user all the time? Even if abbreviated hashes weren't a thing, most users are going to think it's a bit weird if literally all the hashes they see start with the same 4 hex characters (at a minimum -- using blake2b will eat 6, I think). I also doubt many developers would want to store the hases natively, because it doesn't take many instances before storing the exact same byte sequence with each piece of actual data becomes more than trivial waste.
Posted Jun 25, 2020 17:02 UTC (Thu)
by pj (subscriber, #4506)
[Link]
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
IANA
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256