The Alonzo Blue testnet is live, and smart contracts on Cardano are coming soon. Yet, individuals and teams excited to contribute need convenient access to Cardano blockchain nodes for developing and testing applications.
Some may choose to host a node themselves. This is not overly burdensome due to Cardano’s lightweight footprint. According to blockchair.com, the blockchain size currently sits at 7.90 GB. Compare this to 347.22 GB for Bitcoin, 238.46 GB for Ethereum, and 163.55 GB for Bitcoin Cash. Documentation on running a node is available here.
However, for several reasons, others will prefer to interact with nodes via an API service. Such a solution requires no dedicated hardware, zero maintenance and is commonly leveraged by developers on other blockchains such as Ethereum.
Node Access Made Simple
Nada seeks to provide easy, mostly free access to Cardano nodes for developers and product teams. The proposal will implement a backend solution that will “maintain many horizontally-scalable pools of nodes.” Developers would receive API keys and accounts to interact with the platform.
The service is inspired by the likes of Infura. For those unaware, Infura is an API suite meant to simplify app development on Ethereum and IPFS. Among other conveniences, the service runs nodes on behalf of users. Overall, Infura addresses data storage, connectivity, and cost issues while expediting development cycles and making scalable solutions easier to implement.
And the service is extremely popular. According to ConsenSys, a blockchain technology and Ethereum infrastructure company, an average of 6.5 billion JSON-RPC requests per day are channeled through Infura’s infrastructure. This striking figure is surprisingly simple to explain: the company’s website reports its service provides request response times up to 20 times faster than self-hosted solutions.
Potential Pitfalls
That said, there are notable drawbacks of Infrastructure-as-a-service (IaaS) products of this ilk. In the case of Ethereum, critics allege Infura poses significant centralization risks. After all, the entirety of its traffic is the purview of a single corporation.
The issue came to a head November 11th, 2020 as Ethereum experienced widespread issues. Coinmarketcap.com explained:
“Ethereum experienced dramatic network outages and a possible chain split on Wednesday morning, November 11th, caused by infrastructure provider Infura’s use of outdated client software and an unexpected code change. Ethereum’s technical woes resulted in knock-on data and transaction issues on several platforms like Binance, MetaMask and Coinbase Wallet while developers scrambled to determine the cause and fix it.”
The difficulty resulted from the unannounced implementation of code by Ethereum developers aimed at fixing a consensus bug. Entities running outdated Geth clients, as was Infura, were unintentionally hard forked for a period.
In this way, it appears Infura was a victim of the success of its overwhelming popular product suite. Naturally, the Cardano ecosystem must remain wary of such risks if it opts to develop in a similar manner.
Nada: Nodes-as-a-Service
Nada proposes a service for free and easy access to nodes requiring no configuration. The product is the brainchild of Thomas Ruble, a cloud DevOps engineer at Google with a specialization in automation and enterprise scaling. Ruble’s writing on Google Cloud Functions is available here.
Several components are crucial to implementing Nada. According to Ruble’s proposal, Nada will rely on containerized Cardano nodes to allow for autoscaling and load-balancing. Users can use the Cardano command-line interface and a small utility program to direct TCP packets to the remote node. A sandbox virtual machine will also be available.
Everything considered, Nada aims at saving developers time and headaches by eliminating the need to maintain a node synced to the state of the blockchain. The product will require no technical knowledge and will be designed around usability. Interested users need only register with the service, and they will be given a URL whereby they can query their node’s endpoint. Nada will also provide a dashboard for easy lookup of their request count.
To limit abuse, the service will be free up to a certain number of requests, and request frequency will be throttled. Requests will also be capped per minute and 24 hour period. The platform will provide a generous amount of requests to its free-tier members, and premium-tier members will have an even greater allocation of requests. Fees charged to premium-tier members will be used to maintain the service.
Finally, Ruble’s proposal seeks $40,000 in funding. Half of the amount will cover 400 hours of engineering and DevOps work, $15,000 will be put towards one year of infrastructure costs, and the remainder will be put towards a website and marketing. Parts of the code will be released under an open-source (MIT) license. Critical systems will be closed-source for security reasons.
If you’d like to know more information or have questions/comments regarding Nada: Nodes-as-a-Service, check out the link provided: https://cardano.ideascale.com/a/dtd/Nada-Nodes-as-a-Service/340098-48088#idea-tab-comments