One of the biggest problems we’ve faced at BlockApps is managing and moving off-chain data through the network quickly. While some elements of blockchain applications are inherently decentralized, such as smart contracts, components like off-chain data, app resources and metadata are more costly to store on the blockchain, and therefore are more difficult to decentralize in the same manner. Apex, a recent addition to our blockchain tech stack, helps us and our users to use blockchain and our relevant APIs more effectively by making off-chain data, app resources and metadata easier to manage and pass around the network.
What is APEX?
1- On one hand, Apex acts as a Node management and health monitoring API server. Health checks are performed as each node connects with Apex. On a local node, Apex performs deeper health checks such as analyzing CPU usage. By collecting and pushing a node’s health data to STRATO’s management dashboard, Apex enables users to see up to date network health checks in addition to providing other relevant data.
2- Apex also plays a large role in dApp Deployment & Discovery. When users deploy dApps to a node, Apex registers them to the blockchain by adding their metadata to an app-metadata contract. Apex helps users discover dApps that already exist by checking the metadata contract providing details about dApps across all nodes to the user on a single node. In this way Apex acts as dApp metadata sync engine. Apex constantly checks to make sure each individual node has all of the dApp data present on all other nodes. If not it will go find the dApp data on the other nodes and if a user wants to use an app from a different node Apex will download the package which includes the app metadata and front-end UI files automatically to the user’s node, making it available to them. Apex uses a built in server that sends dApp launch assets quickly and efficiently across the network to any node.
Most importantly, Apex enables BlockApps’ blockchains to perform these functions faster than ever before by constantly checking data from all nodes and APIs and looking for any changes. Whenever Apex notices a change on the network it automatically sends an update across the network, informing users and updating application files.