Discover more information about the Enjin Platform core package.
To understand the Enjin Platform's real-time architecture, we need to examine how the Enjin MatrixChain is organized alongside the Enjin Platform, the Enjin Wallet Daemon, and your application.
We have developed the Enjin Platform package to streamline the process of integrating with Enjin's blockchain, making it easier for you to interact with our platform.
The Enjin Platform Package is open-sourced and self-hosted; you will have complete control over your data and wouldn't depend on a third-party server & service.
The Enjin Platform package simplifies blockchain actions for game developers by removing the need for encoding, signing transactions, and understanding complex technical details. The package consists of three main components:
With our package, you can make use of an indexer to efficiently retrieve blockchain data by indexing it. This approach is much faster than directly querying the chain. Additionally, indexers allow you to create relationships and apply filters to data items that cannot be achieved through direct chain queries.
With the Enjin Platform, developers can subscribe to events and receive real-time updates on any on-chain activities, eliminating the need to constantly poll the API for changes. This feature saves developers from the hassle of encoding, signing transactions, and understanding the technical intricacies of the blockchain, making blockchain actions much more accessible.
The Enjin Platform's indexer allows developers to retrieve blockchain data faster than querying the chain directly by indexing the data. To efficiently retrieve the indexed data, developers can utilize a flexible and efficient API. That's why the Enjin Platform has chosen to use GraphQL as the primary source of data retrieval. GraphQL enables developers to retrieve only the necessary data, reducing bandwidth usage and increasing application performance. With GraphQL, developers can fetch and filter data in a single request.
- Request for user proof;
- Authentication request;
- Creating managed wallets;
- Wallet linking and switching;
- Asset transfer and management;
- Enjin Beam support;
- Fuel Tanks support;
- Marketplace support.
The Enjin Platform indexer is designed to minimize the blockchain's storage and database growth. Indexers organize data, making it easier for developers to retrieve the necessary information.
- Data Management Tool
The Data Management Tool provided by Indexers helps in organizing and structuring the data available on the blockchain. By digesting the blockchain inputs and creating a centralized database, Indexers make it easier for game developers to retrieve only the specific data they require, instead of having to go through all the data on the blockchain.
- Quick Sync Method
The Enjin Platform offers a quick sync method that enables developers to fetch and store the most recent state of the blockchain in a pre-packaged index. This saves time and effort that would otherwise be spent on syncing the entire blockchain. The "Worker" service oversees and manages all the blocks produced in the blockchain and parses all extrinsic events in each block.
- Auto-Healing Feature
The Enjin Platform includes an auto-healing feature that continuously monitors the health of the database. If any issues arise, such as corruption or a saving mismatch, the platform automatically re-syncs with the current chain state to ensure that all data is correct and up-to-date.
The Enjin Platform emits events to the WebSocket channels to notify clients of any activity on the platform. For example, when a new collection is created, the Enjin Platform API emits an event to the relevant channel, allowing clients to take appropriate actions.
To receive these events, clients need to subscribe to the WebSocket channel of their wallet using the Enjin Wallet Daemon. The Enjin Wallet Daemon continuously asks the Enjin Platform API if it has any transactions to sign, but it also listens for events on the WebSocket channel.
Overall, events play a crucial role in enabling real-time communication between the Enjin Platform and clients, allowing for seamless interaction with the platform and the creation of dynamic user experiences.