further benchmarking stuff
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user