gotosocial/web/source
kim 326e04283a [feature] update proof-of-work to allow setting required rounds (#4186)
# Description

This updates our proof-of-work middleware, NoLLaMas, to work on a more easily configurable algorithm (thank you f0x for bringing this to my attention!). Instead of requiring that a solution with pre-determined number of '0' chars be found, it now pre-computes a result with a pre-determined nonce value that it expects the client to iterate up-to. (though with some level of jitter applied, to prevent it being too-easily gamed). This allows the user to configure roughly how many hash-encode rounds they want their clients to have to complete.

## Checklist

- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have not leveraged AI to create the proposed changes.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [x] I/we have commented the added code, particularly in hard-to-understand areas.
- [x] I/we have made any necessary changes to documentation.
- [ ] I/we have added tests that cover new code.
- [x] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4186
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
2025-05-26 11:57:50 +02:00
..
css [feature] Allow exposing allows, implement /api/v1/domain_blocks and /api/v1/domain_allows (#4169) 2025-05-20 11:47:40 +02:00
frontend [feature] Add ListenBrainz functionality on the web view (#4184) 2025-05-22 12:34:39 +02:00
frontend_prerender [feature] Update attachment format, receive + send focalPoint prop + use it on the frontend (#4052) 2025-04-26 15:03:05 +02:00
nollamas [feature] update proof-of-work to allow setting required rounds (#4186) 2025-05-26 11:57:50 +02:00
nollamasworker [feature] update proof-of-work to allow setting required rounds (#4186) 2025-05-26 11:57:50 +02:00
settings [bugfix] Fixes to tablist, fileinput, checkbox (#4139) 2025-05-06 08:06:52 +00:00
.browserslistrc [chore] Bundler restructure (#880) 2022-10-03 16:46:38 +02:00
.eslintignore [chore] more NoLLaMas proof-of-work tweaking (#4096) 2025-05-03 16:45:25 +00:00
.eslintrc.js [chore] Convert some settings / admin panel JS to TypeScript (#2247) 2023-10-05 16:06:19 +02:00
.gitignore [chore] Convert some settings / admin panel JS to TypeScript (#2247) 2023-10-05 16:06:19 +02:00
.license-header.js update license headers (#1612) 2023-03-12 17:49:06 +00:00
index.js [feature] proof of work scraper deterrence (#4043) 2025-04-28 20:12:27 +00:00
package.json [chore/frontend] Update skulk, caniuse (#4044) 2025-04-23 17:44:25 +02:00
tsconfig.json [feature/frontend] Add debug sections to settings panel (#2950) 2024-06-03 11:20:53 +02:00
yarn.lock [chore/frontend] Update skulk, caniuse (#4044) 2025-04-23 17:44:25 +02:00