Caching blockchains for fun and profit with Menlo Core
Menlo One is a framework for building decentralized applications which have the same user experience as their centralized forefathers. Todays dApps simply don’t compare with a traditional cloud hosted app in terms of cost, usability, and most importantly speed. Our goal with Menlo Core is to fix that.
To provide a very high level overview of the system: Menlo Core is essentially a traditional web 2.0 backed application which caches data pulled from various blockchain networks, and indexes them in a traditional database. The concept is not dissimilar from a webapp which leverages an external database service, but caches data locally. Menlo Core is written in Node.js, and provides the skeleton for making a RESTful web API. It’s designed to be consumed by a client-side Single Page Application front-end. It’s designed to be easily hosted on a traditional cloud provider.
We call this a “Content Node”. While this may sound very traditional at first, the paradigm shift from the web 2.0 is that there are multiple content nodes all serving the same data and running the same backend software. The user connects directly to them as they would connect to a peer in a peer-to-peer network. The Content Nodes are operated by completely independent parties. The outcome is a development environment and web architecture very familiar to most developers, and easily allows for a user experience very familiar to most users. Except this architecture is completely decentralized, with out a single point of failure, and resistant to even a state level attack.
How Content Nodes earn tokens
Obviously there is dollar cost to hosting a webapp in the cloud. Content Nodes are incentivized by being paid in Menlo’s ONE token for providing this service. When a user connects to a content node and receives data, the user then validates that data with a smart contract. If the smart contract can validate that the content node successfully delivered data to the user, the smart contract pays the content node, as well as the user with Menlo’s ONE token.
We’ve designed Menlo Core so anyone with a basic understanding of network systems administration can easily deploy a content node and begin passively earning tokens. All someone has to do to host a Content Node is configure the environment, deploy our Docker container, and run the the installer. The installer will download the server application which is written by the community. Users will begin to connect to you, and you’ll soon start earning ONE tokens.
1. Publisher buys ONE tokens.
2. Publisher saves data to Blockchain, and Content Nodes (via Gossip).
Publisher also sends ONE tokens to blockchain to later pay Content Node.
3. Content Node caches data from Blockchain.
4. Users requests data, and Content Node serves data to User.
5. User checks with Blockchain that Content Node did not tamper with data.
6. If Content Node gave User un-tampered data, Blockchain pays ONE tokens to Content Node for their service. Blockchain pays ONE tokens to User for checking in.
7. User and Content Node could sell ONE tokens for another token. (or they could use ONE tokens on another Menlo One dApp).
It’s worth noting that all the transactions (except for the last) happen behind the scenes. On the client side all of the Blockchain transactions are automated with the integrated Menlo Wallet which does not bother the user to approve those system transactions.
The result from the users perspective is perfectly smooth experience, no different in terms speed or useability. Yet this system is decentralized without a single point of failure. If for some reason a Content Node goes down, there are many to take its place.