Hello BitCar community!
Continuing from the previous #BitCarTEC article, today we spoke to Alejandro, our newest backend developer who you all met in July. We sat down to talk about his progress on the platform, what he’s done and what challenges he faced along the way.
Alejandro explained that several components and third parties are considered in the platform’s architecture design, these are: UI/UX, Smart Contracts, Ticker Updater, and Cryptocurrencies Exchanges (see diagram below).
Platform architecture design.
Alejandro’s main effort so far has been focused on the development of the smart contracts that allow Role Based Access Control of the services available on the Platform. The implementation considers the following Roles for the users of the platform:
Agents: Group of people submitting exotic cars into the platform in order to be tokenized.
Traders: Group of people selling and / or buying tokenized exotic cars.
Administrators: Group of people responsible for the maintenance of general information, catalogues, news feeds, etc.
After doing research regarding what framework to use, the Team selected OpenZeppelin as the best code base for some of the particular needs of the project.
Alejandro has shared some challenges faced whilst developing the Role Based Access Control smart contracts. Those of which include Multisignature capabilities and security. For the implementation of the Access Control contracts, some premises where followed:
A. Different Users may require different functionalities.
B. Some functionalities within The Platform may require multiple confirmations (multisignature mechanism) from a group of users with special permissions. This is for preventing unilateral actions.
C. User role validation capabilities should be available for all the contracts Platform wide.
D. Ownership of the Platform should be distributed.
Different Users may require different functionalities
For this particular scope the Team decided to implement single contracts per User Role, that allows us to implement custom functions for the different functionalities required for The Platform.
Some functionalities within The Platform may require multiple confirmations
In this case we developed a different contract that other contracts may inherit from. If a particular functionality needs to be triggered using a consensus among several users, it is performed in two steps: first some member of the authorized group needs to make a request for execution of the protected functionality, after this (and based on a minimum number of confirmations that can be configured) other members of the authorized group confirm the request and when the minimum number of confirmations is reached, the code is executed.
User role validation capabilities should be available for all the contracts Platform wide
For this, a new contract was implemented and, by using object composition we added all the different groups validation capabilities that other contracts can inherit from. For instance, if a particular contract requires validation for function execution for different roles, the developer would only inherit from this contract and all the functions/modifiers needed for this would be available.
Ownership of the Platform should be distributed
For this feature in particular The Team is still doing research on the most efficient and secure way to implement it.
So far, the progress of the development of The Platform is the following:
Approx. 40% of the platform is completed.
As you can see in the figure above, progress has been focused mainly on the back-end implementation of the platform.
The development team are working extremely hard in ensuring that the platform is built to perfection and is fully decentralized. We would love to hear your feedback, especially if it helps solve some of the challenges being faced now by the development team. Feel free to comment below or message us in the telegram group with any feedback, as all constructive criticism is welcomed.
As always, follow all of our social media accounts to stay up to date with the latest happenings, and join our Telegram group to speak directly to the BitCar team.