nuke/docs/docs
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
..
admin docs: add missing subrequest auth configuration (#463) 2025-05-07 23:28:51 +00:00
design docs(user): add frequently asked questions page (#422) 2025-05-02 18:53:53 +00:00
developer v1.16.0 (#244) 2025-04-10 00:07:14 +00:00
user docs(known-instances): add gitlab.freedesktop.org 2025-05-07 08:57:26 -04:00
CHANGELOG.md fix(js): use pure JS SHA256 library, refactor (#471) 2025-05-08 17:38:51 -04:00
funding.md docs: update default difficulty to 4 2025-04-21 17:41:22 -04:00
index.mdx chore(sponsors): add canine.tools (#450) 2025-05-05 20:31:10 -04:00