{"action":"created","issue":{"url":"https://api.github.com/repos/ipfs/specs/issues/87","repository_url":"https://api.github.com/repos/ipfs/specs","labels_url":"https://api.github.com/repos/ipfs/specs/issues/87/labels{/name}","comments_url":"https://api.github.com/repos/ipfs/specs/issues/87/comments","events_url":"https://api.github.com/repos/ipfs/specs/issues/87/events","html_url":"https://github.com/ipfs/specs/issues/87","id":144116740,"number":87,"title":"Limitations of the merkledag link","user":{"login":"mitar","id":585279,"avatar_url":"https://avatars.githubusercontent.com/u/585279?v=3","gravatar_id":"","url":"https://api.github.com/users/mitar","html_url":"https://github.com/mitar","followers_url":"https://api.github.com/users/mitar/followers","following_url":"https://api.github.com/users/mitar/following{/other_user}","gists_url":"https://api.github.com/users/mitar/gists{/gist_id}","starred_url":"https://api.github.com/users/mitar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mitar/subscriptions","organizations_url":"https://api.github.com/users/mitar/orgs","repos_url":"https://api.github.com/users/mitar/repos","events_url":"https://api.github.com/users/mitar/events{/privacy}","received_events_url":"https://api.github.com/users/mitar/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ipfs/specs/labels/merkledag","name":"merkledag","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-03-29T00:13:10Z","updated_at":"2016-04-02T09:02:15Z","closed_at":null,"body":"I think the inclusion of `name` inside the [merkledag link](https://github.com/ipfs/specs/tree/master/merkledag#logical-format) is very limited for a particular use case, and even that is not general enough. I understand that it makes file-system use case easier to do, but even that I am not sure if it is really necessary. It could always be done through a two-level link: one which is just a link and another, which contains then metadata.\r\n\r\nIt feels to me that this is also something which is duplicated partially on the files layer.\r\n\r\nIs this a legacy thing?\r\n\r\nAnyway, while reading [the paper](https://github.com/ipfs/papers/blob/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf), the section \"path lookup performance\" I see that you are even using in flattened tree `name` as a path. So that you add `/` between path segments. This has some [assumptions about a platform used which IPFS is running on](https://github.com/ipfs/go-ipfs/issues/2013).\r\n\r\nInitially I assumed that `name` is not a path so issues like how to store path separators uniformly and normalize them do not exist. But this seems not to be true. For example, in this case it would be much better if `name` would be an array of strings, in the most common case just an array with one item. But in such flattened tree view arrays would have multiple items.\r\n\r\nBut this is just a special case. Maybe `name` should not be a string, but each link could contain arbitrary metadata? Then flatten tree could store arrays, files layer could store file names. And some other service providing object-oriented file-system identified by tags could use metadata to store sets of tags on relations between objects/files."},"comment":{"url":"https://api.github.com/repos/ipfs/specs/issues/comments/204676407","html_url":"https://github.com/ipfs/specs/issues/87#issuecomment-204676407","issue_url":"https://api.github.com/repos/ipfs/specs/issues/87","id":204676407,"user":{"login":"Mec-iS","id":3146196,"avatar_url":"https://avatars.githubusercontent.com/u/3146196?v=3","gravatar_id":"","url":"https://api.github.com/users/Mec-iS","html_url":"https://github.com/Mec-iS","followers_url":"https://api.github.com/users/Mec-iS/followers","following_url":"https://api.github.com/users/Mec-iS/following{/other_user}","gists_url":"https://api.github.com/users/Mec-iS/gists{/gist_id}","starred_url":"https://api.github.com/users/Mec-iS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Mec-iS/subscriptions","organizations_url":"https://api.github.com/users/Mec-iS/orgs","repos_url":"https://api.github.com/users/Mec-iS/repos","events_url":"https://api.github.com/users/Mec-iS/events{/privacy}","received_events_url":"https://api.github.com/users/Mec-iS/received_events","type":"User","site_admin":false},"created_at":"2016-04-02T09:02:15Z","updated_at":"2016-04-02T09:02:15Z","body":"for reference: https://github.com/nicola/merkle-paths"}}