@msgboard/core 0.0.31 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils.d.ts CHANGED
@@ -16,6 +16,32 @@ export declare function checkWork(msg: types.MessageSeed, msgDifficulty: bigint)
16
16
  * @throws error if the challenge is invalid
17
17
  */
18
18
  export declare function getChallenge(msg: types.MessageSeed): Uint8Array<ArrayBuffer>;
19
+ /**
20
+ * A stateful, fast proof-of-work search over consecutive nonces.
21
+ *
22
+ * {@link checkWork} recomputes `challenge = g·(nonce·digest + blockHash)` from scratch
23
+ * every nonce — a full elliptic-curve scalar MULTIPLICATION, which dominates the grind
24
+ * (~0.6 ms each in JS, capping a naive loop near ~1.5k hashes/s). But across consecutive
25
+ * nonces the scalar grows by a constant `digest` (nonce increments by 1), so the challenge
26
+ * POINT advances by a constant point `D = g·digest`. Replacing the per-nonce scalar MULTIPLY
27
+ * with a single point ADDITION makes the search ~20-50x faster while producing bit-identical
28
+ * challenges: `g·a + g·b = g·(a+b)`, and `g·x` depends only on `x mod n`, so the running point
29
+ * after k additions equals `g·(nonce·digest + blockHash)` exactly. The constant message bytes
30
+ * (32-byte category + data) are concatenated once.
31
+ *
32
+ * `next(msgDifficulty)` advances `message.nonce` by 1, steps (or rebases) the running point,
33
+ * and returns the work hash if `hash % msgDifficulty === 0n`, else null. It reads
34
+ * `message.blockHash` live every call: if it changed since the running point was based (the
35
+ * {@link MsgBoardClient.doPoW} block poller updates it mid-grind), the point is rebased with a
36
+ * single scalar multiply before continuing. {@link checkWork} remains the canonical verifier;
37
+ * this only accelerates finding a winning nonce, and must stay byte-for-byte equivalent to it.
38
+ *
39
+ * @param message the message to grind; its `nonce` is mutated in place as the search advances.
40
+ * @returns an object whose `next(msgDifficulty)` performs one nonce step.
41
+ */
42
+ export declare function createChallengeSearch(message: types.MessageSeed): {
43
+ next(msgDifficulty: bigint): Hex | null;
44
+ };
19
45
  /**
20
46
  * Returns the modulus used for the PoW verification = (2^24)+(10k*dataLen).
21
47
  * @param factors the message difficulty factors
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAad,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAM3C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,wBAWtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,2BASlD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,UAGnG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,iBAAiB,UAIxF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAIpE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,iBAExD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,iBAU3C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,WAAW,CAWnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CASnE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CASjE;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC,QAAQ,CAMvE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAad,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAM3C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,wBAWtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,2BASlD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW;wBAkBxC,MAAM,GAAG,GAAG,GAAG,IAAI;EAkB1C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,UAGnG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,iBAAiB,UAIxF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAIpE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,iBAExD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,iBAU3C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,WAAW,CAWnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CASnE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CASjE;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC,QAAQ,CAMvE"}
package/dist/utils.js CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.checkWork = checkWork;
7
7
  exports.getChallenge = getChallenge;
8
+ exports.createChallengeSearch = createChallengeSearch;
8
9
  exports.difficulty = difficulty;
9
10
  exports.difficultyDigest = difficultyDigest;
10
11
  exports.categoryHash = categoryHash;
@@ -55,6 +56,65 @@ function getChallenge(msg) {
55
56
  }
56
57
  return Uint8Array.from(challenge.getX().toArray());
57
58
  }
59
+ /**
60
+ * A stateful, fast proof-of-work search over consecutive nonces.
61
+ *
62
+ * {@link checkWork} recomputes `challenge = g·(nonce·digest + blockHash)` from scratch
63
+ * every nonce — a full elliptic-curve scalar MULTIPLICATION, which dominates the grind
64
+ * (~0.6 ms each in JS, capping a naive loop near ~1.5k hashes/s). But across consecutive
65
+ * nonces the scalar grows by a constant `digest` (nonce increments by 1), so the challenge
66
+ * POINT advances by a constant point `D = g·digest`. Replacing the per-nonce scalar MULTIPLY
67
+ * with a single point ADDITION makes the search ~20-50x faster while producing bit-identical
68
+ * challenges: `g·a + g·b = g·(a+b)`, and `g·x` depends only on `x mod n`, so the running point
69
+ * after k additions equals `g·(nonce·digest + blockHash)` exactly. The constant message bytes
70
+ * (32-byte category + data) are concatenated once.
71
+ *
72
+ * `next(msgDifficulty)` advances `message.nonce` by 1, steps (or rebases) the running point,
73
+ * and returns the work hash if `hash % msgDifficulty === 0n`, else null. It reads
74
+ * `message.blockHash` live every call: if it changed since the running point was based (the
75
+ * {@link MsgBoardClient.doPoW} block poller updates it mid-grind), the point is rebased with a
76
+ * single scalar multiply before continuing. {@link checkWork} remains the canonical verifier;
77
+ * this only accelerates finding a winning nonce, and must stay byte-for-byte equivalent to it.
78
+ *
79
+ * @param message the message to grind; its `nonce` is mutated in place as the search advances.
80
+ * @returns an object whose `next(msgDifficulty)` performs one nonce step.
81
+ */
82
+ function createChallengeSearch(message) {
83
+ const digest = BigInt(difficultyDigest(message));
84
+ const stepPoint = g.mul(new bn_js_1.default(digest.toString())); // D = g·digest, constant for this grind
85
+ const suffix = new Uint8Array([
86
+ ...(0, viem_1.hexToBytes)(message.category, { size: 32 }),
87
+ ...(0, viem_1.hexToBytes)(message.data),
88
+ ]);
89
+ let point;
90
+ let basedBlockHash;
91
+ // (Re)anchor the running point to the current nonce + blockHash with one scalar multiply.
92
+ const rebase = () => {
93
+ const scalar = message.nonce * digest + BigInt(message.blockHash);
94
+ point = g.mul(new bn_js_1.default(scalar.toString()));
95
+ basedBlockHash = message.blockHash;
96
+ };
97
+ return {
98
+ next(msgDifficulty) {
99
+ message.nonce += 1n;
100
+ if (point === undefined || message.blockHash !== basedBlockHash) {
101
+ rebase();
102
+ }
103
+ else {
104
+ point = point.add(stepPoint);
105
+ }
106
+ if (point.isInfinity()) {
107
+ throw new Error('unable to create challenge');
108
+ }
109
+ const challenge = Uint8Array.from(point.getX().toArray());
110
+ const hash = (0, viem_1.sha256)(new Uint8Array([...challenge, ...suffix]));
111
+ if (BigInt(hash) % msgDifficulty !== 0n) {
112
+ return null;
113
+ }
114
+ return hash;
115
+ },
116
+ };
117
+ }
58
118
  /**
59
119
  * Returns the modulus used for the PoW verification = (2^24)+(10k*dataLen).
60
120
  * @param factors the message difficulty factors
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@msgboard/core",
3
- "version": "0.0.31",
3
+ "version": "0.0.32",
4
4
  "description": "MsgBoard proof-of-work engine (msgpow): pure primitives and encoding",
5
5
  "repository": "github:valve-tech/msgboard",
6
6
  "author": "MsgBoard",