httXrp is a proof of concept for a truly serverless web architecture. If serverless simply means “a server owned by someone else”, httXrp pushes that definition to its limit.
Transactions on the ripple blockchain are allowed to carry up to 1kB of arbitrary data via the memo field. We can use this to store data of any size by building a tree of references between these transactions that can then be reassembled by reading them back from the blockchain. In order to generate these transactions a library called xrpio is used.
Highly simplified, you can visualize the process like this:
Using tools like webpack
, it is possible to condense even modern complex single-page-applications into a single html file. As xrpio
is written in JavaScript, it is even possible to embed it into such an HTML file, the use of which will become more clear a few paragraphs below.
Since such a condensed HTML file is effectively nothing more than a long string it is possible to use xrpio
to store them into the ripple blockchain and to retrieve them via a single identifying hash.
Superficially, this technique is limited to serving static webpages, as there is no real backend serving these pages. However, since it is possible to embed xrpio
into such a “static” page, it is possible to listen for transactions on the Ripple blockchain containing valid xrpio hashes and to dynamically update the webpage’s content based on the stored data.