summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--powWorker.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/powWorker.js b/powWorker.js
new file mode 100644
index 0000000..aba22ff
--- /dev/null
+++ b/powWorker.js
@@ -0,0 +1,16 @@
+// /var/www/mail2usenet/powWorker.js
+self.onmessage = async ({ data }) => {
+ const { prefix, targetZeros, startNonce, step } = data;
+ let nonce = startNonce, checked = 0, zeroStr = '0'.repeat(targetZeros);
+ while (true) {
+ const buf = await crypto.subtle.digest('SHA-1', new TextEncoder().encode(prefix + nonce));
+ const hex = Array.from(new Uint8Array(buf)).map(b=>b.toString(16).padStart(2,'0')).join('');
+ if (hex.startsWith(zeroStr)) {
+ return self.postMessage({ type:'found', nonce });
+ }
+ nonce += step;
+ if (++checked % 1000 === 0) {
+ self.postMessage({ type:'progress', checked });
+ }
+ }
+};