From 9756aa45afa2a9afa2dbb7eac6ca675796faf67a Mon Sep 17 00:00:00 2001 From: Mawoka Date: Thu, 23 Jun 2022 21:27:03 +0200 Subject: [PATCH] :chart_with_upwards_trend: Added analytics on time spent running PoW-stuff --- classquiz/routers/editor.py | 2 +- frontend/src/lib/editor/card.svelte | 1 - frontend/src/lib/hashcash.ts | 13 +++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/classquiz/routers/editor.py b/classquiz/routers/editor.py index 48b6f1b..6dd460e 100644 --- a/classquiz/routers/editor.py +++ b/classquiz/routers/editor.py @@ -104,7 +104,7 @@ async def upload_image(edit_id: str, pow_data: str, file: UploadFile = File()): raise HTTPException(status_code=400, detail="Image-type now allowed!") session_data = EditSessionData.parse_raw(session_data) file_name = f"{session_data.quiz_id}--{uuid.uuid4()}" - # await storage.upload(file_name=file_name, file_data=file_bytes) TODO: UNCOMMENT!!!! + await storage.upload(file_name=file_name, file_data=file_bytes) await redis.lpush(f"edit_session:{edit_id}:images", file_name) random_str = os.urandom(8).hex() await redis.set(f"edit_session:{edit_id}:pow", random_str, ex=3800) diff --git a/frontend/src/lib/editor/card.svelte b/frontend/src/lib/editor/card.svelte index d6a43fd..6630e22 100644 --- a/frontend/src/lib/editor/card.svelte +++ b/frontend/src/lib/editor/card.svelte @@ -18,7 +18,6 @@ let uppyOpen = false; const computePOW = async (salt: string) => { - console.log('Called!'); if (pow_salt === undefined) { return; } diff --git a/frontend/src/lib/hashcash.ts b/frontend/src/lib/hashcash.ts index 5734695..487a47b 100644 --- a/frontend/src/lib/hashcash.ts +++ b/frontend/src/lib/hashcash.ts @@ -1,4 +1,5 @@ import { DateTime } from 'luxon'; +import * as Sentry from '@sentry/browser'; const gen_salt = (l: number): string => { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; @@ -31,6 +32,7 @@ export const mint = async ( const challenge = `${ver}:${bits}:${ts}:${resource}:${ext}:${salt}`; let counter = 0; let result: string; + const t0 = performance.now(); // eslint-disable-next-line no-constant-condition while (true) { const data = new TextEncoder().encode(`${challenge}:${counter.toString(16)}`); @@ -43,5 +45,16 @@ export const mint = async ( } counter += 1; } + const t1 = performance.now(); + const transaction = Sentry.startTransaction({ name: 'calculatedHasCash' }); + const span = transaction.startChild({ + op: 'hashcash', + data: { + milliseconds_taken: t0 - t1, + bits: bits + } + }); + span.finish(); + transaction.finish(); return `${challenge}:${result}`; };