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. |