Comparison: Decentralized computing
Overview of protocols to watch to spare server hosting costs in a decentralized manner
The recent tragedy of Tornado’s prohibition pointed out an issue coming into the web3 and its capability to keep applications decentralized and free to use. This issue is caused by multiple factors combined together:
- Early development stagy in the industry
- Difficult path and set of conditions to achieve that
- Human nature to keep always some advantage in any environment
Ideas of decentralized computing resources could become a tool to avoid or at least mitigate the impacts of regulators’ decisions to erase web content from the surface.
In addition, a network powered by both home and enterprise resources in their idle period would optimize costs of hosting servers no matter if censorship resistance plays an importance in their existence. Such cheap resources could decrease maintenance costs multiple times of:
- Gaming servers
- Blockchain nodes
- Web application servers
- Dapp servers
- Serverless computation
This article will overview protocols related to the topic of decentralized computation, how they work in a few words and how you can use them. The list includes:
A. Off-chain computation
The first two protocols serve as open platforms for providers of computation resources (node providers) and consumers (apps), their core concept is to create an environment profitable for all actors, using blockchain to economically incentivize providers and keep the business transparent and correct.
Besides on-chain protocols, they don’t use smart contracts to actually process server transactions and operations… which means you can run Node/Java/PHP servers with a cloud-like experience.
Akash network is a decentralized cloud marketplace, users could purchase or provide computing resources in an open market, maintained by validators and governed by stakers.
Resources could be paired via desktop application Cloudmos available on Windows, MacOS or Linux. User defines in UI required capacity of CPU, RAM and Storage, technology stack running on the server and then find matching resources with the best parameters (availability, price).
Network capacity still offers plenty of space with current growing usage:
- CPU: 700/3600 cores
- RAM: 800GB/17TB
- Storage: 10TB/180TB
- At least 5 AKT in wallet balance for payment
- Certificate generated on chain via desktop application
- Dockererized image from scratch or one of ~70 predefined templates (Wordpress, Drupal, SQL/noSQL databases, Defi, Grafana…heck there is even template for a Minecraft server :) )
Although the project looks down with a devalued AKT token and its low market cap, service usage seems to have slowly increasing trend thanks to the business development with companies like:
- Chia: PoW chain mining with a disk space, where Akash can provide cheap space for miners to involve.
- Thirdweb: One of the best web3 dev tooling in space
- Spheron: Decentralized “Netlify” on Polygon
- Osmosis DEX: Protocol designed to become one day truly decentralized DEX in Cosmos ecosystem.
Akash communicates updates transparently and clearly on their YouTube channel, I’m trying to find there answers to a philosophical question of whether they could compete in 3–5 years from now if I imagine which companies from the traditional web industry could potentially compete at some moment.
And even though Akash achieved incredible piece of work with huge potential in this decade I see there two potential downsides:
- Centralized aspect of Cosmos-based chains, after one-minute analysis it’s possible to see same patterns for most of the Cosmos validators. There are around ~100 validators from where the top 10 companies share 51%+ of the network. I don’t say it’s a huge problem right now but it’s fact needed to mention each time Akash presents itself as “censorship-resistant” protocol.
- Slow development, all the pieces in Akash ecosystem are still in the early stage and need a lot of optimization to prove themselves as a mainstream solution, even though the team moves forward and released an optimization package called Mainnet 3 in April, the tempo is relatively slow, only few core devs commits regularly to the codebase — from which one recently left (rumors say arrested due to the Tornado involvement)…They will have a hard time looking at what’s going on in Flux, or Dfinity which is shipping like a beast…or like a well-organized tech corporate.
Flux (formerly ZelCash) maintains its market of node providers and consumers with their operation system FluxOS, synchronizing computation capacities throughout the network.
Over 13 000 nodes! are already part of the network with underused capacities for about ~300 registered repositories, smashing costs of offered resources multiple times below services in Digital Ocean or Heroku.
- CPU: 96 000 cores
- RAM: 270 TB
- SSD: 5.91PB!
- HDD: 109 TB
Requirements for server deployment on FluxOS per guide:
- Zelcore wallet and generated decentralized identity (Zel ID) charged with FLUX token for service payment
- Verified docker repository in Flux registry
- WSL 2 for Windows devs to operate in a Linux environment
Providers could choose from 5 different models based on entry stake and technical criteria. Models are diversified to attract both “home” enthusiasts and enterprise-grade infrastructure.
So far the cheapest model Cumulus could be installed beside your PC and also on Raspberry Pi 4B or NVIDIA Jetson Nano (one of Flux’s partner). Larger resourceful enterprises would prefer the Stratus model with cca income $500USD/month and requirements of 8 CPU cores and 64GB RAM, with a goal to bring enormous capacities into the network and at the same time to optimize the company’s own costs of unused resources…enterprise product direction is proven by the announcement of a partnership with telecommunication giant Lumen, pushing the large-scale game step forward..
Flux’s marketplace similarly to Akash offers a bunch of predefined templates for easy deployment and price estimation, but the list of options is limited in comparison with Akash and most users will have to deploy from scratch.
2.1 DPS (Bit about decentralization in mobile app world)
An interesting announcement came recently about a partnership between Flux and Dapp Play Store (DPS).
DAPP PLAY STORE PARTNERS WITH FLUXLABS
Granting access to decentralized applications to the public, Dapp Play Store strikes a new deal with a solution-based…
This integrations allows DPS to build a decentralized alternative to Google/Apple and store app files in the background to FluxOS…which works on paper. Realistically DPS itself could be prohibited (in theory) by the phone manufacturers themselves and end the fun soon after start.
Even though I like the idea of bringing a piece of decentralization into mobile native applications, I just don’t see the decentralized store is the solution. In case one of the apps would be tagged as abusive by regulators, manufacturers would be forced to blacklist DPS if DPS won’t discard such app itself…In that case DPS would probably have centralized mechanism or DAO to eliminate conflicted app and end the idea of absolute freedom.
Personally I would choose rather PWA (progressive web apps) as more censorship resistant solution of this problem. Browser like Brave could cover the app with a layer of protection to run app anonymously and securely.
But if you’re building defi or gaming app on mobile for example and need to grow business, then why not to try…I can imagine first steps to achieve noticeable level of awareness are pretty tough, deployment of mobile app into DPS could be free marketing tool to support your story, nothing bad about that.
B. On-chain computation
Protocols in this category are using smart contracts to process operations and change a state in decentralized storage, serving as an alternative way to traditional backend structure…or rather as an enhancement to the blockchain world which does not have any disk space on its own.
3. Internet Computer (ICP aka Dfinity)
Internet Computer smashed marked last year as a highly anticipated blockchain technology, different from anything we know in web3, although ICP price was crushed ($500 -> $6) due to its overhyped campaign and many retail investors are crying at home after their decisions, the project is definitely not dead, working on the way how to get more respect.
Dfinity/ICP developed its own architecture to organize both transactions and storage in a decentralized manner using components:
- NNS — Management of connected nodes based on an open governance system. Bringing together nodes from multiple data centers.
- Subnets: Group of subnetworks collected by NNS, hosting parts of smart contracts (canisters) in the network with a system of replicas to back data of another group.
- Nodes — Blockchain nodes processing canister requests, maintained by Data centers
- Canisters: Replacements of smart contracts, containing both compiled code and dependencies for a service. Containerization allows applications to be decoupled from the environment.
- Motoko: Programming language close to Rust utilized for development in Dfinity environment
These Canisters are key to processing HTTP requests and public API (something no blockchain can do), it in theory means Dfinity would be able to integrate with ANYTHING, currently aims to bring smart contract capabilities to Bitcoin.
BTC/ICP integration is a bit out of the article scope, if interested I recommend to start from their site, learn concepts how they achieved that and then think if it philosophically does make sense :)
But why I’m talking about Dfinity, we can actually run there frontend applications with two options:
A) Connect the app with canisters on your own
This more painful way requires to:
- Create a project using the Dfinity SDK
- Use certified asset canister written in Motoko and configure React and Dfinity project together
- Maintain local environment to run canisters
The process itself is not so difficult but represents an unnecessary obstacle to learn and operate new environment, new language, and face possible errors not previously seen and solved in StackOverflow. All of that for a know-how right now not reusable in other coding spheres.
B) Use Fleek
Fleek built a layer on top of static decentralized storage to deploy frontend applications and do some dirty work instead of you in the background. Similarly to Netlify, user is able to connect GitHub repository in a few clicks, choose which platform to deploy on (IPFS, ICP) and which frontend framework to build with.
Deployment experience is familiar to Netflix’s and for free. Builds takes a while to process even for smaller applications and success rate of the result depends on the frontend’s complexity and framework.
I tried to deploy my humble React D3V Library on both IPFS and ICP and hey :) seems like I created my first “decentralized” web.
- After 15min process my site was deployed and accessible on IPFS without an issue.
- After 10min process with ICP I got some errors I know shit about and rage left the app :D but close enough.
Fleek gives smaller websites like mine just what I need with
- Custom domains, ENS, HNS
- Automatic deployment
- CDN cache
Paid pricing plans offer larger storage, guaranteed uptime and team projects. Compared again with Netlify, Fleek’s “Business” product includes 99.99% uptime SLA which Netlify gives only on Enterprise demand.
Of course, Netlify provides a ton of additional features, plugins and reliability it will work…but Fleek develops slowly into something you may trust one day if your website’s content is controversial for political or regulatory reasons.
4. Filecoin FVM
Filecoin Virtual Machine (FVM) is designed to unlock a computational layer on top of its storage with the introduction of smart contracts.
The difference between FVM and EVM (Ethereum Virtual Machine) is Filecoin’s WASM-based core written in Rust, although Solidity smart contracts are not supported in the initial phases, Filecoin will open the door for EVM builders by interpreting contracts from Rust to Solidity with SputnikVM and revm.
💡 EVM compatibility is projeted into the Milestone 2.1, Nov.2022, together with all network upgrades available in Q1 2023
Right now we can only speculate how large difference-maker this concept could become, Filecoin is trying to gather inspiring ideas with a bunch of hackathons and see builders in action, how can they use it, for example:
- Decentralized data markets = tokenized data sets for sale (like Ocean)
- NFT dapps with media stored on-chain
- Time-locked data retrieval
Web3 desperately needs innovations to prove itself as a legitimate technology in the current web technology hierarchy, FVM brings to the table welcomed additions previously not seen:
- Adds new meaning for Solidity outside the Defi, NFT and small other exceptions
- Enhances smart contracts with capabilities to manipulate large data sets
So…there are several options in the category of decentralized computing you can go with, the choice depends on how your app looks — what’s the tech stack and its purpose.
If you run an already centralized or hybrid web application (centralized frontend AND backend + blockchain interaction) with the intention to avoid ban of your business or to optimize maintenance costs, you’ll want to check out Akash and Flux, their pricing conditions and the process of deployment, which is slightly more complicated than deployment in traditional space.
Flux is getting recently much better traction than Akash thanks to its heavy partnerships, larger resource fond and more active development, setting itself as an industry-leading tech for now.
If you are building a decentralized app from scratch where each transaction has to be processed on-chain and the dapp requires storage space outside regular block size — subscribe to the latest news in Filecoin or Dfinity, you may come up with an innovative idea to make blockchain useful in IT overall.
Filecoin’s FVM potential is still subject of debates until we see deliveries and projects using FVM. One day it could play a significant role in the connection between Big data and blockchain space for advanced enterprise BI or AI use cases.
Dfinity seems for me like technology capable anything by removing technological gaps between web2 and web3…but realistically that’s something no one asked for yet. Tech still under construction is trying to find its place in mainstream without major success.
On the other hand, Dfinity’s corporate-sized resources and dev team could deliver features much faster than competitors, there is a high probability we’ll hear again about their achievements and with excitement debate what kind fo systems we can build using ICP