Repo protocol and repo-ng¶
Repo protocol is semantics and operating process for persistent storage node in NDN. The operation of NDN repo includes reading from, insertion to and deleting from data objects in NDN repository nodes.
Repo protocol conforms to Repo Protocol Specification for operating and controlling, including a set of repo management protocols:
- Repo Command defines the request and response formats of commands that can insert or remove data from repo, and how these commands should be signed and authenticated.
Basic Repo Insertion Protocol defines format of insertion of a single or collection of Data packets. In addition to the basic protocol, repo-ng implements several other insertion protocols:
Repo Deletion Protocol defines format of deletion of a single or collection of Data packets under certain prefix
repo-ng (repo-new generation) is an implementation of NDN persistent in-network storage conforming to Repo protocol. It uses ndn-cxx as NDN client library and database sqlite3 as underlying data storage.
platform and libraries¶
- C++11, code style guidelines
- Boost >=1.48.0, we use |a limited set of Boost libraries
- Boost Unit Test Framework, more information on [unit testing
- ndn-cxx, Extended version of NDN C++ client library
- waf build system
current supported functions¶
Most parts of the protocol are supported in repo-ng. The following specifications are not supported in current version.
- For deletion command, if EndBlockId is null in RepoCommandParameter, repo cannot response all the segmented data from StartBlockId
- Command for checking deletion progress
Trust model of command validation and access control have not been designed. All the commands are validated in current version and all the commands could pass.