Ipfs Dag Get and Ipfs Dag Put?
FleetingIf I understand correctly, files in ipfs are chunked into blocks and those
blocks are linked using a merkle DAG protocol buffer based format called
unixfs. Also, ipfs dag
is used to manipulate those.
Yet, there is something strange that does not fit with this idea.
Say I add the “hello world” content in ipfs.
HASH="$(echo "hello world"|ipfs add --quieter --pin=false --cid-version=1)"
echo "${HASH}"
bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4
This hash is actually representing a dag that points to the content of my file.
ipfs dag get "${HASH}"|jq -M
{
"/": {
"bytes": "aGVsbG8gd29ybGQK"
}
}
Then, if I put the same content in ipfs, I should have the same dag
NEW_HASH="$(ipfs dag get "${HASH}"|ipfs dag put)"
echo "${NEW_HASH}"
bafyreihulmkyt4pmfstbd5tewf4re35y3xpr7ss2c36rqik4dlvl2pxw2a
See? The hash are different. And even worse, they lead to the same dag content.
ipfs dag get "${NEW_HASH}"|jq -M
{
"/": {
"bytes": "aGVsbG8gd29ybGQK"
}
}
But, I can “read” one while the other is just some obscure block.
ipfs cat "${HASH}"
ipfs cat "${NEW_HASH}"
hello world
Error: unknown node type