Project

General

Profile

Wiki » History » Version 20

Alex Afanasyev, 07/21/2014 01:21 PM

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 20 Alex Afanasyev
**repo-ng** (repo-new generation) is an implementation of NDN persistent in-network storage conforming to **Repo protocol**. It uses [ndn-xx](http://redmine.named-data.net/projects/ndn-cxx) 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 20 Alex Afanasyev
* [ndn-cxx](https://github.com/named-data/ndn-cxx), Extended version of NDN C++ client library 
25 14 Shuo Chen
* [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.