From: Chris Duncan Date: Tue, 3 Feb 2026 21:29:08 +0000 (-0800) Subject: Update domain name. X-Git-Tag: v5.1.12~1^2~4 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=05f04bbd3e25a1a1288d712580c4776e3de8200a;p=nano-pow.git Update domain name. --- diff --git a/.gitignore b/.gitignore index 905ca2a..b316cbd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 Chris Duncan +# SPDX-FileCopyrightText: 2025 Chris Duncan # SPDX-License-Identifier: GPL-3.0-or-later # Logs diff --git a/AUTHORS.md b/AUTHORS.md index 7c5bfaa..3144002 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,7 +1,7 @@ -Chris Duncan (zoso.dev) +Chris Duncan (zoso.dev) Ben Green (numtel.github.io) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd3d508..6c08667 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ @@ -13,24 +13,18 @@ Fix CLI input parsing. Update dependencies. - - ## v5.1.8 ### Notable Changes Update dependencies. - - ## v5.1.7 ### Notable Changes Eliminate self-references to allow esbuild to generate anonymous classes. - - ## v5.1.6 ### Notable Changes @@ -39,8 +33,6 @@ Export utility method to clear work cache. Update optional `puppeteer` dependency. - - ## v5.1.5 ### Notable Changes @@ -53,24 +45,18 @@ bundlers. Update dev dependencies. - - ## v5.1.4 ### Notable Changes Adjust types for API support and fix optional options parameter types. - - ## v5.1.3 ### Notable Changes Fix types for optional properties of NanoPowOptions object. - - ## v5.1.2 ### Notable Changes @@ -79,16 +65,12 @@ Untrack AssemblyScript build artifacts. Add missing license headers for REUSE compliance. - - ## v5.1.1 ### Notable Changes Fix test page CDN URL. - - ## v5.1.0 ### Notable Changes @@ -121,8 +103,6 @@ Expanded list of test blockhashes for longer testing. Consolidated npm scripts. - - ## v5.0.5 ### Notable Changes @@ -132,8 +112,6 @@ compilation and `blob:` Web Workers. Reverted reduced WASM iteration count since it seems to be a Firefox issue. - - ## v5.0.4 ### Notable Changes @@ -142,16 +120,12 @@ Fix bug in WASM workers causing it to stop listening after first result. Reduce WASM module hash iterations to check results more often. - - ## v5.0.3 ### Notable Changes Bump version due to npm publishing issue. - - ## v5.0.2 ### Notable Changes @@ -160,8 +134,6 @@ Fix loop in CPU `work_generate` that would block the main thread. Remove additional logger statements from production builds. - - ## v5.0.1 ### Notable Changes @@ -170,8 +142,6 @@ Update scripts to work better with systemd services. Update test webpage import URLs. - - ## v5.0.0 ### Notable Changes @@ -234,16 +204,12 @@ Improved type checking and removed unnecessary type exports. Reorganized project structure. - - ## v4.1.7 ### Notable Changes Update dependencies. - - ## v4.1.6 ### Notable Changes @@ -282,8 +248,6 @@ Fix test page benchmark results from not being sorted properly. Update server test script. - - ## v4.1.5 ### Notable Changes @@ -339,8 +303,6 @@ Check more generate calls in test script, and reduce run size of benchmark. Tweak error messaging. - - ## v4.1.4 ### Notable Changes @@ -352,8 +314,6 @@ server. Adjust log timestamp formatting. - - ## v4.1.3 ### Notable Changes @@ -367,8 +327,6 @@ processes and subsequent failure, and communicate it to the CLI using IPC. Fix fast exit failing to clean up resources by handling SIGINT and SIGTERM. - - ## v4.1.2 ### Notable Changes @@ -376,8 +334,6 @@ Fix fast exit failing to clean up resources by handling SIGINT and SIGTERM. Load configuration from file (`$HOME/.nano-pow/config`) and use it to set execution options if relevant environment variables are not present. - - ## v4.1.1 ### Notable Changes @@ -386,8 +342,6 @@ Print server error if it does not launch, typically due to puppeteer issue. Improve reset process on errors and timeouts. - - ## v4.1.0 ### Notable Changes @@ -428,8 +382,6 @@ Fix action listed in server response error message. Prevent unnecessary favicon load in puppeteer source and in test webpage. - - ## v4.0.11 ### Notable Changes @@ -439,8 +391,6 @@ commonly specify a default port of 3000. Improve formatting of environment variable documentation. - - ## v4.0.10 ### Notable Changes @@ -452,16 +402,12 @@ Update documentation. Remove deprecated functions from type definition file. - - ## v4.0.9 ### Notable Changes Fix missing crypto module used to compute source hash for CSP. - - ## v4.0.8 ### Notable Changes @@ -477,9 +423,10 @@ property passed in the `POST` request being processed. #### Control server config with environment variables The server now recognizes the following envars: -* NANO_POW_DEBUG -* NANO_POW_EFFORT -* NANO_POW_PORT (replaces `PORT`) + +- NANO_POW_DEBUG +- NANO_POW_EFFORT +- NANO_POW_PORT (replaces `PORT`) ### Other Changes @@ -491,8 +438,6 @@ Add tests to server test script. Update package configuration files. - - ## v4.0.7 ### Notable Changes @@ -505,8 +450,6 @@ Fix default effort used by server to match the underlying implementation. Update README and manual for clarity, completeness, and accuracy. - - ## v4.0.6 ### Notable Changes @@ -516,8 +459,6 @@ conflicts with GPU. Fix file paths in server test. - - ## v4.0.5 ### Notable Changes @@ -525,8 +466,6 @@ Fix file paths in server test. Use `npm prepare` script to ensure build artifacts are up-to-date before installing locally or publishing. - - ## v4.0.4 ### Notable Changes @@ -534,8 +473,6 @@ installing locally or publishing. Fix CLI file paths for older versions of Node that do not have `import.meta.dirname` available. - - ## v4.0.3 ### Notable Changes @@ -547,8 +484,6 @@ Fix warning in shell script when no arguments are present. Log IP address instead of static 'http://localhost' value from testing. - - ## v4.0.2 ### Notable Changes @@ -556,8 +491,6 @@ Log IP address instead of static 'http://localhost' value from testing. Fix server file paths for older versions of Node that do not have `import.meta.dirname` available. - - ## v4.0.1 ### Notable Changes @@ -565,8 +498,6 @@ Fix server file paths for older versions of Node that do not have Update `nano-pow` command to call shell script which subsequently calls `server.js` if called with `nano-pow --server` or `cli.js` as usual if not. - - ## v4.0.0 ### Notable Changes @@ -598,8 +529,6 @@ Extract help text to separate documentation file. Fix Typescript types. - - ## v3.2.2 ### Notable Changes @@ -613,16 +542,12 @@ Fix CLI statements that were causing issues with older versions of node. Fix getter type. - - ## v3.2.1 ### Notable Changes Implement hash-based Content Security Policy (CSP) in CLI puppeteer page. - - ## v3.2.0 ### Notable Changes @@ -662,8 +587,6 @@ Improve build process. Expand documentation. - - ## v3.1.4 ### Notable Changes @@ -675,8 +598,6 @@ keep files organized. Documentation and test files are now in top-level folders. PoW modules are filed by API instead of by file type. File paths have been updated accordingly. - - ## v3.1.3 ### Notable Changes @@ -727,8 +648,6 @@ Rename file of test blockhashes since they are not seeds. Update README license section. - - ## v3.1.2 ### Notable Changes @@ -737,16 +656,12 @@ Made minor changes to CLI inline help and manual. Added file of blockhashes used in `test.html`. - - ## v3.1.1 ### Notable Changes Fixed minor issues with CLI inline help and manual. - - ## v3.1.0 ### Notable Changes @@ -816,16 +731,12 @@ Add more logging when the debug option is used. Updated dependencies. - - ## v3.0.1 ### Notable Changes Implemented `esbuild` legal comment retention. - - ## v3.0.0 ### Notable Changes @@ -883,8 +794,6 @@ Fix minor issues with test page. Add benchmark results table. - - ## v2.0.0 ### Notable Changes @@ -899,7 +808,7 @@ Instead of a threshold parameter, `search` and `validate` accept a new options object parameter. ```javascript -NanoPow.search(blockhash, { threshold: 'fffffc00', effort: 16, debug: true }) +NanoPow.search(blockhash, { threshold: "fffffc00", effort: 16, debug: true }); ``` **This is a breaking change.** Integrations already using the optional threshold @@ -914,11 +823,12 @@ pairs of `u32` variables to represent high and low bits of a single `u64`. Now, the same approach is used but implemented with vectors instead of scalars, i.e. `vec2` instead of `u32`. This has several benefits: -* Integer pairs of high and low bits are held in memory together, improving -legibility as well as alignment with the original C reference implementation. -* Arithmetic and bitwise operations are executed on both high and low bits in -parallel using one statement instead of three. -* File size is reduced by over 58%. + +- Integer pairs of high and low bits are held in memory together, improving + legibility as well as alignment with the original C reference implementation. +- Arithmetic and bitwise operations are executed on both high and low bits in + parallel using one statement instead of three. +- File size is reduced by over 58%. ### Other Changes @@ -929,8 +839,6 @@ reported as a match to the input nonce. Fix a bug with the truncated average benchmark calculation. - - ## v1.2.4 ### Notable Changes @@ -939,8 +847,6 @@ Fix duplicate code on testing page due to bad merge commit. Increase WebGPU dispatch size. - - ## v1.2.3 ### Notable Changes @@ -949,24 +855,18 @@ Add bespoke TypeScript definition file. Remove usage of package `imports` property and use regular relative paths. - - ## v1.2.2 ### Notable Changes Compile to `dist/` instead of `build/`. - - ## v1.2.1 ### Notable Changes Rename bundle output file. - - ## v1.2.0 ### Notable Changes @@ -987,8 +887,6 @@ Clarify the README with better instructions. Provide additional context about test progress on the testing webpage. - - ## v1.1.0 ### Notable Changes @@ -1005,8 +903,6 @@ Fix packaging bugs to eliminate npm errors about imports and types. Fix repo cloning so that `git clone https://zoso.dev/nano-pow.git` works as expected (thanks to u/the_azarian for helping track this down). - - ## v1.0.0 ### Notable Changes @@ -1017,11 +913,11 @@ Written in Javascript and WGSL, NanoPow leverages the cutting edge WebGPU API to achieve massively increased proof-of-work speed for supported devices directly in the browser! -* Faster than any other JavaScript implementation of Nano proof-of-work. -* Avoids graphical stuttering seen in WebGL implementations. -* Works entirely offline and locally on the device. -* Zero external dependencies. Run it in any environment that supports WebGPU -compute shaders. -* Released under the GPLv3 license to promote user freedom and FOSS principles. +- Faster than any other JavaScript implementation of Nano proof-of-work. +- Avoids graphical stuttering seen in WebGL implementations. +- Works entirely offline and locally on the device. +- Zero external dependencies. Run it in any environment that supports WebGPU + compute shaders. +- Released under the GPLv3 license to promote user freedom and FOSS principles. Full announcement: https://www.reddit.com/r/nanocurrency/comments/1hz841f/announcing_nanopow_local_proofofwork_at/ diff --git a/README.md b/README.md index 054bba5..efb5d71 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ @@ -37,9 +37,9 @@ The following two import statements are equivalent, and both are provided to accomodate project style preferences: ```javascript -import { NanoPow } from 'nano-pow' +import { NanoPow } from "nano-pow"; // OR -import NanoPow from 'nano-pow' +import NanoPow from "nano-pow"; ``` Use it directly on a webpage with a script module: @@ -47,10 +47,11 @@ Use it directly on a webpage with a script module: ```html ``` @@ -58,8 +59,8 @@ Use it directly on a webpage with a script module: ```javascript // `hash` is a 64-char hex string -const hash = '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef' -const { work } = await NanoPow.work_generate(hash) +const hash = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"; +const { work } = await NanoPow.work_generate(hash); // Result is a 16-char hex string ``` @@ -67,10 +68,10 @@ const { work } = await NanoPow.work_generate(hash) ```javascript // `work` is a 16-char hex string -const work = 'fedcba0987654321' +const work = "fedcba0987654321"; // `hash` is a 64-char hex string -const hash = '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef' -const { valid } = await NanoPow.work_validate(work, hash) +const hash = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"; +const { valid } = await NanoPow.work_validate(work, hash); // Result is a boolean ``` @@ -79,15 +80,15 @@ const { valid } = await NanoPow.work_validate(work, hash) ```javascript const options = { // default best available in order: webgpu => webgl => wasm => cpu - api: 'webgpu', + api: "webgpu", // default FFFFFFF800000000 for send/change blocks - difficulty: 'FFFFFFC000000000', + difficulty: "FFFFFFC000000000", // default 4, valid range 1-32 effort: 2, // default false - debug: true -} -const { work } = await NanoPow.work_generate(hash, options) + debug: true, +}; +const { work } = await NanoPow.work_generate(hash, options); ``` #### What is "effort"? @@ -96,16 +97,16 @@ NanoPow's "effort" metric is an abstraction of various GPU and CPU capabilities. Different systems will have different optimal settings, but as a general rule of thumb: -* WebGPU must strike a balance between the overhead of dispatching work to the -GPU and the time it takes to compute the dispatch itself. Start with a low value -like 2 or 4. -* WegGL works by drawing to an invisible 2-D canvas that is `effort * 256` -pixels long on each side. Since PoW speed in this case depends on resolution -_and_ framerate, push for a value as high as the GPU can support. For example, a -GPU that can draw 4096 x 4096 at 15 FPS should be set around 16 effort. -* WASM does not use the GPU at all and instead depends on Web Workers for CPU -multi-threading capabilities. Set effort equal to the number of physical cores -in the CPU. +- WebGPU must strike a balance between the overhead of dispatching work to the + GPU and the time it takes to compute the dispatch itself. Start with a low value + like 2 or 4. +- WegGL works by drawing to an invisible 2-D canvas that is `effort * 256` + pixels long on each side. Since PoW speed in this case depends on resolution + _and_ framerate, push for a value as high as the GPU can support. For example, a + GPU that can draw 4096 x 4096 at 15 FPS should be set around 16 effort. +- WASM does not use the GPU at all and instead depends on Web Workers for CPU + multi-threading capabilities. Set effort equal to the number of physical cores + in the CPU. ## Executables @@ -215,14 +216,14 @@ satisfies the following equation: > 𝘣𝘭𝘢𝘬𝘦2𝘣(𝘯𝘰𝘯𝘤𝘦 || 𝘣𝘭𝘰𝘤𝘬𝘩𝘢𝘴𝘩) ≥ 𝘵𝘩𝘳𝘦𝘴𝘩𝘰𝘭𝘥 -* 𝘣𝘭𝘢𝘬𝘦2𝘣() is the cryptographic hash function BLAKE2b. -* 𝘯𝘰𝘯𝘤𝘦, an 8-byte value, is generated for the transaction. -* || is concatenation. -* 𝘣𝘭𝘰𝘤𝘬𝘩𝘢𝘴𝘩, a 32-byte value, is either the public key of brand new accounts -without transactions or the hash of the most recent block in the account chain -for all other accounts. -* 𝘵𝘩𝘳𝘦𝘴𝘩𝘰𝘭𝘥 is 0xFFFFFFF800000000 for send/change blocks and 0xFFFFFE0000000000 -for receive/open/epoch blocks. +- 𝘣𝘭𝘢𝘬𝘦2𝘣() is the cryptographic hash function BLAKE2b. +- 𝘯𝘰𝘯𝘤𝘦, an 8-byte value, is generated for the transaction. +- || is concatenation. +- 𝘣𝘭𝘰𝘤𝘬𝘩𝘢𝘴𝘩, a 32-byte value, is either the public key of brand new accounts + without transactions or the hash of the most recent block in the account chain + for all other accounts. +- 𝘵𝘩𝘳𝘦𝘴𝘩𝘰𝘭𝘥 is 0xFFFFFFF800000000 for send/change blocks and 0xFFFFFE0000000000 + for receive/open/epoch blocks. The BLAKE2b implementation has been optimized to the extreme for this package due to the very narrow use case to which it is applied. The compute shader used @@ -233,10 +234,10 @@ every last bit of speed and performance out of it. A few basic tests are available in the source repository. -* `test/index.html` in the source repository contains a web interface to change -execution options and compare results. -* `test/script.sh` runs some basic benchmarks to check the CLI, and then it -starts the `nano-pow` server and sends some validate and generate requests. +- `test/index.html` in the source repository contains a web interface to change + execution options and compare results. +- `test/script.sh` runs some basic benchmarks to check the CLI, and then it + starts the `nano-pow` server and sends some validate and generate requests. ## Building diff --git a/asconfig.json.license b/asconfig.json.license index 7f56691..b3a54a5 100644 --- a/asconfig.json.license +++ b/asconfig.json.license @@ -1,2 +1,2 @@ -SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-FileCopyrightText: 2025 Chris Duncan SPDX-License-Identifier: GPL-3.0-or-later diff --git a/docs/benchmarks.md b/docs/benchmarks.md index 2d9b9e4..5989905 100644 --- a/docs/benchmarks.md +++ b/docs/benchmarks.md @@ -1,12 +1,14 @@ # Benchmarks to compute 16,777,216 nonces + _Each test is 128 samples of one pass (dispatch or frame) at zero difficulty with no early exit_ ## Summary + - Chromium WebGPU and Firefox WebGL are the clear winners - Chromium WebGL seems to suffer from an Nvidia driver issue - Firefox WebGPU exhibits a strange implementation bottleneck @@ -21,77 +23,82 @@ _Each test is 128 samples of one pass (dispatch or frame) at zero difficulty wit - Firefox supports up to a whopping 8192x8192 which actually makes it competitive with WebGPU ## All Results -| Version | System | Browser | API | Total | Rate | Median | Mean | -|-----------|--------------|-------------|-----------|-----------|----------|----------|----------| -| RC | RTX 3070 | Chromium N | WebGPU | 747 | 218.23 | 4.5 | 4.58 | -| RC | RTX 3070 | Firefox N | WebGL | 1096 | 117.06 | 8.55 | 8.54 | -| RC | RTX 3070 | Firefox | WebGL | 1174 | 116.57 | 9 | 8.58 | -| 2.0.0 | RTX 3070 | Chromium N | WebGPU | 1339 | 112.02 | ? | 10.47 | -| RC | Intel Xe | Chromium N | WebGPU | 5107 | 25.20 | 39.5 | 39.69 | -| RC | Intel Xe | Firefox | WebGL | 7166 | 18.84 | 52 | 53.07 | -| RC | Intel Xe | Firefox N | WebGL | 8060 | 16.71 | 63 | 59.83 | -| RC | iPhone 12 | Safari | WebGPU | 8586 | 14.97 | 67 | 66.79 | -| 2.0.0 | iPhone 12 | Safari | WebGPU | 8765 | 14.69 | 68 | 68.48 | -| RC | Intel Xe | Chromium N | WebGL | 9764 | 15.42 | 62.8 | 64.85 | -| 2.0.0 | Intel Xe | Chromium N | WebGPU | 10103 | 12.63 | ? | 78.93 | -| RC | RTX 3070 | Chromium N | WebGL | 10681 | 19.81 | 50.60 | 50.47 | -| RC | iPhone 12 | Safari | WebGL | 12631 | 10.54 | 95 | 94.86 | -| RC | iPad Mini 5 | Safari | WebGPU | 14232 | 8.78 | 114 | 113.85 | -| 2.0.0 | iPad Mini 5 | Safari | WebGPU | 14903 | 8.59 | 118 | 116.41 | -| RC | iPad Mini 5 | Safari | WebGL | 18928 | 6.97 | 145 | 143.40 | -| RC | Intel Xe | Firefox N | WebGPU | 25679 | 4.99 | 200 | 200.47 | -| 2.0.0 | Intel Xe | Firefox N | WebGPU | 25805 | 4.94 | ? | 201.60 | -| 2.0.0 | RTX 3070 | Firefox N | WebGPU | 25629 | 4.97 | ? | 200.23 | -| RC | RTX 3070 | Firefox N | WebGPU | 25633 | 5.00 | 200 | 200.15 | -| 2.0.0 | RTX 3070 | Firefox | WebGL | 35224 | 3.72 | ? | 275.19 | -| 2.0.0 | RTX 3070 | Chromium N | WebGL | 47603 | 3.06 | ? | 371.90 | -| 2.0.0 | RTX 3070 | Firefox N | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | Intel Xe | Firefox | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | Intel Xe | Firefox N | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | Intel Xe | Chromium N | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | iPhone 12 | Safari | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | iPad Mini 5 | Safari | WebGL | Unusable | N/A | ? | N/A | + +| Version | System | Browser | API | Total | Rate | Median | Mean | +| ------- | ----------- | ---------- | ------ | -------- | ------ | ------ | ------ | +| RC | RTX 3070 | Chromium N | WebGPU | 747 | 218.23 | 4.5 | 4.58 | +| RC | RTX 3070 | Firefox N | WebGL | 1096 | 117.06 | 8.55 | 8.54 | +| RC | RTX 3070 | Firefox | WebGL | 1174 | 116.57 | 9 | 8.58 | +| 2.0.0 | RTX 3070 | Chromium N | WebGPU | 1339 | 112.02 | ? | 10.47 | +| RC | Intel Xe | Chromium N | WebGPU | 5107 | 25.20 | 39.5 | 39.69 | +| RC | Intel Xe | Firefox | WebGL | 7166 | 18.84 | 52 | 53.07 | +| RC | Intel Xe | Firefox N | WebGL | 8060 | 16.71 | 63 | 59.83 | +| RC | iPhone 12 | Safari | WebGPU | 8586 | 14.97 | 67 | 66.79 | +| 2.0.0 | iPhone 12 | Safari | WebGPU | 8765 | 14.69 | 68 | 68.48 | +| RC | Intel Xe | Chromium N | WebGL | 9764 | 15.42 | 62.8 | 64.85 | +| 2.0.0 | Intel Xe | Chromium N | WebGPU | 10103 | 12.63 | ? | 78.93 | +| RC | RTX 3070 | Chromium N | WebGL | 10681 | 19.81 | 50.60 | 50.47 | +| RC | iPhone 12 | Safari | WebGL | 12631 | 10.54 | 95 | 94.86 | +| RC | iPad Mini 5 | Safari | WebGPU | 14232 | 8.78 | 114 | 113.85 | +| 2.0.0 | iPad Mini 5 | Safari | WebGPU | 14903 | 8.59 | 118 | 116.41 | +| RC | iPad Mini 5 | Safari | WebGL | 18928 | 6.97 | 145 | 143.40 | +| RC | Intel Xe | Firefox N | WebGPU | 25679 | 4.99 | 200 | 200.47 | +| 2.0.0 | Intel Xe | Firefox N | WebGPU | 25805 | 4.94 | ? | 201.60 | +| 2.0.0 | RTX 3070 | Firefox N | WebGPU | 25629 | 4.97 | ? | 200.23 | +| RC | RTX 3070 | Firefox N | WebGPU | 25633 | 5.00 | 200 | 200.15 | +| 2.0.0 | RTX 3070 | Firefox | WebGL | 35224 | 3.72 | ? | 275.19 | +| 2.0.0 | RTX 3070 | Chromium N | WebGL | 47603 | 3.06 | ? | 371.90 | +| 2.0.0 | RTX 3070 | Firefox N | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | Intel Xe | Firefox | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | Intel Xe | Firefox N | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | Intel Xe | Chromium N | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | iPhone 12 | Safari | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | iPad Mini 5 | Safari | WebGL | Unusable | N/A | ? | N/A | ## RTX 3070 -| Version | Browser | API | Total | Rate | Median | Mean | -|-----------|-------------|-----------|-----------|----------|----------|----------| -| RC | Chromium N | WebGPU | 747 | 218.23 | 4.5 | 4.58 | -| RC | Firefox N | WebGL | 1096 | 117.06 | 8.55 | 8.54 | -| RC | Firefox | WebGL | 1174 | 116.57 | 9 | 8.58 | -| 2.0.0 | Chromium N | WebGPU | 1339 | 112.02 | ? | 10.47 | -| RC | Chromium N | WebGL | 10681 | 19.81 | 50.60 | 50.47 | -| 2.0.0 | Firefox N | WebGPU | 25629 | 4.97 | ? | 200.23 | -| RC | Firefox N | WebGPU | 25633 | 5.00 | 200 | 200.15 | -| 2.0.0 | Firefox | WebGL | 35224 | 3.72 | ? | 275.19 | -| 2.0.0 | Chromium N | WebGL | 47603 | 3.06 | ? | 371.90 | -| 2.0.0 | Firefox N | WebGL | Unusable | N/A | ? | N/A | + +| Version | Browser | API | Total | Rate | Median | Mean | +| ------- | ---------- | ------ | -------- | ------ | ------ | ------ | +| RC | Chromium N | WebGPU | 747 | 218.23 | 4.5 | 4.58 | +| RC | Firefox N | WebGL | 1096 | 117.06 | 8.55 | 8.54 | +| RC | Firefox | WebGL | 1174 | 116.57 | 9 | 8.58 | +| 2.0.0 | Chromium N | WebGPU | 1339 | 112.02 | ? | 10.47 | +| RC | Chromium N | WebGL | 10681 | 19.81 | 50.60 | 50.47 | +| 2.0.0 | Firefox N | WebGPU | 25629 | 4.97 | ? | 200.23 | +| RC | Firefox N | WebGPU | 25633 | 5.00 | 200 | 200.15 | +| 2.0.0 | Firefox | WebGL | 35224 | 3.72 | ? | 275.19 | +| 2.0.0 | Chromium N | WebGL | 47603 | 3.06 | ? | 371.90 | +| 2.0.0 | Firefox N | WebGL | Unusable | N/A | ? | N/A | ## Intel Xe integrated graphics -| Version | Browser | API | Total | Rate | Median | Mean | -|-----------|-------------|-----------|-----------|----------|----------|----------| -| RC | Chromium N | WebGPU | 5107 | 25.20 | 39.5 | 39.69 | -| RC | Firefox | WebGL | 7166 | 18.84 | 52 | 53.07 | -| RC | Firefox N | WebGL | 8060 | 16.71 | 63 | 59.83 | -| RC | Chromium N | WebGL | 9764 | 15.42 | 62.8 | 64.85 | -| 2.0.0 | Chromium N | WebGPU | 10103 | 12.63 | ? | 78.93 | -| RC | Firefox N | WebGPU | 25679 | 4.99 | 200 | 200.47 | -| 2.0.0 | Firefox N | WebGPU | 25805 | 4.94 | ? | 201.60 | -| 2.0.0 | Firefox | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | Firefox N | WebGL | Unusable | N/A | ? | N/A | -| 2.0.0 | Chromium N | WebGL | Unusable | N/A | ? | N/A | + +| Version | Browser | API | Total | Rate | Median | Mean | +| ------- | ---------- | ------ | -------- | ----- | ------ | ------ | +| RC | Chromium N | WebGPU | 5107 | 25.20 | 39.5 | 39.69 | +| RC | Firefox | WebGL | 7166 | 18.84 | 52 | 53.07 | +| RC | Firefox N | WebGL | 8060 | 16.71 | 63 | 59.83 | +| RC | Chromium N | WebGL | 9764 | 15.42 | 62.8 | 64.85 | +| 2.0.0 | Chromium N | WebGPU | 10103 | 12.63 | ? | 78.93 | +| RC | Firefox N | WebGPU | 25679 | 4.99 | 200 | 200.47 | +| 2.0.0 | Firefox N | WebGPU | 25805 | 4.94 | ? | 201.60 | +| 2.0.0 | Firefox | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | Firefox N | WebGL | Unusable | N/A | ? | N/A | +| 2.0.0 | Chromium N | WebGL | Unusable | N/A | ? | N/A | ## iPhone 12 (A14 Bionic, ??? 4-core GPU) -| Version | Browser | API | Total | Rate | Median | Mean | -|-----------|-------------|-----------|-----------|----------|----------|----------| -| RC | Safari | WebGPU | 8586 | 14.97 | 67 | 66.79 | -| 2.0.0 | Safari | WebGPU | 8765 | 14.69 | 68 | 68.48 | -| RC | Safari | WebGL | 12631 | 10.54 | 95 | 94.86 | -| 2.0.0 | Safari | WebGL | Unusable | N/A | ? | N/A | + +| Version | Browser | API | Total | Rate | Median | Mean | +| ------- | ------- | ------ | -------- | ----- | ------ | ----- | +| RC | Safari | WebGPU | 8586 | 14.97 | 67 | 66.79 | +| 2.0.0 | Safari | WebGPU | 8765 | 14.69 | 68 | 68.48 | +| RC | Safari | WebGL | 12631 | 10.54 | 95 | 94.86 | +| 2.0.0 | Safari | WebGL | Unusable | N/A | ? | N/A | ## iPad Mini 5 (A12 Bionic, G11P 4-core GPU) -| Version | Browser | API | Total | Rate | Median | Mean | -|-----------|-------------|-----------|-----------|----------|----------|----------| -| RC | Safari | WebGPU | 14232 | 8.78 | 114 | 113.85 | -| 2.0.0 | Safari | WebGPU | 14903 | 8.59 | 118 | 116.41 | -| RC | Safari | WebGL | 18928 | 6.97 | 145 | 143.40 | -| 2.0.0 | Safari | WebGL | Unusable | N/A | ? | N/A | + +| Version | Browser | API | Total | Rate | Median | Mean | +| ------- | ------- | ------ | -------- | ---- | ------ | ------ | +| RC | Safari | WebGPU | 14232 | 8.78 | 114 | 113.85 | +| 2.0.0 | Safari | WebGPU | 14903 | 8.59 | 118 | 116.41 | +| RC | Safari | WebGL | 18928 | 6.97 | 145 | 143.40 | +| 2.0.0 | Safari | WebGL | Unusable | N/A | ? | N/A | diff --git a/docs/blake2.md b/docs/blake2.md index c47238b..6d94e27 100644 --- a/docs/blake2.md +++ b/docs/blake2.md @@ -1,15 +1,15 @@ 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 -* i is the current subprocess within that round -* a, b, c, d are elements of `v` at specific indexes -* sigma is a defined set of array indexes for `m` -* rotr64 is a right-hand bit rotation function +- r is the current round +- i is the current subprocess within that round +- a, b, c, d are elements of `v` at specific indexes +- sigma is a defined set of array indexes for `m` +- rotr64 is a right-hand bit rotation function ``` a = a + b diff --git a/docs/nano-pow.1 b/docs/nano-pow.1 index c19da2a..21a7411 100644 --- a/docs/nano-pow.1 +++ b/docs/nano-pow.1 @@ -1,4 +1,4 @@ -\# SPDX-FileCopyrightText: 2025 Chris Duncan +\# SPDX-FileCopyrightText: 2025 Chris Duncan \# SPDX-License-Identifier: GPL-3.0-or-later .TH nano-pow 1 2025-06-27 "nano-pow v5.1.2" @@ -174,7 +174,7 @@ Email . .SH COPYRIGHT .PP .EX -Copyright \(co 2025 Chris Duncan +Copyright \(co 2025 Chris Duncan Nano PoW documentation: License GPLv3+: GNU GPL version 3 or later Portions of this code are also provided under the MIT License: diff --git a/docs/nano-pow.service b/docs/nano-pow.service index c67d7c7..bb438cd 100644 --- a/docs/nano-pow.service +++ b/docs/nano-pow.service @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 Chris Duncan +# SPDX-FileCopyrightText: 2025 Chris Duncan # SPDX-License-Identifier: GPL-3.0-or-later ## Example systemd service unit file to start the nano-pow server at login. diff --git a/esbuild.mjs b/esbuild.mjs index d900132..b58fb40 100644 --- a/esbuild.mjs +++ b/esbuild.mjs @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { build } from 'esbuild' diff --git a/package-lock.json.license b/package-lock.json.license index 7f56691..b3a54a5 100644 --- a/package-lock.json.license +++ b/package-lock.json.license @@ -1,2 +1,2 @@ -SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-FileCopyrightText: 2025 Chris Duncan SPDX-License-Identifier: GPL-3.0-or-later diff --git a/package.json b/package.json index b51b659..d3f11e5 100644 --- a/package.json +++ b/package.json @@ -17,10 +17,10 @@ "webgl", "webgl2" ], - "homepage": "https://zoso.dev", - "bugs": "bug-nano-pow@zoso.dev", + "homepage": "https://codecow.com", + "bugs": "bug-nano-pow@codecow.com", "license": "(GPL-3.0-or-later AND MIT)", - "author": "Chris Duncan ", + "author": "Chris Duncan ", "funding": { "type": "nano", "url": "nano:nano_1zosoqs47yt47bnfg7sdf46kj7asn58b7uzm9ek95jw7ccatq37898u1zoso" @@ -39,7 +39,7 @@ "man": "./docs/nano-pow.1", "repository": { "type": "git", - "url": "git+https://zoso.dev/nano-pow.git" + "url": "git+https://git.codecow.com/nano-pow.git" }, "scripts": { "benchmark": "npm run build && ./dist/bin/nano-pow.sh --benchmark 10 --debug", diff --git a/package.json.license b/package.json.license index 7f56691..b3a54a5 100644 --- a/package.json.license +++ b/package.json.license @@ -1,2 +1,2 @@ -SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-FileCopyrightText: 2025 Chris Duncan SPDX-License-Identifier: GPL-3.0-or-later diff --git a/scripts/blake2b-gen.js b/scripts/blake2b-gen.js index c47b1e7..c8070ac 100644 --- a/scripts/blake2b-gen.js +++ b/scripts/blake2b-gen.js @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { writeFile } from 'node:fs/promises' @@ -227,7 +227,7 @@ function generate (api) { const main = (() => { switch (api) { case 'wasm': { - return `//! SPDX-FileCopyrightText: 2025 Chris Duncan + 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 { @@ -265,7 +265,7 @@ export function main (seed: u64, h0: u64, h1: u64, h2: u64, h3: u64, difficulty: case 'webgl': { return `#version 300 es #pragma vscode_glsllint_stage: frag -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-FileContributor: Ben Green //! SPDX-License-Identifier: GPL-3.0-or-later AND MIT @@ -318,7 +318,7 @@ void main() { ` } case 'webgpu': { - return `//! SPDX-FileCopyrightText: 2025 Chris Duncan + return `//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later // Input buffers diff --git a/src/bin/cli.ts b/src/bin/cli.ts index ccd35cb..e8e10a8 100755 --- a/src/bin/cli.ts +++ b/src/bin/cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { Serializable, spawn } from 'node:child_process' diff --git a/src/bin/nano-pow.sh b/src/bin/nano-pow.sh index 612e828..921b457 100755 --- a/src/bin/nano-pow.sh +++ b/src/bin/nano-pow.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: 2025 Chris Duncan +# SPDX-FileCopyrightText: 2025 Chris Duncan # SPDX-License-Identifier: GPL-3.0-or-later SCRIPT_LINK=$(readlink -f "$0"); diff --git a/src/bin/server.ts b/src/bin/server.ts index 2973f21..32b781b 100755 --- a/src/bin/server.ts +++ b/src/bin/server.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import * as http from 'node:http' diff --git a/src/lib/config/index.ts b/src/lib/config/index.ts index 113c32c..1339822 100644 --- a/src/lib/config/index.ts +++ b/src/lib/config/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { NanoPowOptions } from '#types' diff --git a/src/lib/generate/cpu/index.ts b/src/lib/generate/cpu/index.ts index 65c292b..ae3a1c3 100644 --- a/src/lib/generate/cpu/index.ts +++ b/src/lib/generate/cpu/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { NanoPowValidate } from '#lib/validate' diff --git a/src/lib/generate/index.ts b/src/lib/generate/index.ts index b3ffdb3..9fd5b9f 100644 --- a/src/lib/generate/index.ts +++ b/src/lib/generate/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later export { generate as NanoPowCpu } from '#lib/generate/cpu' diff --git a/src/lib/generate/wasm/asm/index.ts b/src/lib/generate/wasm/asm/index.ts index 06738a3..437cb04 100644 --- a/src/lib/generate/wasm/asm/index.ts +++ b/src/lib/generate/wasm/asm/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! 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); diff --git a/src/lib/generate/wasm/asm/tsconfig.json.license b/src/lib/generate/wasm/asm/tsconfig.json.license index 7f56691..b3a54a5 100644 --- a/src/lib/generate/wasm/asm/tsconfig.json.license +++ b/src/lib/generate/wasm/asm/tsconfig.json.license @@ -1,2 +1,2 @@ -SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-FileCopyrightText: 2025 Chris Duncan SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/lib/generate/wasm/index.ts b/src/lib/generate/wasm/index.ts index 704d659..532c2a5 100644 --- a/src/lib/generate/wasm/index.ts +++ b/src/lib/generate/wasm/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { NanoPowValidate } from '#lib/validate' diff --git a/src/lib/generate/wasm/worker.ts b/src/lib/generate/wasm/worker.ts index 2de0fce..945dd20 100644 --- a/src/lib/generate/wasm/worker.ts +++ b/src/lib/generate/wasm/worker.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later //@ts-expect-error diff --git a/src/lib/generate/webgl/index.ts b/src/lib/generate/webgl/index.ts index 16594cf..9dffe92 100644 --- a/src/lib/generate/webgl/index.ts +++ b/src/lib/generate/webgl/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-FileContributor: Ben Green //! SPDX-License-Identifier: GPL-3.0-or-later AND MIT diff --git a/src/lib/generate/webgl/shaders/downsample.frag b/src/lib/generate/webgl/shaders/downsample.frag index d9ab533..50c33ca 100644 --- a/src/lib/generate/webgl/shaders/downsample.frag +++ b/src/lib/generate/webgl/shaders/downsample.frag @@ -1,6 +1,6 @@ #version 300 es #pragma vscode_glsllint_stage: frag -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later #ifdef GL_FRAGMENT_PRECISION_HIGH diff --git a/src/lib/generate/webgl/shaders/draw.frag b/src/lib/generate/webgl/shaders/draw.frag index deb4009..e340410 100644 --- a/src/lib/generate/webgl/shaders/draw.frag +++ b/src/lib/generate/webgl/shaders/draw.frag @@ -1,6 +1,6 @@ #version 300 es #pragma vscode_glsllint_stage: frag -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-FileContributor: Ben Green //! SPDX-License-Identifier: GPL-3.0-or-later AND MIT // hash - Array of 32-bit integers comprising a 32-byte Nano block hash diff --git a/src/lib/generate/webgl/shaders/index.ts b/src/lib/generate/webgl/shaders/index.ts index a780471..67de527 100644 --- a/src/lib/generate/webgl/shaders/index.ts +++ b/src/lib/generate/webgl/shaders/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { default as downsampleSource } from './downsample.frag' diff --git a/src/lib/generate/webgl/shaders/quad.vert b/src/lib/generate/webgl/shaders/quad.vert index 9491409..41b9cf0 100644 --- a/src/lib/generate/webgl/shaders/quad.vert +++ b/src/lib/generate/webgl/shaders/quad.vert @@ -1,6 +1,6 @@ #version 300 es #pragma vscode_glsllint_stage: vert -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-FileContributor: Ben Green //! SPDX-License-Identifier: GPL-3.0-or-later AND MIT diff --git a/src/lib/generate/webgl/shaders/webgl-shaders.d.ts b/src/lib/generate/webgl/shaders/webgl-shaders.d.ts index b444737..ef1ff09 100644 --- a/src/lib/generate/webgl/shaders/webgl-shaders.d.ts +++ b/src/lib/generate/webgl/shaders/webgl-shaders.d.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later declare module '*.frag' { diff --git a/src/lib/generate/webgpu/index.ts b/src/lib/generate/webgpu/index.ts index 45b83cc..9c021cc 100644 --- a/src/lib/generate/webgpu/index.ts +++ b/src/lib/generate/webgpu/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { default as NanoPowGpuComputeShader } from './shaders/compute.wgsl' diff --git a/src/lib/generate/webgpu/shaders/compute.wgsl b/src/lib/generate/webgpu/shaders/compute.wgsl index f3cf803..88cc24c 100644 --- a/src/lib/generate/webgpu/shaders/compute.wgsl +++ b/src/lib/generate/webgpu/shaders/compute.wgsl @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later // Input buffers struct INPUT { diff --git a/src/lib/generate/webgpu/shaders/webgpu-shaders.d.ts b/src/lib/generate/webgpu/shaders/webgpu-shaders.d.ts index 935dff6..8ff5db3 100644 --- a/src/lib/generate/webgpu/shaders/webgpu-shaders.d.ts +++ b/src/lib/generate/webgpu/shaders/webgpu-shaders.d.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later declare module '*.wgsl' { diff --git a/src/lib/index.ts b/src/lib/index.ts index 12d0bed..5945b9b 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { NanoPowValidate } from '#lib/validate' diff --git a/src/lib/validate/index.ts b/src/lib/validate/index.ts index 3ed1482..f197097 100644 --- a/src/lib/validate/index.ts +++ b/src/lib/validate/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { WorkValidateResponse } from '#types' diff --git a/src/main.ts b/src/main.ts index 4e920d9..63c0df8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { work_generate, work_validate } from './lib' diff --git a/src/types.d.ts b/src/types.d.ts index 1ea3a54..53862e9 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later declare global { diff --git a/src/utils/api-support/index.ts b/src/utils/api-support/index.ts index 534ce72..3f5be34 100644 --- a/src/utils/api-support/index.ts +++ b/src/utils/api-support/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { wasm } from './wasm' diff --git a/src/utils/api-support/wasm.ts b/src/utils/api-support/wasm.ts index 947976e..5fe04f7 100644 --- a/src/utils/api-support/wasm.ts +++ b/src/utils/api-support/wasm.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later const wasm = { isSupported: false } diff --git a/src/utils/api-support/webgl.ts b/src/utils/api-support/webgl.ts index 4d38218..c31c4ef 100644 --- a/src/utils/api-support/webgl.ts +++ b/src/utils/api-support/webgl.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later const webgl = { isSupported: false } diff --git a/src/utils/api-support/webgpu.ts b/src/utils/api-support/webgpu.ts index a45243d..dfdf969 100644 --- a/src/utils/api-support/webgpu.ts +++ b/src/utils/api-support/webgpu.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later const webgpu = { isSupported: false } diff --git a/src/utils/bigint.ts b/src/utils/bigint.ts index 2f3033b..3360b88 100644 --- a/src/utils/bigint.ts +++ b/src/utils/bigint.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later export function bigintAsUintNArray (int: bigint, bits: number, length: number = 0) { diff --git a/src/utils/cache.ts b/src/utils/cache.ts index 8c77c0b..5d446f8 100644 --- a/src/utils/cache.ts +++ b/src/utils/cache.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { WorkGenerateResponse } from "#types" diff --git a/src/utils/index.ts b/src/utils/index.ts index 0015a04..be5fa83 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later import { Cache } from '.' diff --git a/src/utils/logger.ts b/src/utils/logger.ts index fc5653f..e902a5b 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later /** diff --git a/src/utils/queue.ts b/src/utils/queue.ts index 8bd26cb..6bcc04c 100644 --- a/src/utils/queue.ts +++ b/src/utils/queue.ts @@ -1,4 +1,4 @@ -//! SPDX-FileCopyrightText: 2025 Chris Duncan +//! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later /** diff --git a/test/blockhashes.txt.license b/test/blockhashes.txt.license index 7f56691..b3a54a5 100644 --- a/test/blockhashes.txt.license +++ b/test/blockhashes.txt.license @@ -1,2 +1,2 @@ -SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-FileCopyrightText: 2025 Chris Duncan SPDX-License-Identifier: GPL-3.0-or-later diff --git a/test/index.html b/test/index.html index 8fe2d75..3540d2b 100644 --- a/test/index.html +++ b/test/index.html @@ -1,5 +1,5 @@ diff --git a/test/script.sh b/test/script.sh index c825107..f3dfd32 100755 --- a/test/script.sh +++ b/test/script.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: 2025 Chris Duncan +# SPDX-FileCopyrightText: 2025 Chris Duncan # SPDX-License-Identifier: GPL-3.0-or-later set -euo pipefail diff --git a/tsconfig.json.license b/tsconfig.json.license index 7f56691..b3a54a5 100644 --- a/tsconfig.json.license +++ b/tsconfig.json.license @@ -1,2 +1,2 @@ -SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-FileCopyrightText: 2025 Chris Duncan SPDX-License-Identifier: GPL-3.0-or-later