Post

TL;DR: non-SHA256 proof of work support has finally landed after a year of stilted development, many failed attempts, and learning things no mortal should comprehend about browser internals.

One of the cool parts about how this was implemented is that the same binary is executed on both the client and server in lockstep. This means that the code only has to be updated once.

0 reposts2 likes

In order to be maximally compatible, the WebAssembly is also recompiled to JavaScript for clients that disable WebAssembly for whatever reason. This prevents the need to have to re-implement all the logic in JavaScript.

This also adds prebuilt #NetBSD binaries, logs when challenges are accepted, cleans up and consolidates the worker code, fixes an edge case in Content-Security-Policy parsing, and more.

Packager note: If you build Anubis entirely from source, you will need to add these dependencies to your packaging of Anubis: - rustc v1.80 or later - cargo v1.80 or later - Either wasmtime (any version) or binaryen (version == 130) These are required to build the WebAssembly components.