Project

General

Profile

Wiki » History » Version 18

Shuo Chen, 04/10/2014 04:32 AM

1 12 Shuo Chen
Repo protocol and repo-ng
2 2 Alex Afanasyev
=============
3 1 Alex Afanasyev
4 13 Shuo Chen
## Repo protocol
5
6 5 Shuo Chen
**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.
7 3 Shuo Chen
8 1 Alex Afanasyev
**Repo protocol** is based on [Command Interests](http://redmine.named-data.net/projects/nfd/wiki/Command_Interests) specification.
9 5 Shuo Chen
10 7 Shuo Chen
**Repo protocol** conforms to **protocols and specifications** for operating and controlling.
11 5 Shuo Chen
12 6 Shuo Chen
* [NFD command interests](http://redmine.named-data.net/projects/nfd/wiki/Command_Interests) for constructing signed interest of access control.
13 10 Shuo Chen
* [[Repo Protocol Specification|Repo Protocol Specification]]
14 11 Shuo Chen
* [NFD Control Command specification](http://redmine.named-data.net/projects/nfd/wiki/ControlCommand): The reponse of insertion and deletion command will follow the response format of this specification, but with different defination of status code.
15 13 Shuo Chen
16
## repo-ng
17
18
**repo-ng** (repo-new generation) is an implementation of NDN persistent in-network storage conforming to **Repo protocol**. It uses [ndn-cpp-dev](http://redmine.named-data.net/projects/ndn-cpp-dev) as NDN client library and database sqlite3 as underlying data storage.
19 14 Shuo Chen
20
### platform and libraries
21 15 Shuo Chen
* [C++ 03](http://en.cppreference.com/w/), [code style guidelines](http://redmine.named-data.net/projects/nfd/wiki/CodeStyle)
22
* [Boost >=1.48.0](http://www.boost.org/doc/libs/1_48_0/), we use [|a limited set of Boost libraries](http://redmine.named-data.net/projects/nfd/wiki/Boost)
23
* [Boost Unit Test Framework](http://www.boost.org/doc/libs/1_48_0/libs/test/doc/html/index.html), more information on [[unit testing](http://redmine.named-data.net/projects/nfd/wiki/UnitTesting)
24 14 Shuo Chen
* [ndn-cpp-dev](https://github.com/named-data/ndn-cpp-dev), Extended version of NDN C++ client library 
25
* [waf build system](https://code.google.com/p/waf/)
26
* [sqlite3](http://sqlite.org/)
27
28
### specific design
29
* [[Database design|Database design]]
30
* [[Software Structure|Software Structure]]
31 16 Shuo Chen
32
### current supported functions
33 17 Shuo Chen
34
Most parts of the protocol are supported in repo-ng. The following specifications are not supported in current version.
35 18 Shuo Chen
36
* For deletion command, if EndBlockId is null in RepoCommandParameter, repo cannot response all the segmented data from StartBlockId
37
* Command for checking deletion progress
38
39
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.