2016-12-06 4 views
1

Я пытаюсь создать совместимый с IPFS mutihash, но это не соответствует. Я спрашиваю здесь, потому что я еще не нашел пример, который отнимает это от хэширования до конечного результата.Как создать совместимую с IPFS многошаговую систему

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' 

Цель состоит в том, чтобы воссоздать путь ОПЗ QmZLXzjiZU39eN8QirMZ2CGXjMLiuEkQriRu7a7FeSB4fg с использованием пакета multihashes.

Я могу создать такой же хэш QmYtUc...9PBBk, как показано на примере здесь: https://github.com/multiformats/multihash#example

+0

Я прошел довольно много того же процесса: http://0kalmi.blogspot.hu/2015/12/what-goes-into-ipfs-multihash.html –

ответ

1

Файл в ОПЗ является «превращается» в файл Unixfs, который является представлением файлов в DAG, в ваш пример, вы непосредственно хэширования ваш multihash.txt с sha2-256, но то, что происходит внутри ОПЗ является:

  • файл запускается разбит на куски 256KiB
  • каждый блок переходит в узел DAG внутри Unixfs Protobuf https://github.com/ipfs/js-ipfs-unixfs
  • a dag создан со ссылками на все куски.
+0

Связанный: https://github.com/ ОПЗ/вопросы/проблемы/208 – jcalfee314