IPFS - merkle-path
IPFS IPLD - merkle-path
1. merkle-path 란 무엇입니까?
merkle-path 는 유닉스 스타일 경로 (예: /a/b/c/d) 를 사용하여 merkle-link 를 통해 모든 객체를 가져옵니다.
공통 파일 시스템은 IPFS 위에 객체 모델로 설계되어 데이터 객체 작업 및 쿼리를 구현하는 특정 알고리즘을 설계 할 수 있습니다.
2. merkle-path 의 작동 원리는 무엇입니까?
merkle-path 는 유닉스 스타일의 경로로 경로를 점진적으로 내용을 파싱합니다. 내용을 파싱하는 것은 merkle-link 의 내용을 가져 와서 더 파싱하는 것을 의미합니다.
예) 다음과 같은 merkle-path 가 있다고 가정합니다.
/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/c/d
의미:
- ipfs 는 컴퓨터가 무엇을 해야할지 구분할 수 있게 해주는 프로토콜 네임 스페이스 입니다.
- QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k 는 암호화 해시 값입니다.
- a/b/c/d 는 Unix 경로입니다.
/로 표현되는 통과 가능한 경로는 두 종류의 링크를 나타낼 수 있습니다.
- 동일한 대상 내부에서 데이터를 쿼리합니다.
- 객체 간의 정보 탐색은 merkle-link 에 따라 구현됩니다.
예를 들어 다음 데이터 집합이 있다고 가정합니다.
$ ipfs object cat --fmt=yaml QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k
---
a:
b:
link:
/: QmV76pUdAAukxEHt9Wp2xwyTpiCmzJCvjnMxyQBreaUeKT
c: "d"
foo:
/: QmQmkZPNPoRkPd7wj2xUJe5v5DsY6MX33MFaGhZKB2pRSE
$ ipfs object cat --fmt=yaml QmV76pUdAAukxEHt9Wp2xwyTpiCmzJCvjnMxyQBreaUeKT
---
c: "e"
d:
e: "f"
foo:
name: "second foo"
$ ipfs object cat --fmt=yaml QmQmkZPNPoRkPd7wj2xUJe5v5DsY6MX33MFaGhZKB2pRSE
---
name: "third foo"
다음과 같은 path 가 있다고 가정:
- /ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/c
- 첫 번째 객체만 탐색하고 문자열 d 를 가져옵니다.
- /ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/link/c
- 두 객체를 두루 거치고 문자열 e 를 얻습니다.
- /ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/link/d/e
- 두 객체를 두루 거치고 문자열 f 를 얻습니다.
- /ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/link/foo/name
- 첫 번째, 두 번째 대상을 두루 거쳐 문자열 second foo 를 얻게 됩니다.
- /ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/foo/name
- 첫 번째, 두 번째 대상을 두루 거쳐 문자열 third foo 를 얻게 됩니다.