NEO St. Petersburg Competence Center (NEO SPCC) has released a report covering development progress made in Q1 2019. The R&D community is most widely recognized for its work on a distributed decentralized storage platform for the NEO blockchain, for which it recently released a demo and research plan.
The report also details other activities, publications, and contributions made by the team throughout January, February and March of 2019. The report is presented in an infographic format, which can be downloaded as a PDF here.
NeoFS Candidate Progress
NEO SPCC completed the implementation of the storage mechanisms, both for physical blobs and metadata. This includes functionality that allows objects to be split into chunks, though the implementation of data replication and migration for redundancy purposes is still a work in progress.
Of the roadmap items for Q1, only the implementation of data audit and validation methods remain in development for the proof-of-concept. These methods include the procedure for auditing data using its homomorphic hashing model, and the formation of metadata for storage groups, an approach used to reduce the computational cost of validation. Additional information on these processes may be found in section 6.1 of the research plan.
Development was also completed on the node application API, using gRPC, which defines the interaction between nodes on the network. The system has transitioned from multiple test implementations of individual components to a “single fully functional application.”
The team also began the design of a smart contract that will be used to handle accounting and payments for the proof-of-concept version. NEO SPCC remains on track with its roadmap, planning for a Q3 beta release for both the incentive model and file storage proof-of-concept.
NEO SPCC has continued making contributions to NEO’s open-source repositories, in particular to the neo-go project which it uses for its NeoFS candidate. The full list of 23 accepted neo-go pull requests may be found below:
- Add StackParam JSON Unmarshaler
- Assorted small fixes
- Formatting and code simplifications
- Convert ByteArray values from contract storage to the required type
- Added DecodeBytes method and improved DecodeBinary performance
- Make VM State a set with different flags, as in C# implementation
- Replace deprecated Transport.Dial with Transport.DialContext
- Fix UTXO calculation for raw transaction build
- BalanceGetter interface shortened
- Fix incorrect answer for getaccountstate RPC server method
- Fix typos and warnings for GoReport/GolangCiLinter
- Further typo corrections
- Add ValidateAddress RPC server method
- Fix possible data race
- Graceful blockchain shutdown
- Fix incorrect API documentation link
- Improve error messages
- Code refactoring
- Key signature and wallet address get functions added to Public key
- Adds function to create Public key from serialized bytes
- Replace assert.Equal with assert.JSONEq for RPC server test
- Added Go modules to dev branch
- Setup TravisCI for dev branch
The team also made two small contributions to the NEO core protocol. The first change improved error handling for RPC methods that require input parameters, and the second was a code consistency improvement:
NEO SPCC participated in multiple activities during Q1, including an on-stage presentation at NEO DevCon in Seattle, where it introduced the key functionality of its decentralized storage platform. NEO News Today took the opportunity to interview Dr. Anatoly Bogatyrev at the convention.
Following the DevCon presentation, NEO SPCC shared a proof-of-concept demo for its decentralized file storage platform, and provided a research plan that documented how the platform can be used by dApps or as a content delivery network.
The team also published four articles to its Medium page, including a guide for automatically importing smart contracts to a NEO PrivateNet, and a method that can be used to test neo-cli nodes with a raw transaction flow. It has released public libraries to increase the accessibility of these guides, which may be found within the respective articles.