The ENVIENTA Platform through the developers’ eyes
The ENVIENTA Platform through the developers’ eyes
decentralized hardware knowledge base
We have written about ENVIENTA Platform as the central element of ENVIENTA project many times but we have always spoken about it in general terms. In this article I am trying to focus on the same topic from a developer’s aspect in a question-and- answer form. It is important to note that the project is still well in the developing phase, everything is tentative, anything can change. The thoughts written below represent the direction I am visioning.
What is ENVIENTA Platform?
The objective of ENVIENTA is to connect all participants of product development (inventors, customers, producers etc.) and support the open-source projects all the way from the idea from financing to production. We believe that such a platform can help and speed up innovation greatly and can help to find solutions to urging problems like climate change and water crisis.
ENVIENTA Platform is not a software but a software ecosystem consisting several software elements. The single elements are loosely connected to each other and our goal is to operate this system completely decentralised in the long run developed and operated by the community.
How ENVIENTA Platform is built up?
Every single project of ENVIENTA Platform is a Git repository. When we browse the project website we put a user interface, which is easily understandable and manageable to anyone, on this Git repository. With this UI anyone — without advanced IT skills — can launch a new project or join other ongoing projects.
The Git itself is already decentralized. In fact there is no superior or central repository, there is only synchronization (push/pull) between the repositories. Which Git repository is accepted as master is defined by the agreement between the developers. When somebody creates a project on the platform, such a Git repositories is being created for them, which is stored by the ENVIENTA servers. We have plans to publish these repositories into IPFS (and possibly Swarm as well). This, in fact, does not increase decentralization but gives us the opportunity to find the contents of a storage when we need it. This shows that the version stored on the ENVIENTA server won’t be superior and the system is indeed decentralized.
How is blockchain put in the picture?
If somebody creates a project, they can publish it onto the Ethereum blockchain. This serves multiple purposes. On one hand, since the project storage is decentralized (several ENVIENTA-like storage can run in the ecosystem), so the blockchain is the central location which serves as an integrated record to the projects. From this point of view the smart contract which is for the registration of the projects is similar to the Ethereum ENS name service, but one difference, you can search for projects not only based on names, but also based on contents. A database can be built by monitoring and indexing the registration entries, which can help find the projects in the whole ecosystem, due to IPFS, even in the cases when they are only on the users’ computers. In this regard it can be comparable with torrent trackers, where the central storage stores only the access to the contents, and the users can obtain the contents from each other.
Writing to blockchain is a kind of time stamping because it can prove that a given content existed at a given time and the publisher of the contents (who wrote it to blockchain). This, though, does not replace the complicated and costly procedure of patenting but it could be enough to prevent others from patenting open-source products which would break the distribution and development of the certain product.
Validation of the products takes place on the blockchain, as well. This means that a given project can require the qualified validators of ENVIENTA to evaluate the plans from professional aspects. This is a precondition to the product to be put into manufacturing (e.g the producers can only choose from products which functions well and not dangerous etc.) At the same time a product can be banned from the platform by the validators if it is not in line with the directives of ENVIENTA (e.g somebody uploads the plans of a weapon). Choosing the validators is decentralised, based on reputation but the details are still being elaborated at the moment.
What is ENVIENTA token for?
In the ENVIENTA whitepaper we defined several use-cases for tokens but the most important is probably to support the projects. The ENVIENTA open-source licence structure is still being developed but its important element is that if somebody sells a product they — in the name of fair-use — are obliged to support the project which developed the product and this support should be in ENV tokens. It can be regarded as a kind of licence fee, product tax or obligatory donation. The ENV tokens needed for paying the fees can be obtained by the producers on the crypto-stock exchange from the users who own these tokens. The tokens incoming to a certain project is shared between the members by a smart contract, or they are stored in a pool, which can finance the further development of the project. The members can sell the tokens obtained this way via stock-exchange (mainly to producers who guarantee constant demand), and the circle is complete. The usage of tokens makes accounting much easier (let’s not forget that a project can have hundreds of members all over the world), and since the exchange rate is defined by the relationship between demand and supply, it is independent of the traditional monetary system.
Why has a PHP-based portal been developed over a blockchain project?
If you look at the presently available sourcecode, on the ENVIENTA platform, you will find a PHP-based Laravel portal. Although the project is currently being developed by a relatively heterogene company (e.g. I usually use Java to develop), we have chosen PHP because it can be hosted anywhere and learned easily by anyone. We want to achieve the long-term goal that the ENVIENTA platform could be a real community project and anyone (e.g. an enthusiastic Maker) could contribute if they want, and PHP is the most suitable for that. It is not a coincidence that the most popular CMS and blog systems (e.g. WordPress) are written in PHP and Facebook is also PHP-based (although they are using a modified version).
It is also important to see that since the platform is not an actual software but an ecosystem, the opportunity is completely open to the development of other, alternative UIs. Anybody can set up a portal written in Ruby, Java, Go, JS, etc. or even a desktop client to browse and manage projects but even with the use of a command line Git client and Ethereum client the complete functionality can be achieved.
How is the module system of the ENVIENTA portal built up?
When developing the ENVIENTA portal extendability was a basic requirement, that’s why the portal itself focuses only on the functionality of the base (editing the contents of Git repositories) all the other functions are available in modules. The operation of the module system is similar to that of Facebook, which means that every single module runs separately on the service provider of the given module (free choice of server environment and programming language) and it is included in the portal in an iframe. The different modules can communicate with each other and the portal through APIs. Thanks to this construction every project can choose its tools they want to use. (news feed, issue tracker, chat, project management tools etc. ).
Hopefully everybody could get an outline of the decentralized structure which the ENVIENTA project wants to realize and we hope we managed to give good reasons for our decisions concerning development. It is important to see that we are at the beginning of the road and loads of things are waiting to be processed and realized but we already have a portal, where anybody can upload their plans and blueprints and further developments are continuously going on at a great pace.