NEO St. Petersburg Competency Center (NEO SPCC) has released an infographic documenting its Q4 2018 progress on a decentralized file storage platform for the NEO blockchain. The report also noted other activities, including community project contributions, NEO document translations and its attendance of MICSECS 2018.
Distributed Decentralized Storage Platform
The DDSP is a peer-to-peer network formed by two types of node. The Outer Ring nodes are the storage servers, responsible for ensuring the integrity and availability of all stored data. The Inner Ring nodes maintain information about the network’s topology and handle accounting and data auditing.
All the active Outer Ring nodes and their respective properties will form a network map, which the Inner Ring is responsible for maintaining and updating as the network changes. This includes information such as node groups and their locations, along with the required parameters for data to be placed or retrieved.
The majority of the architectural design has been completed, with a few elements still in the draft stages, as can be viewed in the original report. Among the completed designs are the network map, data placement and retrieval functions, and the incentive model.
According to the roadmap, the incentive model and Proof-of-Concept releases are planned for Q3 2019.
Object Placement and Retrieval
NEO SPCC provided detailed information regarding its implementation of an object placement/retrieval algorithm. The implementation is divided into two components; the placement function and placement rule, and the container.
DDSP will use a consistent placement function, using a storage policy defined by placement rules, the network map and a rendezvous hashing salt. The storage policy operations will result in a subgraph of the network map being allocated for the placement of data and its replications (for redundancy).
The rendezvous hashing algorithm results in each node or bucket having an individual hash for each individual item, with the largest hash number being selected. In the event that a node becomes inaccessible, only objects mapped to that node would need to be remapped, which minimizes disruption.
For objects to be placed in the system, users are required to define a container with a storage policy, a unique identifier, an owner and the maximum capacity. Containers define the subgraphs of the network map for data allocation. This approach offers a few benefits, as it:
- Isolates a subset of nodes, which is faster and more predictive
- Protects against overfilling, as the container’s remaining capacity can be estimated
- Allows controlled access to the container
- Simplifies payments as they can be linked to the container
- Facilitates the integration of the Amazon s3 and Swift APIs
The report noted several contributions made to open-source NEO projects. NEO SPCC has provided a Russian translation for the official NEO documentation, which is hoped to help onboard more Russian developers into the ecosystem.
The team also made notable additions to the neo-go and neo-storm projects. Neo-go is a NEO node implementation and SDK written in Golang. NEO SPCC contributed 10 accepted pull requests to the repository, primarily concerned with improving its RPC functionality:
- add Fixed8DecodeString constructor to util.Fixed8
- Add proper field names for JSON RPC
- Add JSON unmarshallers for numeric types from util
- Add Error fields to RPC responses
- Add rpc.GetRawTransaction() method
- Optimizations + some improvements
- RPC invocation parameters
- Function to get private key from ASN.1 serialized structure
- Remove mention of the bump version
- SendToAddress RPC call
NEO SPCC also submitted four accepted pull requests to the neo-storm project, a smart contract framework for NEO written in Golang. The changes made various improvements to different areas of the code, including bug fixes, code simplifications and Go modules support:
- Simplify byte array reverse
- Swap arguments for functions with more than 3 arguments
- Using Go modules (Go 1.11+)
- Concatenate strings using CAT opcode
The team participated in a NEO blockchain community meetup on November 30th, 2018. The event was attended by Fabian Wahle, NEX and CoZ co-founder, alongside NEO general manager Johnson Zhao.
NEO SPCC hosted a hackathon in St. Petersburg on December 8th and 9th, 2018. The full report can be read on NEO News Today.
Finally, NEO SPCC attended the MICSECS-2018 conference at ITMO University on December 20th, where it held three presentations regarding its DDSP research. The team also submitted a provisional patent application for a zero-knowledge data validation method designed during its research.