nuke/web
Xe Iaso 7b84904d15
fix(js): use pure JS SHA256 library, refactor (#471)
* fix(js): use pure JS SHA256 library, refactor

Closes #458

Additionally, I made a horrifying discovery: Firefox seems to actively
hinder performance if you are using more than one Worker per page. It
does not spread the load out across cores like I expected. Instead it
seems to make that one Worker thrash and have to constantly context
switch, which caused a lot of slowdown.

The benchmarks in #155 continue to be the best contribution ever made to
Anubis. What clued me into there being a problem here was the fact that
the "slow" algorithm was faster than the "fast" algorithm on my laptop.
This made no intuitive sense to me so I dug further.

Either way I think this is a Firefox bug at its core, but for now we
have to work around it by doing the hacky terrible thing that I hate.

I also swapped the SHA256 operations to @aws-crypto/sha256-js on the
advice of a trusted cryptography expert. I don't know what performance
differences this makes, but I'm getting 150-225 kilohashes per second,
which is pretty dang good.

Signed-off-by: Xe Iaso <me@xeiaso.net>

* fix(js): apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Xe Iaso <me@xeiaso.net>

* fix(js): use fast algo for fast worker

Signed-off-by: Xe Iaso <me@xeiaso.net>

---------

Signed-off-by: Xe Iaso <me@xeiaso.net>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-08 17:38:51 -04:00
..
js fix(js): use pure JS SHA256 library, refactor (#471) 2025-05-08 17:38:51 -04:00
static chore(static/img): add mascot attributions to the repo (#448) 2025-05-05 16:29:16 +00:00
build.sh fix(js): use pure JS SHA256 library, refactor (#471) 2025-05-08 17:38:51 -04:00
embed.go all: do not commit generated JS/CSS to source control (#148) 2025-03-28 14:55:25 -04:00
index.go perf: embed challenge data in HTML (#279) 2025-04-18 00:06:37 -04:00
index.templ feat: add support for a base prefix (#294) 2025-04-25 14:39:38 -04:00
index_templ.go build(deps): bump the gomod group across 1 directory with 4 updates (#457) 2025-05-07 17:48:10 -04:00