You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nitowa a4b9635ee7 optimize webpack bundling, minimize gateway JS 1 rok temu
gateway optimize webpack bundling, minimize gateway JS 1 rok temu
gui Initial working version 1 rok temu
src optimize webpack bundling, minimize gateway JS 1 rok temu
.gitignore Initial working version 1 rok temu
README.md optimize webpack bundling, minimize gateway JS 1 rok temu
package-lock.json optimize webpack bundling, minimize gateway JS 1 rok temu
package.json optimize webpack bundling, minimize gateway JS 1 rok temu
tsconfig.json Initial working version 1 rok temu
webpack.gateway.js Initial working version 1 rok temu
webpack.gui.js Initial working version 1 rok temu

README.md

Overview

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.

How it works

1: Getting data into and out of the blockchain

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:

xrpio treewrite

2: Abstracting the webserver away from the web

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.

Webserverless web

3: Dynamic web applications without a backend

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.

Credits