IPFS 기본 - Naming 계층

1. IPNS: 네이밍 및 변수 상태

IPFS 는 해당 파일 내용을 검색 할 수 있는 파일 또는 디렉토리에 대해 주소 지정 가능한 해시 값을 생성 할 수 있습니다. 그러나 파일의 내용이 변경되면 이전 해시 값은 최신 내용을 검색 할 수 없으며 이전 내용만 검색 할 수 있습니다. 이러한 방식으로 우리가 다양한 콘텐츠를 게시 할 때 이를 검색하는 것은 매우 불편합니다.

따라서 이 문제를 해결하기 위해 IPNS 는 특정 값을 가변 컨텐츠의 최신 상태로 고정시킵니다. 즉, 파일 내용을 다시 편집 할 때 잠긴 IPNS 값으로 최신 컨텐츠에 액세스 할 수 있습니다.

2. 자가 인증 네이밍

SFS 자체 인증 네이밍 시스템은 IPFS 에 암호화 된 배포의 전역 네임 스페이스에서 가변적인 자체 인증 네이밍을 구축하는 방법을 제공합니다. IPFS 네이밍 체계는 다음과 같습니다.

  • IPFS 노드 정보는 NodeId = hash (node.PubKey) 에 의해 생성
  • 각 사용자에게는 변수 네임 스페이스가 할당되고 이전에 생성 된 노드 ID 정보가 주소 이름으로 사용 (/ipns/)
  • 사용자는 이 경로 아래에 자체 개인 키로 서명 된 객체를 게시 (/ipns/XLF2ip4ii9x0wejs23HD2swlddVmas8kd0Ax/)
  • 다른 사용자가 객체를 획득하면 서명이 공개 키 및 노드 정보와 일치하는지 여부를 검출함으로써 사용자의 공개 객체의 신뢰성을 검증하고 가변 상태 획득

예) IPNS 링크 : https://ipfs.io/ipns/QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP

앞 절인 https://ipfs.io/ipns/ 는 네임 스페이스이고 그 뒤에 노드의 ID 인 NodeID 가 옵니다. 모든 노드의 네임 스페이스는 IPNS 입니다.

이 블록의 동적 변화 내용은 라우팅 함수를 설정함으로 제어됩니다. 아래 소스 코드를 통해 네임 스페이스가 바운드 NodeId 의 형태로 마운트 된 이유를 알 수 있습니다: routing.setValue ( NodeId, <ns-object-hash>)

네임 스페이스에서 게시 된 데이터 객체 경로 이름은 하위 이름으로 처리 될 수 있습니다:

/ipns/XLF2ipQ4jD3UdeX5xp1KBgeHRhemUtaA8Vm/
/ipns/XLF2ipQ4jD3UdeX5xp1KBgeHRhemUtaA8Vm/docs
/ipns/XLF2ipQ4jD3UdeX5xp1KBgeHRhemUtaA8Vm/docs/ipfs

3. Human Read Naming

IPNS 는 노드의 NodeID 를 잠금 해시 값으로 사용하며 사용자는 이러한 긴 문자열을 기억하기 어렵습니다. 따라서 도메인 이름 izone.com 과 같은 정책을 통해 도메인 이름을 설정해야 합니다. ipfs.io/ipns/izone.com 을 사용하여 데이터 컨텐츠에 액세스 할 수 있습니다.

[1] peer 노드 링크

SFS (Self-Validating File System)의 디자인 개념에 따라 사용자는 다른 사용자 노드의 개체를 자신의 네임 스페이스에 직접 연결할 수 있으므로보다 신뢰할 수있는 네트워크를 만들 수 있습니다.

# Alice 가 Bob 과 링크
ipfs link //friends/bob/

# Eve 는 Alice 와 연결
ipfs link //friends/alice /

# Eve 는 Bob 에 액세스 할 수 있음
//friends/alice/friends/bob

# Verisign 인증 도메인 방문
//foo.com

[2] DNS TXT IPNS 레코드

기존 DNS 시스템에 TXT 레코드를 추가하면 도메인 이름을 통해 IPFS 네트워크의 파일 객체에 액세스 할 수 있습니다.

# DNS TXT 레코드
ipfs.benet.ai. TXT "ipfs=XLF2ip4jD3U..."
# 상징 링크로 표현
ln -s /ipns/XLF2ip4jD3U... /ipns/fs.benet.ai

# 또한 IPFS 는 다음과 같이 이진 인코딩을 읽을 수있는 파일로 변환하는 읽기 가능 식별자 인 Proquint 를 지원
# proquint 성명
/ipns/dahih-dolij-sozuk-vosah-luvar-fuluh
# 아래의 해당 양식으로 분해
/ipns/KhWwNprxYVxKqpDZ

또한 IPFS 는 짧은 주소 지정 서비스를 제공합니다. 이 서비스는 지금 볼 수있는 DNS 및 WebURL 링크와 유사합니다.

# 사용자는 아래에서 link 를 얻을 수 있음
/ipns/shorten.er/foobar

# 자신의 네임 스페이스에 적용
/ipns/XLF2ipQ4JD3Udex6xKbgeHrhemUtaA9Vm