Repo protocol and repo-ng

1. Repo protocol

Repo protocol 은 NDN 영구 스토리지 노드 (persistent storage node) 로서의 의미 및 운영 프로세스를 의미합니다. NDN repo 의 동작은 NDN Repository 노드에서 데이터 객체 (Data Object) 에 대한 read, insert, delete 를 수행하는 것 입니다.

Repo protocol 은 운영 및 제어를 위한 Repo Protocol Specification 을 준수하며 아래의 Repo 관리 프로토콜을 포함합니다:

  • Repo Command 는 repo 에 데이터를 insert 하거나 remove 할 수 있는 요청 및 응답에 대한 포멧, 이러한 command 를 서명하고 인증하는 방법을 정의합니다.
  • Basic Repo Insertion Protocol 은 데이터 패킷의 insert 형식을 정의합니다. repo-ng 는 기본 프로토콜 외에도 몇가지 다른 insert 프로토콜을 구현할 수 있습니다.
  • Repo Deletion Protocol 은 특정 prefix 의 데이터 패킷에 대한 delete 포멧을 정의합니다.

2. repo-ng

repo-ng (repo-new generation) 는 Repo protocol 을 준수하는 NDN 영구(NDN persistent) 인-네트워크 스토리지 (in-network storage) 의 구현체를 의미합니다. NDN 클라이언트 라이브러리로 ndn-cxx 를 사용하고 기본 스토리지로 sqlite3 데이터베이스를 사용합니다.

2.1 platform and libraries

2.2 specific design

2.3 current supported functions

프로토콜의 대부분은 repo-ng 에서 지원됩니다. 하지만 아래의 사양은 현재 버전에서 지원되지 않습니다.

  • delete command 에서, RepoCommandParameter 의 EndBlockId 가 null 인 경우 repo 는 StartBlockId 의 모든 세그먼트 데이터에 응답 할 수 없습니다.
  • delete 진행 과정을 체크하는 command 는 지원하지 않습니다.

command 검증 (validation) 및 액세스 제어 (access control) 에 대한 신뢰 모델 (Trust model) 이 설계되지 않았습니다. 모든 command 는 현재 버전에서 유효하며 통과할 수 있습니다.

2.4 user experience