On the chain

A wiki with no web server.

The Unfinish’d game wiki is stored as contract code on the Arcade Union Network. This page reads the bytes back out of the chain and renders them. Nothing below is fetched from a website.

Read more — how this works, and how to check it

Each file is split into chunks of at most 24,575 bytes — the EVM’s limit on contract code — and each chunk is deployed as its own contract whose entire body is the data, behind a single STOP byte so it can never be executed. This is the SSTORE2 pattern. Storing a byte as code costs about 200 gas against roughly 625 in contract storage, which is the difference between a megabyte being possible and not.

The happy consequence is that reading needs no contract call. The data is the code, so eth_getCode on any RPC for this chain returns it. One call is made, chunksOf(path), to learn which addresses to ask for. You can do the same thing from a terminal and get the same bytes.

Every file’s SHA-256 was computed by the chain when it was stored, using the EVM’s own precompile, so the recorded hash is one the chain confirmed rather than one the uploader asserted. This page hashes what it reassembled and compares. A mismatch is reported instead of rendered.

Reading from …
File store…Size on chain…

Reading the chain…

Rendered in a sealed frame. The wiki is shown with scripts, forms and navigation all switched off, and its images inlined, so nothing read from the chain can reach anywhere. Verified bytes are not the same thing as trusted bytes.