further benchmarking stuff

This commit is contained in:
Zoe
2025-11-28 14:53:06 -06:00
parent e16383e9b9
commit d0f4936b84
25 changed files with 441 additions and 739 deletions

View File

@@ -109,6 +109,9 @@ export class PowCaptcha extends LitElement {
this.initWorkers();
this.addEventListener('reset', (ev) => this.reset(ev as CustomEvent));
this.addEventListener('solve', () => this.solveChallenge());
switch (this.auto) {
case 'onload':
this.solveChallenge();
@@ -139,6 +142,19 @@ export class PowCaptcha extends LitElement {
}
}
reset(ev: CustomEvent) {
this.challengejson = JSON.stringify(ev.detail.challenge);
this.challengeData = null;
this.status = 'unsolved';
this.solution = '';
console.log("received reset event");
this.fetchChallenge();
console.log(this.challengeData);
}
getCurrentWorkingNonce() {
return Atomics.load(new Uint32Array(this.sab), 0);
}
@@ -177,10 +193,6 @@ export class PowCaptcha extends LitElement {
this.solverWorkers.push(new ChallengeWorker());
}
const atomics_view = new Int32Array(this.sab);
Atomics.store(atomics_view, 0, 0);
Atomics.store(atomics_view, 1, 0);
let wasm_module = await get_wasm_module();
let worker_promises: Promise<void>[] = [];
for (let i = 0; i < this.solverWorkers.length; i++) {
@@ -296,11 +308,11 @@ export class PowCaptcha extends LitElement {
break;
}
break;
case ChallengeAlgorithm.Argon2id:
case ChallengeAlgorithm.Argon2:
switch (request.strategy) {
case ChallengeStrategy.LeadingZeroes:
worker.postMessage({
algorithm: ChallengeAlgorithm.Argon2id,
algorithm: ChallengeAlgorithm.Argon2,
strategy: ChallengeStrategy.LeadingZeroes,
salt: request.salt,
difficulty: request.difficulty,
@@ -308,7 +320,7 @@ export class PowCaptcha extends LitElement {
break;
case ChallengeStrategy.TargetNumber:
worker.postMessage({
algorithm: ChallengeAlgorithm.Argon2id,
algorithm: ChallengeAlgorithm.Argon2,
strategy: ChallengeStrategy.TargetNumber,
target: request.target,
salt: request.salt,
@@ -354,22 +366,6 @@ export class PowCaptcha extends LitElement {
let request: ChallengeSolveRequest;
// switch (this.challengeData.strategy) {
// case ChallengeStrategy.LeadingZeroes:
// request = {
// strategy: ChallengeStrategy.LeadingZeroes,
// salt: this.challengeData.salt,
// difficulty: this.challengeData.difficulty,
// };
// break;
// case ChallengeStrategy.TargetNumber:
// request = {
// strategy: ChallengeStrategy.TargetNumber,
// target: this.challengeData.target,
// salt: this.challengeData.salt,
// };
// break;
// }
switch (this.challengeData.algorithm) {
case ChallengeAlgorithm.SHA256:
switch (this.challengeData.strategy) {
@@ -391,11 +387,11 @@ export class PowCaptcha extends LitElement {
break;
}
break;
case ChallengeAlgorithm.Argon2id:
case ChallengeAlgorithm.Argon2:
switch (this.challengeData.strategy) {
case ChallengeStrategy.LeadingZeroes:
request = {
algorithm: ChallengeAlgorithm.Argon2id,
algorithm: ChallengeAlgorithm.Argon2,
strategy: ChallengeStrategy.LeadingZeroes,
salt: this.challengeData.salt,
difficulty: this.challengeData.difficulty,
@@ -403,7 +399,7 @@ export class PowCaptcha extends LitElement {
break;
case ChallengeStrategy.TargetNumber:
request = {
algorithm: ChallengeAlgorithm.Argon2id,
algorithm: ChallengeAlgorithm.Argon2,
strategy: ChallengeStrategy.TargetNumber,
target: this.challengeData.target,
salt: this.challengeData.salt,

View File

@@ -68,6 +68,7 @@ onmessage = async (event: MessageEvent<WorkerRequest>) => {
};
switch (event.data.algorithm) {
case ChallengeAlgorithm.Argon2:
case ChallengeAlgorithm.SHA256:
switch (event.data.strategy) {
case ChallengeStrategy.LeadingZeroes:
@@ -84,22 +85,6 @@ onmessage = async (event: MessageEvent<WorkerRequest>) => {
break;
}
break;
case ChallengeAlgorithm.Argon2id:
switch (event.data.strategy) {
case ChallengeStrategy.LeadingZeroes:
// @ts-ignore
params.strategy = ChallengeStrategy.LeadingZeroes;
// @ts-ignore
params.difficulty = event.data.difficulty;
break;
case ChallengeStrategy.TargetNumber:
// @ts-ignore
params.strategy = ChallengeStrategy.TargetNumber;
// @ts-ignore
params.target = event.data.target;
break;
}
break;
case ChallengeAlgorithm.kCTF:
// @ts-ignore
params.strategy = ChallengeStrategy.Null;
@@ -111,6 +96,7 @@ onmessage = async (event: MessageEvent<WorkerRequest>) => {
solution = solve(solver, params as SolveParams);
if (event.data.algorithm !== ChallengeAlgorithm.kCTF) {
console.log(Atomics.load(atomic_nonce!, 0));
solution = Atomics.load(atomic_solution!, 0);
}
} catch (error: any) {

View File

@@ -13,7 +13,7 @@ interface WorkerInitRequest {
}
interface ChallengeLeadingZeroesSolveRequest {
algorithm: ChallengeAlgorithm.SHA256 | ChallengeAlgorithm.Argon2id;
algorithm: ChallengeAlgorithm.SHA256 | ChallengeAlgorithm.Argon2;
strategy: ChallengeStrategy.LeadingZeroes;
salt: string;
difficulty: number;
@@ -24,7 +24,7 @@ interface WorkerChallengeLeadingZeroesSolveRequest extends ChallengeLeadingZeroe
}
interface ChallengeTargetNumberSolveRequest {
algorithm: ChallengeAlgorithm.SHA256 | ChallengeAlgorithm.Argon2id;
algorithm: ChallengeAlgorithm.SHA256 | ChallengeAlgorithm.Argon2;
strategy: ChallengeStrategy.TargetNumber;
target: string;
salt: string;