Digix 2.0 Software Architecture — Technical Update

DGX 2.0 Overall Architecture

Here is a look at Digix 2.0's Overall Architecture covering Frontend UI, Backend Servers, Ethereum/IPFS integration and various peripheral services. We believe that this general approach will provide an optimal performance and user experience and as a framework, lay the foundation for similarly complex and enterprise level Dapp developments on Ethereum.

For less technical readers, we included a brief description for some of the above processes below. We want to play our part in improving the overall base knowledge within the Ethereum community, so that even a non technical user of Ethereum can be better educated about the technology we all believe in.

To start, the green boxes above represent microservices built on NodeJS that makes interactions with Ethereum much more efficient, scalable, and reliable.

Events Worker, for instance, listens for transactions that involve Digix contracts; DGX/DGD/Assets/Minting, etc. and save them to an easy-to-query database for future reading. This makes it more efficient than reading the blockchain directly for every request, and allows for the history of multiple different transaction types concerning the same account to be queried with a single request.

The Web3 Worker is used for creating Ethereum transactions. It includes a queueing system for executing transactions in a more reliable and scalable way on the network, so that the Ethereum Node the worker talks to does not get overloaded with requests.

3rd Party Contracts are free to interact with DGX when we launch. Users have the option of using the interface we provide, but can also use Mist or other interfaces; our system, like any other Ethereum contract, can be directly interacted with in a decentralized way.

* HTTP is the Traditional Web Interface (Web 2.0) which allows for anyone to access the application from their browser or mobile device without downloading anything 
Web3 JSON RPC is Ethereum’s API, meant for communicating between a javascript application and an ethereum node and for reading and writing to the blockchain
Contract Function Call is a transaction within the Ethereum Virtual Machine that causes an effect on the state of a contract
IPFS, also know as the InterPlanetary FileSystem, is a decentralized datastore for saving and distributing media; “the permanent web”. We use it for saving images of the certificates and audit reports of the assets on our system.

Below, we provide an overview of how our DGX 2.0 Smart Contracts are newly structured as presented at DevCon 2. Contracts have been intentionally broken up into modular, manageable pieces designed to limit attack vectors and to make testing and upgrades easier. Upgrades to specific parts of the system can even be decided on-chain, which opens up interesting possibilities for DigixDAO in the future.

DigixCore contracts architecture

Our DigixCore Contracts architecture will be further elaborated upon in a future post. Thank you.