Author: Dr Taras Filatov (c) 2020-2022
Dappros Platform is Web 3.0 platform enabling businesses and communities to quickly and cost efficiently implement their own Web3 / distributed ledger technology (DLT) solutions.
Our platform can be classified as “Blockchain-as-a-Service” however it goes way beyond that. Dappros Platform offers a Communication layer (chat/messaging, push notifications etc), mobile app available for iOS and Android with social sign-on and social account based custodial hot wallet infrastructure etc.
Ethora project – the all-in-one tokenized community app. Ethora is an open-source codebase smartphone app client written in React Native that offers the client-side implementation of many functions and APIs of Dappros Platform. This project is an important part of Dappros Platform. It is made open-source to enable community to evolve and customize it in their own implementations.
Architecture of Dappros Platform
The architecture diagram of Dappros Platform is provided below.
Usage modes and Applications
The platform can be used in the following main modes:
(1) Cloud blockchain-as-a-service Platform. Many projects use the platform in this mode where they simply create an account and create Applications under Dappros Platform Cloud. These projects all share the same blockchain network and pay monthly or annual subscription fees (or remain on a free account) to support the maintenance of the platform and receive technical support from the SLA team. This deployment of Dappros Platform has the latest stable version of the platform codebase and offers connection to Ethereum Mainnet through Anchoring and Token Bridge smart contracts.
(2) Private Blockchain. An option popular with enterprises and groups of partnering businesses where they benefit from all the technologies and product advantages of Dappros Platform while at the same time enjoying the advantages of 100% dedicated infrastructure capacity and privacy of the data. In this case, Dappros Platform is deployed as a private blockchain and application nodes network with only selected parties having access to the nodes. This configuration may be useful in situations where parties need a “trustless” decentralized and auditable log of mutual transactions, shipments etc without any of the parties being a gatekeeper, at the same time without anyone outside the consortium having access to the data.
(3) Private Sidechain (L2 / Mainnet connected mode). This option is similar to the abovementioned option of the Private Blockchain, however in this configuration the network may be open to the world fully or via mainnet hashing / anchoring. This configuration is useful when parties want to leverage the advantages of a blockchain system at the same time without having to pay high transaction fees typical for public “mainnet” blockchain. This could be used, for example, to provide tokens issuance and trading at no cost within the sidechain along with an option of at-cost export of such tokens to mainnet. This may also be useful in situations where parties would like to exchange information securely between each other and without the world having access to the network nodes, however at the same time retaining the possibility of being able to prove to any outside party that certain internal transaction has taken place. This is achieved in case where a set of internal (sidechain) transactions is regularly hashed and such hash is stored (“anchored”) onto mainnet. Thus enabling “zero knowledge proof” mechanism where the world does not know of the contents of internal transactions, but can verify via cryptography that certain transaction or content has existed in the sidechain should such verification be required in future.
Figure: Architecture of Dappros Platform
Application and API layers
API layer of Dappros Platform allows user-facing Applications (clients) as well as 3rd party server-side applications (backends) to interact with the blockchain. Unlike dealing with blockchain transactions directly via Web3 and RPC, Dappros Platform offers an easy to use REST JSON API which additionally offers a convenience of higher abstraction levels and is better suited for business logic integration.
Full documentation reference of Dappros Platform API can be found here.
There are following main modules or routes of the API layer:
Authentication – allows Applications and Users to authenticate with JWT token
Users – allows to handle Users entities, their wallets, contacts etc
Tokens – allows tokens manipulations such as mint, transfer etc (works with ERC-20, ERC-721, ERC-1155 and other common standards)
Ethers – allows ETH operations
Explorer – allows to retrieve blockchain transactions
Wallets – allows to handle crypto wallets of Users and entities
Apps – allows to manage Applications within the Platform
Owner2Apps & Errors – service APIs
Notes and modules
Listed below are the important modules and parts of Dappros Platform.
API and Application layer – core layers of Dappros Platform enabling multitude of use cases around Users, Tokens, Transactions etc. Excluding some internal / core technical services, most of these are exposed via RESTful JSON API layer for external applications to connect to. Also used by internal applications such as Web Dashboard.
Web Dashboard – web application providing management, control and analytics functionalities to Dappros Platform customer / owner accounts. This can be used, for example, to issue a new token, to review transactions in the blockchain Explorer, to manage users of the Application or review their statistics such as tokens ownership, transactions volume etc.
Custom dashboards can be built by Dappros Professional Services, our integration partners and 3rd party developers using DP API. One of such examples is TracyChain which is a Dappros Platform application focused on logistics and supply chain use cases.
Private and Public blockchain – Dappros Platform runs its own “private” Ethereum blockchain network which enables fast DLT transactions. In addition, gateway to public Ethereum blockchain enables applications and use cases that require to issue global tokens or interact with public blockchain tokens, smart contracts, wallets and transactions.
Caching & DB layer – while cryptographically protected immutable ledger remains the source of truth for data in Dappros Platform, the DB and caching layer is provided to speed up operations. This enables applications to obtain immediate response via API and then verify it via blockchain in asynchronous manner.
IPFS and S3 – developers may choose whether to choose ‘centralized’ AWS cloud or decentralized IPFS network for binary files storage.
RTC Server – a collection of real-time communication services built with open-source components by our partners DeepX. Uses ejabberd chat server at its core enabling it to support high-load messaging at scale (notable applications include WhatsApp etc). Dappros Platform widely uses RTC features to provide seamless “connected” experience to end users. For example, Push Notifications service sends an update to user’s mobile device when user has received a token transfer from another user.
Client-side applications – any 3rd party developer can build an application or launch a whole new ecosystem leveraging the functionalities of Dappros Platform including tokenization, distributed ledger technology and real-time communications. Currently Dappros provides ready-made applications for React Native and React.js platforms which enable support for most of the devices including iOS and Android nowadays. However client-side integrations are not limited to any platform, as long as such platform can consume JSON API, XMPP and Push Notifications, the latter two being optional, for real-time updates.
Token economy
Dappros Platform implements a self-sustainable token economy based ecosystem which in turns allows Application Owners to create their own Communities and Ecosystems based on top of it.
- Ether – there is a free internal Ether or ETH that is automatically replenished by a gas station bot to all users/entities who need it
- DPG – Dappros Platform Gas (DPG) is a utility token that is used for many functions within the Platform, for example to use the infrastructure, mine tokens, use certain Bots, call mainnet smart contracts etc. DPG can be earned automatically through users activity, as rewards from other users, for contributing to the Platform and its R&D as well as for running Validation and Content nodes of the Platform.
- Application Coin – Application Specific Coins (based on ERC-20 token) that enable token ecosystem, gamification etc functions within specific Applications and Ecosystems. Application Coin are interchangeable with DPG.
Dappros Platform has some in-built Token Economy mechanics such as free allocation and top-up of internal Ether, allocation of 100 Application Coins to all newly joining users, allocation of 5 Application Coins as a reward for signing in at least once per 24h, mutual rewards for useful content / chat messages by Users etc. Additionally, Dappros Platform -based Applications can extend and further develop their Token Economy via their own custom business logic or Bots. Certain Bots are provided by Dappros Platform such as Notary Bot, Prisoners Dilemma Bot, HutHut Bot etc. Bots are special Platform applications that combine a smart contract and an XMPP based chat bot.
Github
The source codes, documentation, validation and content nodes packages as well as other components of Dappros platform can be found here: https://github.com/dappros/
Please note some components of the Platform may only be available for enterprise customers and/or certified integration partners or node owners.
Ethora project codebase is available here: https://github.com/dappros/ethora