Revert "fix(js): use pure JS SHA256 library, refactor (#471)" (#475)

This reverts commit 7b84904d15.
This commit is contained in:
Xe Iaso 2025-05-08 18:22:08 -04:00 committed by GitHub
parent 7b84904d15
commit b1c276db9f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 234 additions and 335 deletions

View file

@ -1,67 +0,0 @@
const determineThreadCount = () => {
if (navigator.userAgent.includes("Firefox")) {
return Math.min(navigator.hardwareConcurrency, 4);
}
if (!!navigator.hardwareConcurrency) {
return navigator.hardwareConcurrency;
}
return 1;
};
export default function process(
{ basePrefix, version },
data,
difficulty = 5,
signal = null,
progressCallback = null,
threads = determineThreadCount(),
) {
return new Promise((resolve, reject) => {
let webWorkerURL = `${basePrefix}/.within.website/x/cmd/anubis/static/js/worker/fast.mjs?cacheBuster=${version}`;
const workers = [];
const terminate = () => {
workers.forEach((w) => w.terminate());
if (signal != null) {
// clean up listener to avoid memory leak
signal.removeEventListener("abort", terminate);
if (signal.aborted) {
console.log("PoW aborted");
reject(false);
}
}
};
if (signal != null) {
signal.addEventListener("abort", terminate, { once: true });
}
for (let i = 0; i < threads; i++) {
let worker = new Worker(webWorkerURL);
worker.onmessage = (event) => {
if (typeof event.data === "number") {
progressCallback?.(event.data);
} else {
terminate();
resolve(event.data);
}
};
worker.onerror = (event) => {
terminate();
reject(event);
};
worker.postMessage({
data,
difficulty,
nonce: i,
threads,
});
workers.push(worker);
}
});
}

View file

@ -1,48 +0,0 @@
// https://dev.to/ratmd/simple-proof-of-work-in-javascript-3kgm
export default function process(
{ basePrefix, version },
data,
difficulty = 5,
signal = null,
progressCallback = null,
_threads = 1,
) {
return new Promise((resolve, reject) => {
let worker = new Worker(`${basePrefix}/.within.website/x/cmd/anubis/static/js/worker/slow.mjs?cacheBuster=${version}`);
const terminate = () => {
worker.terminate();
if (signal != null) {
// clean up listener to avoid memory leak
signal.removeEventListener("abort", terminate);
if (signal.aborted) {
console.log("PoW aborted");
reject(false);
}
}
};
if (signal != null) {
signal.addEventListener("abort", terminate, { once: true });
}
worker.onmessage = (event) => {
if (typeof event.data === "number") {
progressCallback?.(event.data);
} else {
terminate();
resolve(event.data);
}
};
worker.onerror = (event) => {
terminate();
reject(event);
};
worker.postMessage({
data,
difficulty
});
});
}