From 6294c98842eebc0b2ad0cbb625948f5b207889a8 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Fri, 27 Jun 2025 00:41:09 -0700 Subject: [PATCH] Remove AssemblyScript build artifacts from tracking. Add license headers for REUSE compliance. --- asconfig.json | 2 +- docs/blake2.md | 5 ++++ docs/nano-pow.1 | 2 +- scripts/blake2b-gen.js | 10 +++++-- src/lib/generate/wasm/asm/compute.d.ts | 13 --------- src/lib/generate/wasm/asm/compute.js | 28 ------------------- src/lib/generate/wasm/asm/compute.wasm | Bin 13246 -> 0 bytes src/lib/generate/wasm/asm/index.ts | 2 ++ src/lib/generate/wasm/worker.ts | 2 +- src/lib/generate/webgpu/shaders/compute.wgsl | 2 ++ 10 files changed, 20 insertions(+), 46 deletions(-) delete mode 100644 src/lib/generate/wasm/asm/compute.d.ts delete mode 100644 src/lib/generate/wasm/asm/compute.js delete mode 100644 src/lib/generate/wasm/asm/compute.wasm diff --git a/asconfig.json b/asconfig.json index d96c7bc..002045b 100644 --- a/asconfig.json +++ b/asconfig.json @@ -1,6 +1,6 @@ { "options": { - "outFile": "./src/lib/generate/wasm/asm/compute.wasm", + "outFile": "./src/lib/generate/wasm/asm/build/compute.wasm", "optimizeLevel": 3, "shrinkLevel": 2, "converge": true, diff --git a/docs/blake2.md b/docs/blake2.md index e1be4b7..c47238b 100644 --- a/docs/blake2.md +++ b/docs/blake2.md @@ -1,3 +1,8 @@ + + Twelve rounds of G mixing as part of BLAKE2b compression step, each divided into eight subprocesses. Each subprocess applies transformations to `m` and `v` variables based on a defined set of index inputs. The algorithm for each subprocess is defined as ollows: * r is the current round diff --git a/docs/nano-pow.1 b/docs/nano-pow.1 index 911af8b..c19da2a 100644 --- a/docs/nano-pow.1 +++ b/docs/nano-pow.1 @@ -1,7 +1,7 @@ \# SPDX-FileCopyrightText: 2025 Chris Duncan \# SPDX-License-Identifier: GPL-3.0-or-later -.TH nano-pow 1 2025-06-17 "nano-pow v5.0.0" +.TH nano-pow 1 2025-06-27 "nano-pow v5.1.2" .SH NAME nano-pow \- proof-of-work generation and validation for Nano cryptocurrency diff --git a/scripts/blake2b-gen.js b/scripts/blake2b-gen.js index 2da80fd..c47b1e7 100644 --- a/scripts/blake2b-gen.js +++ b/scripts/blake2b-gen.js @@ -227,7 +227,10 @@ function generate (api) { const main = (() => { switch (api) { case 'wasm': { - return `export function main (seed: u64, h0: u64, h1: u64, h2: u64, h3: u64, difficulty: u64): u64 { + return `//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-License-Identifier: GPL-3.0-or-later + +export function main (seed: u64, h0: u64, h1: u64, h2: u64, h3: u64, difficulty: u64): u64 { ${declare} m0 = ${ctr(`0`)}; const m1 = ${ctr(`h0`)}; const m2 = ${ctr(`h1`)}; @@ -315,7 +318,10 @@ void main() { ` } case 'webgpu': { - return `// Input buffers + return `//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-License-Identifier: GPL-3.0-or-later + +// Input buffers struct INPUT { hash: array, 2>, difficulty: vec2, diff --git a/src/lib/generate/wasm/asm/compute.d.ts b/src/lib/generate/wasm/asm/compute.d.ts deleted file mode 100644 index 02b5669..0000000 --- a/src/lib/generate/wasm/asm/compute.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** Exported memory */ -export declare const memory: WebAssembly.Memory; -/** - * src/lib/generate/wasm/asm/index/main - * @param seed `u64` - * @param h0 `u64` - * @param h1 `u64` - * @param h2 `u64` - * @param h3 `u64` - * @param difficulty `u64` - * @returns `u64` - */ -export declare function main(seed: bigint, h0: bigint, h1: bigint, h2: bigint, h3: bigint, difficulty: bigint): bigint; diff --git a/src/lib/generate/wasm/asm/compute.js b/src/lib/generate/wasm/asm/compute.js deleted file mode 100644 index c0a5d23..0000000 --- a/src/lib/generate/wasm/asm/compute.js +++ /dev/null @@ -1,28 +0,0 @@ -async function instantiate(module, imports = {}) { - const { exports } = await WebAssembly.instantiate(module, imports); - const memory = exports.memory || imports.env.memory; - const adaptedExports = Object.setPrototypeOf({ - main(seed, h0, h1, h2, h3, difficulty) { - // src/lib/generate/wasm/asm/index/main(u64, u64, u64, u64, u64, u64) => u64 - seed = seed || 0n; - h0 = h0 || 0n; - h1 = h1 || 0n; - h2 = h2 || 0n; - h3 = h3 || 0n; - difficulty = difficulty || 0n; - return BigInt.asUintN(64, exports.main(seed, h0, h1, h2, h3, difficulty)); - }, - }, exports); - return adaptedExports; -} -export const { - memory, - main, -} = await (async url => instantiate( - await (async () => { - const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); - if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } - else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - })(), { - } -))(new URL("compute.wasm", import.meta.url)); diff --git a/src/lib/generate/wasm/asm/compute.wasm b/src/lib/generate/wasm/asm/compute.wasm deleted file mode 100644 index dd51107d1e6f6cda7412870c1e0bc60ee8b63760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13246 zcmeHOO^6&t6z-mx{q35+p8uKM&Fel0l7mMDC2rP>;Kh~@G=dmJ*T0Pz@gQ#E;tzs& z@UV#BMN|-xNG_gYJb8&Bfm{S{p5o1eK`=;(yjN3QJM*f0W|+)mve`Xs!S>A8uU>uc ztM{tjIw#-QavjHUJ@?u9v-IPh&1PI@F6%nZLOGM$I{DHm$C=-He(SZzai*xA`xJeFI}tV?n2-RtMxd7=>MQHsS& zKi=59zVxylrMTJsj2@-9_Sn~7{P95Zf*!$vmF>`#KDZn1wp??=MS0Z?JsE`pgv{sW z<`*0{lNI?wadBzc3k5#T%P1^BLFTjF=U(@DSb#hT@Sq^Cx-j1ZmFa$Xx%=TgP)8q@ zS6nC@b>(GOJ{}aLc;({Jf4}?fy+eAG;_yGa|DC>Z>LEQ!vAgk8?$|xszw1$oPk;FJ z=Gv9Np4KBQpan%4g(WCiCR4)4Wf_G&_?F4|P=*o|!S6v~^DroC9=@K34`nI-^uIcD z=I>{|)FXIO9D4Q0;g4UO`&^GwJowEo?|<<9<^?_4K69e7biUl!I<7}p(*7+&*)qE_ zKCZ|ptU}c?yDC(m3?5W*sg`@7*c1(vnqsv(#Sp(7)?^gcp>8puj*lBqhZ)gV5~2runA3z8=Bw~N>h7)c+YGg-V=)QKvOSr zQ;PY{3qRlY$n`h%2ze+&k^ddvfT2@_qQzH5e2iplLCa!i3o#)NtsWF+r$JG6wzQr2 zeE~HnKm|%tRL>oG^nC8KT|H97hC&B6i+c>{up}eJH5T_6Cl98z(inx=VNe)J8{k8QR4KAA4s9wJh!v<-4s_Cf9I_NAU z9icEgXk#N3Wk*MANe8Mb+9?)=dMb1bkyI9RkTMEUkXE5g2pB#jxJ*$HMQuwl6f+Q^ zf-1D2Myw++n=!c1DXXTxk5f%H#-K1eNLX5+H31{cCM-q`m{Z8r`upjcVu+Z$YF%L| z?-iDmBq3c`G>W1v(uJUy7ieMa>e7KaRG^>;hwGUVyh!{uv@Nu4cTw6%+Zct}K@vbH ziVJN`+cs!nAP=jjJ<@L^fvwQwgoSdiSPj^VjT$86FGg4l3Ui792n%iT1BC@M4$KZ`U04i-QnrI3 z)rI!gxMZ>}-9*%7e+!G!&N$&DVbT`TdZf!i+LBtV_LWwQE|#Kb zR@B9)0b|Mt!eUU^+zraen$lOqFat-ZhsGBcvk&c?dT2ypi8qh2>!DfE6hknosu*|2 zsE3qx-olbE> zIUTu8XDqiSSus0Y@)bl-9eCYrQd5!y=B*J9T2xeweKn*+>Xsxhrmh}ZV$5E$Z_aW} z8f486?x41oS&^9iuP#QT7-#Uza0p>BLSWUDVBp~`He?AI1^&PuxV}t+y$=;X818&l zcT)GyIw(?Ct!`TzM1Zo4f?CfJstH17UR;Ybpke7y!&Z0fb8E<}XdeBKM8A2|g^Mk4 z>KM18yVEMvl1a+m-wfGp(+pIPHTEuJn|DH&p^|o74Q%zszFuE4BQU|lZgQFr?!PHL z>AsADiWJVJi+|z2m*|nY=CSX)WQV88_dBp_wyj|rP4bmd*x76Gfxf-&_b7qlL%HgN zt1x#0Jh|$IYcO}>bl!oLjqG-?A~K%m!5pj|hdEe1{(5eG!`*OpiXJS=RR@2$_~6No F_dlpU2eSYG diff --git a/src/lib/generate/wasm/asm/index.ts b/src/lib/generate/wasm/asm/index.ts index 04f0d00..06738a3 100644 --- a/src/lib/generate/wasm/asm/index.ts +++ b/src/lib/generate/wasm/asm/index.ts @@ -1,3 +1,5 @@ +//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-License-Identifier: GPL-3.0-or-later export function main (seed: u64, h0: u64, h1: u64, h2: u64, h3: u64, difficulty: u64): u64 { let m0 = v128.splat(0); const m1 = v128.splat(h0); diff --git a/src/lib/generate/wasm/worker.ts b/src/lib/generate/wasm/worker.ts index 4a1b229..2de0fce 100644 --- a/src/lib/generate/wasm/worker.ts +++ b/src/lib/generate/wasm/worker.ts @@ -2,7 +2,7 @@ //! SPDX-License-Identifier: GPL-3.0-or-later //@ts-expect-error -import compute from './asm/compute.wasm' +import compute from './asm/build/compute.wasm' type Main = (w: bigint, h0: bigint, h1: bigint, h2: bigint, h3: bigint, d: bigint) => any const worker = async (compute: number[]): Promise => { diff --git a/src/lib/generate/webgpu/shaders/compute.wgsl b/src/lib/generate/webgpu/shaders/compute.wgsl index 9701121..f3cf803 100644 --- a/src/lib/generate/webgpu/shaders/compute.wgsl +++ b/src/lib/generate/webgpu/shaders/compute.wgsl @@ -1,3 +1,5 @@ +//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-License-Identifier: GPL-3.0-or-later // Input buffers struct INPUT { hash: array, 2>, -- 2.47.3