如何创建一个IPFS兼容multihash
问题描述:
我试图创建一个IPFS兼容mutihash,但它不匹配。我在这里问,因为我还没有找到一个例子,从哈希到最终结果。如何创建一个IPFS兼容multihash
echo -n multihash > multihash.txt
ipfs add multihash.txt
added QmZLXzjiZU39eN8QirMZ2CGXjMLiuEkQriRu7a7FeSB4fg multihash.txt
sha256sum multihash.txt
9cbc07c3f991725836a3aa2a581ca2029198aa420b9d99bc0e131d9f3e2cbe47 multihash.txt
node
> var bs58=require('bs58')
bs58.encode(new Buffer('9cbc07c3f991725836a3aa2a581ca2029198aa420b9d99bc0e131d9f3e2cbe47','hex'))
'BYptxaTgpcBrqZx9tghNCWFfUuYBcGfLydEvDjXqBV7k'
> var mh=require('multihashes')
mh.toB58String(mh.encode(new Buffer('9cbc07c3f991725836a3aa2a581ca2029198aa420b9d99bc0e131d9f3e2cbe47','hex'), 'sha2-256'))
'QmYtUc4iTCbbfVSDNKvtQqrfyezPPnFvE33wFmutw9PBBk'
目的是使用multihashes软件包重新创建IPFS路径QmZLXzjiZU39eN8QirMZ2CGXjMLiuEkQriRu7a7FeSB4fg
。
我能够创建相同的散列QmYtUc...9PBBk
如在这里例如:https://github.com/multiformats/multihash#example
答
在IPFS的文件被“转化”成Unixfs文件,该文件是在DAG中的文件表示,在你的榜样,你是直接与哈希你sha2-256 multihash.txt,但发生的事情里面IPFS是:
- 文件被分块成块256KiB
- 每块进入一个Unixfs内DAG节点的Protobuf https://github.com/ipfs/js-ipfs-unixfs
- 创建一个dag,并链接到所有的块。
+0
相关:https://github.com/ IPF问题/常见问题/问题/ 208 – jcalfee314
我经历了几乎相同的过程:http://0kalmi.blogspot.hu/2015/12/what-goes-into-ipfs-multihash.html –