*/
export async function generate (hash: bigint, difficulty: bigint, effort: number, debug: boolean): Promise<WorkGenerateResponse> {
logger.isEnabled = debug
- logger.groupStart('NanoPow WASM work_generate')
+ LOG: logger.groupStart('NanoPow WASM work_generate')
LOG: logger.log('generating')
if (isReady === false) setup()
await init(hash, difficulty, effort)
reset()
LOG: logger.log('workers reset')
}
- logger.groupEnd('NanoPow WASM work_generate')
+ LOG: logger.groupEnd('NanoPow WASM work_generate')
}
return {
// Create persistent resizable canvas and get WebGL2 context
function createCanvas (size: number): void {
- logger.groupStart('NanoPow WebGL createCanvas')
+ LOG: logger.groupStart('NanoPow WebGL createCanvas')
if (canvas == null) {
canvas = new OffscreenCanvas(0, 0)
canvas.addEventListener('webglcontextlost', ev => {
canvas.height = canvas.width = size
}
LOG: logger.log('NanoPow WebGL createCanvas', 'final size', size)
- logger.groupEnd('NanoPow WebGL createCanvas')
+ LOG: logger.groupEnd('NanoPow WebGL createCanvas')
}
function compile (): void {
timeout = true
LOG: logger.log('timed out')
}, 60_000)
- logger.groupStart('NanoPow WebGL work_generate')
+ LOG: logger.groupStart('NanoPow WebGL work_generate')
LOG: logger.log('generating')
// Start drawing to calculate one nonce per pixel
clearTimeout(kill)
cancelAnimationFrame(raf)
raf = 0
- logger.groupEnd('NanoPow WebGL work_generate')
+ LOG: logger.groupEnd('NanoPow WebGL work_generate')
if (!found) throw new Error(timeout ? 'timed out' : 'work not found for unknown reason')
}
timeout = true
throw new Error('timed out')
}, 60_000)
- logger.groupStart('NanoPow WebGPU work_generate')
+ LOG: logger.groupStart('NanoPow WebGPU work_generate')
LOG: logger.log('generating')
let found = false
let result: { [key: string]: bigint } = {}
} while (isFirstRetry)
} finally {
clearTimeout(kill)
- logger.groupEnd('NanoPow WebGPU work_generate')
+ LOG: logger.groupEnd('NanoPow WebGPU work_generate')
if (!found && timeout) throw new Error('timed out')
}
}
function log (work: bigint, hash: bigint, difficulty: bigint): void {
- logger.groupStart('NanoPow CPU work_validate')
+ LOG: logger.groupStart('NanoPow CPU work_validate')
LOG: logger.log('NanoPow CPU work_validate', 'work', bigintToHex(work, 16))
LOG: logger.log('NanoPow CPU work_validate', 'hash', bigintToHex(hash, 64))
LOG: logger.log('NanoPow CPU work_validate', 'difficulty', bigintToHex(difficulty, 16))
LOG: logger.log('NanoPow CPU work_validate', 'result', bigintToHex(result, 16))
- logger.groupEnd('NanoPow CPU work_validate')
+ LOG: logger.groupEnd('NanoPow CPU work_validate')
}
function validate (work: bigint, hash: bigint, difficulty: bigint, debug: boolean): WorkValidateResponse {