Yesterday I decided to dive into the Blockchain As A Service (BaaS) rabbit hole after finding an April 12, 2022 tutorial by Quick Node on "How to connect to the Ethereum network using Ruby". I thought that since April 12 was less than two months ago, this tutorial would be useful. So, let's start with QuickNode.
QuickNode
QuickNode has both a recent tutorial and a home page code snippet on how to use the ethereum.rb
Ruby gem to quickly connect and query the OpenEthereum blockchain. The first thing I noticed was the this ethereum.rb
would not compile. Then I noticed the gem was obsolete (and been deprecated) and unsupported. I thought this was "strange', but I pressed on down the rabbit hole.
Not easily discouraged, I decided to fork the ethereum.rb
gem to see if I could get it to work; and after making some minor changes, I was able to get a forked version of ethereum.rb
to compile. I'm confident in my always-learning Ruby skills and I generally can "fix" most Ruby gem problems (and other Ruby errors), and indeed it was not difficult to get a forked and modified version to compile.
However, I quickly learned that the QuickNode tutorial for ethereum.rb
called out using the OpenEthereum blockchain in their console, which was not supported by QuickNode any longer. In fact, the OpenEthereum blockchain had also been deprecated (not directly related to the ethereum.rb
deprecation). It seemed my rabbit hole adventure was a plunge into the depths of deprecation!
My thoughts about QuickNode at this point were losing positivity. QuickNode wanted my credit card for a 7 day trial period based on tutorials (dated less than 2 months old and on their home page) based on deprecated code and depreciated blockchains. Not good, I thought; so I fired off a message to QuickNode support. To their credit, they replied quickly and apologized for the deprecated, broken code and offered the eth
gem which I was already familiar with. They also requested the URLs of the obsolete tutorials, which was a reasonable request. That was yesterday, and today the QuickNode home page still has the depreciated ethereum.rb
gem as their example on their home page.
After experienced this disappointing quality of code samples and service, not to mention the short 7 day trial period requiring my credit card for the privilege of testing their depreciated tutorials, I decided to continue down the BaaS rabbit hole with kaleido, Alchemy and Infura.
To my surprise, I found these BaaS offering less developer friendly than QuickNode. At least QuickNode tried to make Python, Ruby and other API wrappers available for developers with basic code snippets. They tried to actually support developers beyond the lowest level basics. Let's talk about kaleido.
kaleido
Kaliedo looked promising. At least they did not demand a credit card to try their service. However, I quickly learned that their console was too high level, full of way too many screenshots and not enough working code. I quickly became bored clicking away in their console and looking at screengrabs with tiny print (very hard to read) to do things that I have been able to do from the command line (CLI) with blockchains, directly.
However, the "last straw" for me with kaliedo, was the seemingly complete lack of support for Ruby or Python or any higher level programming language at the tutorial level to make getting started very fast. The kaleido API docs were based on curl
. This is something we typical see at the "bottom of the barrel" of API docs, so to speak. For example, a "not enough funded" IT team at a bank in a developing country typically might have their API docs based solely on curl
. However, for most developed companies with a reasonable IT budget, their API docs go far beyond curl
and they will typically have Python libs, Ruby gems, and a lot of other API wrappers based on a developers favorite API. This is how we get started and save time. This is 2022 and every developer is used to having a lot of code to launch from.
After three or four hours down this rabbit hole, I was not "in the mood" to write API wrappers for kaleido yesterday. I have recently written API wrappers in Ruby for Bangkok Bank's currency exchange API and the Satang Pro crypto exchange; but then migrated to Binance and Kucoin where their API wrappers for Ruby (and other languages) are very functional and easy to use and to create apps, fast.
Time is money and precious, and what we want as impatient developers is to not have to write API wrappers for our favorite programming language. That should be done, even if not fully developed, by the API service provider. At least QuickNode, to their credit, tried to support developers in this respectful and thoughtful way. Strange their April 2022 tutorials were based on depreciated code and unsupported chains. Well, at least they "tried". On the other hand, kaleido has seemingly made no attempt, so it seems, to support developers beyond the most crude level of API support, curl
. I have written too much low-level API wrapper code over the past two months, and my "well has run dry for API wrapper coding", so to speak. I expected more from a US-based company.
At this point, searching the net for this level of "good API support" from Alchemy and Infura were inconclusive, but not promising, so I decide to take a break from plunging down the blockchain as a service rabbit hole.
Note: I will sync up with Alice and see if she want to go deeper down the BaaS rabbit hole later this week. So far, it's been a disappointing trip.