Blockless Site powers decentralized dynamic websites, controlled by the smart contract, and owned by the community.
Blockless Site provides decentralized and dynamic website rendering and serving powered by a WASM-based p2p execution network run by the community. Static files and dynamic content for the website are stored on IPFS, with the CID encoded in Ethereum smart contract(s). ENS owners can directly link their domain/wallet address to the front end.
Edge devices from the community such as mobile phones and personal laptops can contribute computation resources by running a node of the p2p execution network. In return, nodes get token incentives from the protocols.
The smart contract-controlled front-end files and content enable provable storage using IPFS. The decentralized front end is trustless, censorship-resistant, owned and powered by the community.
Blockless Site allows for dynamically served content. It enables projects to offer an end-to-end decentralized experience to their user base, completing the last mile of decentralization, and unlocking the potential for building fully decentralized applications without boundaries.
We use the WASM compiler to compile frontend code such as Javascript or Rust to “ .WASM” binaries and store in IPFS. Serverless functions are used as the building block for website serving. There are a lot of ways to serve a website. (Serve: upon receiving an HTTP request, compute and return a response.) We target the most contemporary way to serve, which is to host and serve static assets, and to provide serverless function execution (as the gateway) for (arbitrary) dynamic content. This is to say, the serverless function can fulfill a purpose all by itself, but it can also make requests to, and relay the results from, other services, practically making the site full-featured/all-capable. “Jamstack website” is a more established term to refer to the kind of website described above. Jamstack services (Vercel, Netlify, Cloudflare Pages) build the static part of the website for the developer on their server. The developer sends the service including their code and supplementary files, and the service builds out the static content. Behind the scenes, the service runs a developer-declared command like the next build on their own server. Serverless functions make a Jamstack website dynamic. Dynamic content is essential to any website that intends to not only display content but also interact with the user, which is the majority of the web.
To build this project, we used Solidity and Web3.js. Our solidity contract will verify the identity of the deployer and setup the transaction to notify the blockless node watchers. The nodes have eth private keys, so that they can notify the deployer of the deployment details. Communication between the two happens in a side channel of the chain, but using the Public/Private keys of the node and the user to send encrypted off-chain messages between each other. Such as "execution requests". As a solidity contract does message verification and claiming control ownership of a deploy, we use the contract to negotiate between Blockless and eth user.