A year ago, we were contacted by a customer who needed a system to simplify the legal processes associated with the registration of intellectual property rights. The difficulty was that the processes must be 100% digitized while maintaining their legal force. To solve this problem, we opted for blockchain technology to provide the highest level of integrity and information protection. The technology is famous for its operation transparency, resistance to hacking, and the impossibility of losing or falsifying the original data.
Working with large amounts of data (storage of intellectual property)
Blockchain system integration
Integration with repositories (GitLab, GitHub, etc.) to pull the source code of projects
Organization of distributed file storage with data encryption
Role-based model with privileges
Implementing the project
Here we’ll tell you how we developed the project from scratch.
Storage of a large amount of data
The project was faced with the task of storing large amounts of client data. According to the task specification from the client, we were required to integrate the final product with all popular code storage systems. It was necessary first to connect to these systems, download the code and then package everything that is subject to registration. We made it. Finally, the system was connected to repositories.
It can download and store a large amount of information from 200 MB, like CS-Cart in default, to several terabytes, if photo and video content is stored.
The data can be located on different computers. The blockchain stores them in cells and connects to each other to create a unified uninterrupted system of records.
Role-based model and privilege management
Functionality for arbitration and dispute resolution was also implemented. Various roles and privileges for these roles have been introduced.
Internal voting is necessary when the project has several owners approving each amendment. The developed system allows voting. Based on the majority of votes, a decision is made on the further development of the product.
The project required functionality for signing documents. To implement the use of an electronic signature, we integrated the system with a state portal providing legal services to local citizens. The portal allows you to identify the user and carry out a digital signature.
Optimizing the record of the source code
Recording of the Blockchain source code costs money. To optimize this process, we decided to store the code in a local file storage. We downloaded the source code to our system, encrypted it, and then saved a digital copy of this code (in the form of a single line) to the blockchain. Such an operation costs a few cents.
The application developed by us interacts with the rest of the infrastructure (advanced file system, blockchain and role model) through APIs. Such complex integration entailed changes in the front-end part. Our developers created the frontend from scratch and made the system intuitive and user-friendly.
The system was developed on Laravel in accordance with best practices. We compiled a description of user scenarios. Then we programmed the corresponding scripts. Scenarios were used to compile test checklists.
We developed the app using the Agile methodology with two-week scrums. The project team also applied CI / CD practices, autotests, retrospectives and product demonstrations to the customer every 2 weeks, which allowed for a flexible approach to implementation.
There were several environment contours (for development, demonstration and production itself). Auto-deploy was set up for them using Bitbucket and Pipeline.
Simple registration of intellectual property rights and trademarks with automation of all processes and division of user roles.