@whyrusleeping just thought that when we add blake2 support, prior versions wont be able to use those hashes. if we can throw in support in 0.4.0 it would help. Feature creep i know but breakingness :S

(dat speed!)
I'd vote for blake2b/s, but keep in mind that https://github.com/ipfs/archives/issues/35#issuecomment-165654806.
For effective optimization, it'd be better to make a breakdown of the bottlenecks https://github.com/ipfs/go-ipfs/issues/1616#issuecomment-155416422 (this benchmark is old, but just to serve a point).
@rht makes sense. i'd opt for 2b/s as well.
Here is a heuristic benchmark:
ipfs add -q -r Godeps on https://github.com/ipfs/go-ipfs/tree/e8c753d2e52b9f6e47d7f13c6b6fcffd0888c548 with various hash functions:
addAllAndPin: 363ms)We should probably add support for this before ipfs 0.5.0
would be nice
With the latest bitswap fixes, we can change the hash function up and have it work just fine. Lets actually get around to prioritizing this as an experimental feature
@Kubuxu do you think you could take on getting the blake2 multihash stuff implemented?
For 0.4.5?
@Kubuxu hmm... I'd like to be able to have it in 0.4.5. But thats a decent hunk of work. If you think we can do it quickly enough then lets go for it, otherwise, its on 0.4.6
I will use this issue to add things I need you to take a look at for blake2 support:
First one: https://github.com/multiformats/multicodec/pull/25
The code for blake2 is now merged into master and will be in the 0.4.6 release. Its not yet available as an easily specifiable parameter to ipfs add, but that can be added soon.
Moving the implementation of a --hash-fn=blake2b-256 flag for add into the 0.4.7 milestone
Alright, having two releases in the wild that can understand this hash function is sufficient for deploying the change to master.
Lets go ahead and do this for 0.4.8 :) (it should be very simple)
@Kubuxu this is assigned to you. Do you want me to take it? Should be easy after https://github.com/ipfs/go-ipfs/pull/3743 is merged.
It requires dependency propagation of go-multihash. So if you ware up to it, go for it.
@whyrusleeping the go-multihash dep is used nearly every where so it will be a difficult dependency to update and there are several outstanding P.R. for additional hashes. Do you still want to target this for Ipfs 0.4.8 or bump it?
@kevina we can probably bump this one to 0.4.9
I'm working right now on bubbling a dependency update, but it shouldnt be needed for blake2. I beleive that code is already merged into master here
The dep is for sure in master now. Lets get this into 0.4.10 :)
@whyrusleeping This sounds like an easy one for me to do, shall I?
With https://github.com/ipfs/go-ipfs/pull/3919 merged this is now possible.
Late question: is there a list of all the hashes supported by IPFS you can use with ipfs add --hash <hash>?
For example, an older one is here – https://multiformats.io/multihash/ – but blake2s-128 doesn't seem to be supported anymore. (At least it throws an error when using it.)
@JayBrown There is now, ipfs cid hashes.
@kevina Is that in a new version? My go-ipfs v0.4.17 doesn't have ipfs cid (yet).
EDIT: you'd probably also have to specify the CID version to print the respective list of hashes.
@Jay we just released 0.4.18.