@ibgib/core-gib 0.1.54 → 0.1.55
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/CHANGELOG.md +10 -3
- package/README.md +12 -15
- package/dist/keystone/aggregate-details.respec.d.mts +2 -0
- package/dist/keystone/aggregate-details.respec.d.mts.map +1 -0
- package/dist/keystone/aggregate-details.respec.mjs +118 -0
- package/dist/keystone/aggregate-details.respec.mjs.map +1 -0
- package/dist/keystone/keystone-constants.d.mts +5 -0
- package/dist/keystone/keystone-constants.d.mts.map +1 -1
- package/dist/keystone/keystone-constants.mjs +6 -1
- package/dist/keystone/keystone-constants.mjs.map +1 -1
- package/dist/keystone/keystone-helpers.d.mts +7 -1
- package/dist/keystone/keystone-helpers.d.mts.map +1 -1
- package/dist/keystone/keystone-helpers.mjs +5 -2
- package/dist/keystone/keystone-helpers.mjs.map +1 -1
- package/dist/keystone/keystone-service-v1.d.mts +51 -0
- package/dist/keystone/keystone-service-v1.d.mts.map +1 -1
- package/dist/keystone/keystone-service-v1.mjs +176 -9
- package/dist/keystone/keystone-service-v1.mjs.map +1 -1
- package/dist/keystone/keystone-service-v1.respec.mjs +40 -98
- package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
- package/dist/keystone/keystone-types.d.mts +5 -0
- package/dist/keystone/keystone-types.d.mts.map +1 -1
- package/dist/sync/graft-info/graft-info-helpers.respec.mjs +8 -8
- package/dist/sync/graft-info/graft-info-helpers.respec.mjs.map +1 -1
- package/dist/sync/sync-conflict-adv-multitimelines.respec.mjs +26 -30
- package/dist/sync/sync-conflict-adv-multitimelines.respec.mjs.map +1 -1
- package/dist/sync/sync-conflict-basic-divergence.respec.mjs +7 -8
- package/dist/sync/sync-conflict-basic-divergence.respec.mjs.map +1 -1
- package/dist/sync/sync-conflict-basic-multitimelines.respec.mjs +10 -11
- package/dist/sync/sync-conflict-basic-multitimelines.respec.mjs.map +1 -1
- package/dist/sync/sync-conflict-text-merge.respec.mjs +30 -33
- package/dist/sync/sync-conflict-text-merge.respec.mjs.map +1 -1
- package/dist/sync/sync-constants.d.mts +1 -56
- package/dist/sync/sync-constants.d.mts.map +1 -1
- package/dist/sync/sync-constants.mjs +2 -59
- package/dist/sync/sync-constants.mjs.map +1 -1
- package/dist/sync/sync-helpers.d.mts +0 -1
- package/dist/sync/sync-helpers.d.mts.map +1 -1
- package/dist/sync/sync-helpers.mjs +1 -6
- package/dist/sync/sync-helpers.mjs.map +1 -1
- package/dist/sync/sync-innerspace-constants.respec.mjs +5 -9
- package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs +6 -7
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs +22 -22
- package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +8 -9
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +6 -7
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-partial-update.respec.mjs +7 -8
- package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace.respec.mjs +8 -11
- package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-http-node-adapter.mjs +10 -5
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-http-node-adapter.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-types.d.mts +3 -1
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.d.mts +4 -2
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mjs +37 -6
- package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-types.d.mts +3 -1
- package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.d.mts +4 -2
- package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mjs +37 -0
- package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +7 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +10 -2
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +50 -38
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-types.d.mts +21 -5
- package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.d.mts +30 -5
- package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.mjs +41 -25
- package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +2 -11
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs +7 -51
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts +1 -47
- package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.d.mts +6 -58
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +23 -425
- package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +2 -2
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
- package/dist/sync/sync-types.d.mts +2 -19
- package/dist/sync/sync-types.d.mts.map +1 -1
- package/dist/sync/sync-types.mjs.map +1 -1
- package/dist/test/mock-space.mjs +1 -1
- package/dist/test/mock-space.mjs.map +1 -1
- package/dist/test-helpers.d.mts +0 -6
- package/dist/test-helpers.d.mts.map +1 -1
- package/dist/test-helpers.mjs +2 -25
- package/dist/test-helpers.mjs.map +1 -1
- package/package.json +7 -31
- package/src/keystone/aggregate-details.respec.mts +137 -0
- package/src/keystone/docs/architecture.md +16 -0
- package/src/keystone/keystone-constants.mts +6 -1
- package/src/keystone/keystone-helpers.mts +9 -1
- package/src/keystone/keystone-service-v1.mts +216 -8
- package/src/keystone/keystone-service-v1.respec.mts +39 -103
- package/src/keystone/keystone-types.mts +6 -0
- package/src/sync/README.md +18 -0
- package/src/sync/docs/architecture.md +21 -0
- package/src/sync/graft-info/graft-info-helpers.respec.mts +7 -7
- package/src/sync/sync-conflict-adv-multitimelines.respec.mts +25 -29
- package/src/sync/sync-conflict-basic-divergence.respec.mts +6 -7
- package/src/sync/sync-conflict-basic-multitimelines.respec.mts +9 -10
- package/src/sync/sync-conflict-text-merge.respec.mts +29 -32
- package/src/sync/sync-constants.mts +2 -62
- package/src/sync/sync-helpers.mts +1 -8
- package/src/sync/sync-id-testlog.txt +421 -0
- package/src/sync/sync-innerspace-constants.respec.mts +4 -8
- package/src/sync/sync-innerspace-deep-updates.respec.mts +5 -6
- package/src/sync/sync-innerspace-dest-ahead-withid.respec.mts +23 -25
- package/src/sync/sync-innerspace-dest-ahead.respec.mts +7 -8
- package/src/sync/sync-innerspace-multiple-timelines.respec.mts +5 -6
- package/src/sync/sync-innerspace-partial-update.respec.mts +6 -7
- package/src/sync/sync-innerspace.respec.mts +7 -10
- package/src/sync/sync-peer/sync-peer-http-receiver/sync-http-node-adapter.mts +5 -5
- package/src/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-types.mts +5 -1
- package/src/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mts +30 -9
- package/src/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-types.mts +3 -1
- package/src/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mts +29 -2
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +7 -1
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +51 -38
- package/src/sync/sync-peer/sync-peer-types.mts +23 -6
- package/src/sync/sync-peer/sync-peer-v1.mts +68 -28
- package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +6 -66
- package/src/sync/sync-saga-context/sync-saga-context-types.mts +1 -48
- package/src/sync/sync-saga-coordinator.mts +12 -552
- package/src/sync/sync-saga-message/sync-saga-message-types.mts +2 -3
- package/src/sync/sync-types.mts +2 -22
- package/src/sync/unused-identity-backup.mts.md +311 -0
- package/src/test/mock-space.mts +1 -1
- package/src/test-helpers.mts +1 -26
- package/test_output.log +0 -0
- package/test_output_utf8.txt +398 -0
- package/.vscode/core-gib-snippets.code-snippets +0 -293
- package/.vscode/launch.json +0 -40
- package/.vscode/settings.json +0 -58
- package/.vscode/tasks.json +0 -37
- package/dist/sync/sync-peer/sync-peer-http.respec.d.mts +0 -2
- package/dist/sync/sync-peer/sync-peer-http.respec.d.mts.map +0 -1
- package/dist/sync/sync-peer/sync-peer-http.respec.mjs +0 -340
- package/dist/sync/sync-peer/sync-peer-http.respec.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.d.mts +0 -42
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.mjs +0 -312
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.d.mts +0 -84
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.mjs +0 -65
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.d.mts +0 -73
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mjs +0 -667
- package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs +0 -67
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs +0 -67
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs +0 -68
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs +0 -69
- package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/src/sync/sync-peer/sync-peer-http.respec.mts +0 -396
- package/src/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.mts +0 -298
- package/src/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.mts +0 -150
- package/src/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mts +0 -666
- package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mts +0 -87
- package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mts +0 -88
- package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mts +0 -88
- package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mts +0 -90
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { extractErrorMsg, } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
1
|
+
import { extractErrorMsg, mergeMapsOrArrays_Naive } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
2
2
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
3
3
|
import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
|
|
4
4
|
import { KeystoneReplenishStrategy, } from './keystone-types.mjs';
|
|
5
5
|
import { KeystoneStrategyFactory } from './strategy/keystone-strategy-factory.mjs';
|
|
6
|
-
import { POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_VERB_MANAGE } from './keystone-constants.mjs';
|
|
7
|
-
import { addToBindingMap, createKeystoneIbGibImpl, evolvePersistAndRegisterKeystone, generateOpaqueChallengeId, resolveTargetPool, selectChallengeIds, solveAndReplenish, validateKeystoneTransition, } from './keystone-helpers.mjs';
|
|
8
|
-
const logalot = GLOBAL_LOG_A_LOT
|
|
6
|
+
import { POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_VERB_MANAGE, KEYSTONE_CHECKPOINT_FREQUENCY } from './keystone-constants.mjs';
|
|
7
|
+
import { addToBindingMap, createKeystoneIbGibImpl, evolvePersistAndRegisterKeystone, generateOpaqueChallengeId, resolveTargetPool, selectChallengeIds, solveAndReplenish, validateKeystoneTransition, validateGenesisKeystone, validateKeystoneGraph } from './keystone-helpers.mjs';
|
|
8
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
9
9
|
/**
|
|
10
10
|
* Facade for managing Keystone Identities.
|
|
11
11
|
*
|
|
@@ -35,7 +35,7 @@ export class KeystoneService_V1 {
|
|
|
35
35
|
salt: config.salt, timestamp, index: i
|
|
36
36
|
});
|
|
37
37
|
const solution = await strategy.generateSolution({
|
|
38
|
-
poolSecret, poolId: config.
|
|
38
|
+
poolSecret, poolId: config.id, challengeId,
|
|
39
39
|
});
|
|
40
40
|
const challenge = await strategy.generateChallenge({ solution });
|
|
41
41
|
challenges[challengeId] = challenge;
|
|
@@ -43,7 +43,7 @@ export class KeystoneService_V1 {
|
|
|
43
43
|
addToBindingMap(bindingMap, challengeId);
|
|
44
44
|
}
|
|
45
45
|
challengePools.push({
|
|
46
|
-
id: config.
|
|
46
|
+
id: config.id,
|
|
47
47
|
config,
|
|
48
48
|
challenges,
|
|
49
49
|
bindingMap
|
|
@@ -96,7 +96,7 @@ export class KeystoneService_V1 {
|
|
|
96
96
|
verb: claim.verb
|
|
97
97
|
});
|
|
98
98
|
if (logalot) {
|
|
99
|
-
console.log(`${lc} Selected pool: ${pool.id} (size: ${Object.keys(pool.challenges).length}) (I:
|
|
99
|
+
console.log(`${lc} Selected pool: ${pool.id} (size: ${Object.keys(pool.challenges).length}) (I: 6b26d6f4aad18380f2b3a0989b592826)`);
|
|
100
100
|
}
|
|
101
101
|
// 2. Calculate Costs (Select IDs)
|
|
102
102
|
const idsToSolve = selectChallengeIds({
|
|
@@ -116,11 +116,26 @@ export class KeystoneService_V1 {
|
|
|
116
116
|
requiredChallengeIds
|
|
117
117
|
});
|
|
118
118
|
// 4. Construct New Data
|
|
119
|
+
const n = (prevData.n ?? 0) + 1;
|
|
120
|
+
let checkpointDetails;
|
|
121
|
+
if (n % KEYSTONE_CHECKPOINT_FREQUENCY === 0) {
|
|
122
|
+
// Generate a temporary view of the keystone as it would be in this frame
|
|
123
|
+
// to calculate the aggregated state.
|
|
124
|
+
const currentFrameView = {
|
|
125
|
+
...latestKeystone,
|
|
126
|
+
data: { ...prevData, frameDetails }
|
|
127
|
+
};
|
|
128
|
+
checkpointDetails = await this.getAggregateDetails({
|
|
129
|
+
latestKeystone: currentFrameView,
|
|
130
|
+
metaspace,
|
|
131
|
+
space
|
|
132
|
+
});
|
|
133
|
+
}
|
|
119
134
|
const newData = {
|
|
120
135
|
challengePools: nextPools,
|
|
121
136
|
proofs: [proof],
|
|
122
137
|
frameDetails,
|
|
123
|
-
|
|
138
|
+
checkpointDetails,
|
|
124
139
|
};
|
|
125
140
|
// 5. Commit (Evolve, Persist, Register)
|
|
126
141
|
const resKeystone = await evolvePersistAndRegisterKeystone({
|
|
@@ -158,6 +173,81 @@ export class KeystoneService_V1 {
|
|
|
158
173
|
const errors = await validateKeystoneTransition({ currentIbGib, prevIbGib });
|
|
159
174
|
return errors;
|
|
160
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Validates a genesis keystone.
|
|
178
|
+
*
|
|
179
|
+
* @returns Array of validation error strings. Empty array means Valid.
|
|
180
|
+
*/
|
|
181
|
+
async validateGenesisKeystone({ keystoneIbGib, }) {
|
|
182
|
+
return await validateGenesisKeystone({ keystoneIbGib });
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Retrieves the latest keystone frame for the given address.
|
|
186
|
+
*
|
|
187
|
+
* Uses `metaspace.getLatestAddr` to find the actual tip instead of trusting
|
|
188
|
+
* an incoming payload's `past` rel8n.
|
|
189
|
+
*
|
|
190
|
+
* @see `ibgib-get-pattern` SKILL.md
|
|
191
|
+
*/
|
|
192
|
+
async getLatestKeystone({ addr, metaspace, space, }) {
|
|
193
|
+
const lc = `${this.lc}[${this.getLatestKeystone.name}]`;
|
|
194
|
+
try {
|
|
195
|
+
if (logalot) {
|
|
196
|
+
console.log(`${lc} starting...`);
|
|
197
|
+
}
|
|
198
|
+
const latestAddr = await metaspace.getLatestAddr({ tjpAddr: addr, space });
|
|
199
|
+
if (!latestAddr) {
|
|
200
|
+
throw new Error(`could not find latest addr for ${addr}`);
|
|
201
|
+
}
|
|
202
|
+
const resGet = await metaspace.get({ addr: latestAddr, space });
|
|
203
|
+
if (resGet.success && resGet.ibGibs && resGet.ibGibs.length > 0) {
|
|
204
|
+
return resGet.ibGibs[0];
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
const resIbGib = resGet.rawResultIbGib;
|
|
208
|
+
const addrsNotFound = resIbGib?.data?.addrsNotFound ?? 'unknown';
|
|
209
|
+
throw new Error(`couldn't find latest keystone at ${latestAddr}. addrsNotFound: ${addrsNotFound}? resGet.errorMsg: ${resGet.errorMsg}`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
if (logalot) {
|
|
218
|
+
console.log(`${lc} complete.`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Validates an entire keystone graph from tip to genesis.
|
|
224
|
+
*
|
|
225
|
+
* @returns Array of validation error strings. Empty array means Valid.
|
|
226
|
+
*/
|
|
227
|
+
async validateKeystoneGraph({ keystoneIbGib, dependencyGraph, getLatest, invalidIfMoreRecentKeystoneFoundInSpace, space, }) {
|
|
228
|
+
const lc = `${this.lc}[${this.validateKeystoneGraph.name}]`;
|
|
229
|
+
try {
|
|
230
|
+
if (logalot) {
|
|
231
|
+
console.log(`${lc} starting... (I: 01c5cd455038c270cbf1effc1704af26)`);
|
|
232
|
+
}
|
|
233
|
+
return await validateKeystoneGraph({
|
|
234
|
+
keystoneIbGib,
|
|
235
|
+
dependencyGraph,
|
|
236
|
+
getLatest,
|
|
237
|
+
invalidIfMoreRecentKeystoneFoundInSpace,
|
|
238
|
+
space
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
243
|
+
throw error;
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
if (logalot) {
|
|
247
|
+
console.log(`${lc} complete.`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
161
251
|
/**
|
|
162
252
|
* Permanently revokes the Identity.
|
|
163
253
|
*
|
|
@@ -213,11 +303,25 @@ export class KeystoneService_V1 {
|
|
|
213
303
|
// 5. Construct Revocation Info
|
|
214
304
|
const revocationInfo = { reason, proof };
|
|
215
305
|
// 6. Construct New Data
|
|
306
|
+
const n = (prevData.n ?? 0) + 1;
|
|
307
|
+
let checkpointDetails;
|
|
308
|
+
if (n % KEYSTONE_CHECKPOINT_FREQUENCY === 0) {
|
|
309
|
+
const currentFrameView = {
|
|
310
|
+
...latestKeystone,
|
|
311
|
+
data: { ...prevData, frameDetails, revocationInfo }
|
|
312
|
+
};
|
|
313
|
+
checkpointDetails = await this.getAggregateDetails({
|
|
314
|
+
latestKeystone: currentFrameView,
|
|
315
|
+
metaspace,
|
|
316
|
+
space
|
|
317
|
+
});
|
|
318
|
+
}
|
|
216
319
|
const newData = {
|
|
217
320
|
challengePools: nextPools,
|
|
218
321
|
proofs: [proof],
|
|
219
322
|
revocationInfo,
|
|
220
|
-
frameDetails
|
|
323
|
+
frameDetails,
|
|
324
|
+
checkpointDetails,
|
|
221
325
|
};
|
|
222
326
|
// 7. Commit
|
|
223
327
|
const newKeystone = await evolvePersistAndRegisterKeystone({
|
|
@@ -304,9 +408,23 @@ export class KeystoneService_V1 {
|
|
|
304
408
|
}
|
|
305
409
|
const finalPools = [...replenishedExistingPools, ...newPools];
|
|
306
410
|
// 6. Construct New Data
|
|
411
|
+
const n = (prevData.n ?? 0) + 1;
|
|
412
|
+
let checkpointDetails;
|
|
413
|
+
if (n % KEYSTONE_CHECKPOINT_FREQUENCY === 0) {
|
|
414
|
+
const currentFrameView = {
|
|
415
|
+
...latestKeystone,
|
|
416
|
+
data: { ...prevData, challengePools: finalPools }
|
|
417
|
+
};
|
|
418
|
+
checkpointDetails = await this.getAggregateDetails({
|
|
419
|
+
latestKeystone: currentFrameView,
|
|
420
|
+
metaspace,
|
|
421
|
+
space
|
|
422
|
+
});
|
|
423
|
+
}
|
|
307
424
|
const newData = {
|
|
308
425
|
challengePools: finalPools,
|
|
309
426
|
proofs: [proof], // The proof authorizes the structure change
|
|
427
|
+
checkpointDetails,
|
|
310
428
|
};
|
|
311
429
|
// 7. Commit
|
|
312
430
|
const newKeystone = await evolvePersistAndRegisterKeystone({
|
|
@@ -327,5 +445,54 @@ export class KeystoneService_V1 {
|
|
|
327
445
|
}
|
|
328
446
|
}
|
|
329
447
|
}
|
|
448
|
+
/**
|
|
449
|
+
* Consolidates the state of a Keystone identity across its history.
|
|
450
|
+
* Walks back until it hits a checkpoint or genesis.
|
|
451
|
+
*/
|
|
452
|
+
async getAggregateDetails({ latestKeystone, metaspace, space, }) {
|
|
453
|
+
const lc = `${this.lc}[${this.getAggregateDetails.name}]`;
|
|
454
|
+
try {
|
|
455
|
+
let aggregated = {};
|
|
456
|
+
let current = latestKeystone;
|
|
457
|
+
while (current) {
|
|
458
|
+
const data = current.data;
|
|
459
|
+
// 1. If we hit a checkpoint, merge it and STOP.
|
|
460
|
+
if (data.checkpointDetails) {
|
|
461
|
+
aggregated = mergeMapsOrArrays_Naive({
|
|
462
|
+
dominant: aggregated,
|
|
463
|
+
recessive: data.checkpointDetails
|
|
464
|
+
});
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
// 2. Merge this frame's details
|
|
468
|
+
if (data.frameDetails) {
|
|
469
|
+
aggregated = mergeMapsOrArrays_Naive({
|
|
470
|
+
dominant: aggregated,
|
|
471
|
+
recessive: data.frameDetails
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
// 3. Genesis check (n=0)
|
|
475
|
+
if (data.n === 0) {
|
|
476
|
+
break;
|
|
477
|
+
}
|
|
478
|
+
// 4. Walk back
|
|
479
|
+
const past = current.rel8ns?.past;
|
|
480
|
+
const prevAddr = (past && past.length > 0) ? past[past.length - 1] : undefined;
|
|
481
|
+
if (!prevAddr) {
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
const res = await metaspace.get({ addr: prevAddr, space });
|
|
485
|
+
if (!res.success || !res.ibGibs || res.ibGibs.length === 0) {
|
|
486
|
+
throw new Error(`Could not find previous keystone frame at ${prevAddr} (E: e3d069b22e11e550e58844889ddb5325)`);
|
|
487
|
+
}
|
|
488
|
+
current = res.ibGibs[0];
|
|
489
|
+
}
|
|
490
|
+
return aggregated;
|
|
491
|
+
}
|
|
492
|
+
catch (error) {
|
|
493
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
494
|
+
throw error;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
330
497
|
}
|
|
331
498
|
//# sourceMappingURL=keystone-service-v1.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-service-v1.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keystone-service-v1.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { respecfully, iReckon, ifWe, firstOfAll } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
2
2
|
const maam = `[${import.meta.url}]`, sir = maam;
|
|
3
|
-
import { clone, hash } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
3
|
+
import { clone, hash, getUUID } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
4
4
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
5
5
|
import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
|
|
6
6
|
import { KeystoneStrategyFactory } from './strategy/keystone-strategy-factory.mjs';
|
|
@@ -9,75 +9,6 @@ import { POOL_ID_DEFAULT, POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_VERB_MA
|
|
|
9
9
|
import { KeystoneService_V1 } from './keystone-service-v1.mjs';
|
|
10
10
|
import { addToBindingMap } from './keystone-helpers.mjs';
|
|
11
11
|
const logalot = GLOBAL_LOG_A_LOT;
|
|
12
|
-
// /**
|
|
13
|
-
// * not sure where to put this, but we probably will want to reuse this in the
|
|
14
|
-
// * future (assuming it works)
|
|
15
|
-
// * @returns metaspace service reference
|
|
16
|
-
// */
|
|
17
|
-
// async function getNewInitializedInMemoryMetaspaceForTesting({
|
|
18
|
-
// defaultSpaceName,
|
|
19
|
-
// }: {
|
|
20
|
-
// defaultSpaceName: string,
|
|
21
|
-
// }): Promise<MetaspaceService> {
|
|
22
|
-
// const lc = `[${getNewInitializedInMemoryMetaspaceForTesting.name}]`;
|
|
23
|
-
// try {
|
|
24
|
-
// if (logalot) { console.log(`${lc} starting... (I: 766d7596addcb73f4820586469233b25)`); }
|
|
25
|
-
// let metaspace = new Metaspace_Innerspace(/*cacheSvc*/undefined);
|
|
26
|
-
// if (logalot) { console.log(`${lc} creating metaspace complete. initializing... (I: 61b74d62e8832c9fa853e4b8c4c2d825)`); }
|
|
27
|
-
// getGibInfo()
|
|
28
|
-
// await metaspace.initialize({
|
|
29
|
-
// spaceName: defaultSpaceName,
|
|
30
|
-
// /**
|
|
31
|
-
// * passing in undefined will use the defaults. probably will need to
|
|
32
|
-
// * adjust this for testing purposes, but let's see what happens with
|
|
33
|
-
// * this first.
|
|
34
|
-
// */
|
|
35
|
-
// metaspaceFactory: {
|
|
36
|
-
// fnDtoToSpace: async () => {
|
|
37
|
-
// if (!currentSpace) { currentSpace = new IbGibTestSpace(); }
|
|
38
|
-
// return currentSpace;
|
|
39
|
-
// },
|
|
40
|
-
// fnZeroSpaceFactory: () => {
|
|
41
|
-
// if (!currentZeroSpace) { currentZeroSpace = new IbGibTestSpace(); }
|
|
42
|
-
// return currentZeroSpace;
|
|
43
|
-
// },
|
|
44
|
-
// fnDefaultLocalSpaceFactory: async () => {
|
|
45
|
-
// if (!currentSpace) { currentSpace = new IbGibTestSpace(); }
|
|
46
|
-
// return currentSpace;
|
|
47
|
-
// },
|
|
48
|
-
// // export type DtoToSpaceFunction = (spaceDto: IbGib_V1) => Promise<IbGibSpaceAny>;
|
|
49
|
-
// // export type ZeroSpaceFactoryFunction = () => IbGibSpaceAny;
|
|
50
|
-
// // export type LocalSpaceFactoryFunction = (opts: CreateLocalSpaceOptions) => Promise<IbGibSpaceAny | undefined>;
|
|
51
|
-
// },
|
|
52
|
-
// getFnAlert: () => { return async ({ title, msg }) => console.log(title, msg) },
|
|
53
|
-
// getFnPrompt: () => {
|
|
54
|
-
// return async ({ title, msg }) => {
|
|
55
|
-
// // if this is needed, we might set up some way for testing
|
|
56
|
-
// // to prepare either a queue of prompts or some kind of map or getter
|
|
57
|
-
// // and put it on the metaspace itself
|
|
58
|
-
// throw new Error(`not implemented (E: c7ef688a02f8cb74487260f9274ac825)`);
|
|
59
|
-
// // promptForText({ title, msg, confirm: false });
|
|
60
|
-
// }
|
|
61
|
-
// },
|
|
62
|
-
// getFnPromptPassword: () => {
|
|
63
|
-
// return async () => {
|
|
64
|
-
// // similar to getFnPrompt, if we need a _different_
|
|
65
|
-
// // password, we might set up some way for testing to prepare
|
|
66
|
-
// // either a queue of passwords or some kind of map or getter
|
|
67
|
-
// // and put it on the metaspace itself
|
|
68
|
-
// return 'password';
|
|
69
|
-
// // promptForSecret({ confirm: true })
|
|
70
|
-
// }
|
|
71
|
-
// },
|
|
72
|
-
// });
|
|
73
|
-
// return metaspace;
|
|
74
|
-
// } catch (error) {
|
|
75
|
-
// console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
76
|
-
// throw error;
|
|
77
|
-
// } finally {
|
|
78
|
-
// if (logalot) { console.log(`${lc} complete.`); }
|
|
79
|
-
// }
|
|
80
|
-
// }
|
|
81
12
|
/**
|
|
82
13
|
* A simple in-memory map acting as a Space.
|
|
83
14
|
* Pure Storage. No Indexing logic.
|
|
@@ -102,9 +33,10 @@ class MockIbGibSpace {
|
|
|
102
33
|
const addrs = arg.data.ibGibAddrs || [];
|
|
103
34
|
const ibGibs = [];
|
|
104
35
|
for (const addr of addrs) {
|
|
105
|
-
const
|
|
106
|
-
if (
|
|
107
|
-
ibGibs.push(
|
|
36
|
+
const x = await this.get({ addr });
|
|
37
|
+
if (x) {
|
|
38
|
+
ibGibs.push(x);
|
|
39
|
+
}
|
|
108
40
|
}
|
|
109
41
|
return { ibGibs };
|
|
110
42
|
}
|
|
@@ -167,12 +99,13 @@ class MockMetaspaceService {
|
|
|
167
99
|
await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
|
|
168
100
|
// Setup generic variables
|
|
169
101
|
const masterSecret = "TestSecret_12345";
|
|
170
|
-
const
|
|
102
|
+
const poolId = "TestPool";
|
|
171
103
|
let config;
|
|
172
104
|
firstOfAll(sir, async () => {
|
|
173
105
|
// Use our standard builder to get a valid config object
|
|
106
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
174
107
|
config = createStandardPoolConfig({
|
|
175
|
-
id:
|
|
108
|
+
id: poolId,
|
|
176
109
|
salt,
|
|
177
110
|
});
|
|
178
111
|
});
|
|
@@ -206,7 +139,7 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
|
|
|
206
139
|
const poolSecret = await strategy.derivePoolSecret({ masterSecret });
|
|
207
140
|
const challengeId = "a3ff7843552870fc28bef2b"; // arbitrary random challengeId
|
|
208
141
|
// 1. Generate Solution
|
|
209
|
-
const solution = await strategy.generateSolution({ poolSecret, poolId:
|
|
142
|
+
const solution = await strategy.generateSolution({ poolSecret, poolId: config.id, challengeId });
|
|
210
143
|
iReckon(sir, solution.value).asTo('solution value exists').isGonnaBeTruthy();
|
|
211
144
|
iReckon(sir, solution.challengeId).asTo('id matches').willEqual(challengeId);
|
|
212
145
|
// 2. Generate Public Challenge from Solution
|
|
@@ -221,7 +154,7 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
|
|
|
221
154
|
const poolSecret = await strategy.derivePoolSecret({ masterSecret });
|
|
222
155
|
const challengeId = "8c994f3ed598f150e25513"; // arbitrary random challengeId
|
|
223
156
|
// Generate real pair
|
|
224
|
-
const solution = await strategy.generateSolution({ poolSecret, poolId:
|
|
157
|
+
const solution = await strategy.generateSolution({ poolSecret, poolId: config.id, challengeId });
|
|
225
158
|
const challenge = await strategy.generateChallenge({ solution });
|
|
226
159
|
// Tamper with solution value
|
|
227
160
|
const badSolution = { ...solution, value: "hacked_value" };
|
|
@@ -233,10 +166,10 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
|
|
|
233
166
|
const poolSecret = await strategy.derivePoolSecret({ masterSecret });
|
|
234
167
|
// Generate pair A
|
|
235
168
|
const challengeId_A = "416c38cfd6ee63dbf8d4e5ef36"; // arbitrary random challengeId
|
|
236
|
-
const solutionA = await strategy.generateSolution({ poolSecret, poolId:
|
|
169
|
+
const solutionA = await strategy.generateSolution({ poolSecret, poolId: config.id, challengeId: challengeId_A });
|
|
237
170
|
// Generate pair B
|
|
238
171
|
const challengeId_B = "c487ef6b7878fae798c3"; // arbitrary random challengeId
|
|
239
|
-
const solutionB = await strategy.generateSolution({ poolSecret, poolId:
|
|
172
|
+
const solutionB = await strategy.generateSolution({ poolSecret, poolId: config.id, challengeId: challengeId_B });
|
|
240
173
|
const challengeB = await strategy.generateChallenge({ solution: solutionB });
|
|
241
174
|
// Check A against B
|
|
242
175
|
const isValid = await strategy.validateSolution({ solution: solutionA, challenge: challengeB });
|
|
@@ -260,9 +193,10 @@ await respecfully(sir, 'Suite B: Service Lifecycle', async () => {
|
|
|
260
193
|
});
|
|
261
194
|
await respecfully(sir, 'Genesis', async () => {
|
|
262
195
|
await ifWe(sir, 'creates a valid genesis frame and persists it', async () => {
|
|
196
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
263
197
|
const config = createStandardPoolConfig({
|
|
264
198
|
id: POOL_ID_DEFAULT,
|
|
265
|
-
salt
|
|
199
|
+
salt,
|
|
266
200
|
});
|
|
267
201
|
genesisKeystone = await service.genesis({
|
|
268
202
|
masterSecret,
|
|
@@ -334,9 +268,10 @@ await respecfully(sir, 'Suite C: Security Vectors', async () => {
|
|
|
334
268
|
mockSpace = new MockIbGibSpace();
|
|
335
269
|
mockMetaspace = new MockMetaspaceService(mockSpace);
|
|
336
270
|
// Setup Alice's Identity
|
|
271
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
337
272
|
const config = createStandardPoolConfig({
|
|
338
273
|
id: POOL_ID_DEFAULT,
|
|
339
|
-
salt
|
|
274
|
+
salt,
|
|
340
275
|
targetBinding: 0,
|
|
341
276
|
size: 10,
|
|
342
277
|
});
|
|
@@ -424,13 +359,15 @@ await respecfully(sir, 'Suite D: Revocation', async () => {
|
|
|
424
359
|
mockSpace = new MockIbGibSpace();
|
|
425
360
|
mockMetaspace = new MockMetaspaceService(mockSpace);
|
|
426
361
|
// Setup Identity WITH a Revocation Pool
|
|
362
|
+
const stdSalt = (await getUUID()).substring(0, 16);
|
|
363
|
+
const revokeSalt = (await getUUID()).substring(0, 16);
|
|
427
364
|
const stdConfig = createStandardPoolConfig({
|
|
428
365
|
id: POOL_ID_DEFAULT,
|
|
429
|
-
salt:
|
|
366
|
+
salt: stdSalt,
|
|
430
367
|
});
|
|
431
368
|
const revokeConfig = createRevocationPoolConfig({
|
|
432
369
|
id: POOL_ID_REVOKE,
|
|
433
|
-
salt:
|
|
370
|
+
salt: revokeSalt,
|
|
434
371
|
}); // Special Config
|
|
435
372
|
genesisKeystone = await service.genesis({
|
|
436
373
|
masterSecret,
|
|
@@ -488,7 +425,8 @@ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
|
|
|
488
425
|
let aliceKeystone;
|
|
489
426
|
// Helper to generate a "Foreign" pool (e.g. from Bob)
|
|
490
427
|
const createForeignPool = async (id, verbs = []) => {
|
|
491
|
-
const
|
|
428
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
429
|
+
const config = createStandardPoolConfig({ id, salt });
|
|
492
430
|
config.allowedVerbs = verbs;
|
|
493
431
|
// We use the factory manually here to simulate Bob doing this offline
|
|
494
432
|
const strategy = KeystoneStrategyFactory.create({ config });
|
|
@@ -519,7 +457,8 @@ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
|
|
|
519
457
|
mockSpace = new MockIbGibSpace();
|
|
520
458
|
mockMetaspace = new MockMetaspaceService(mockSpace);
|
|
521
459
|
// Alice Genesis: Standard pool (allows all verbs, including 'manage')
|
|
522
|
-
const
|
|
460
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
461
|
+
const config = createStandardPoolConfig({ id: POOL_ID_DEFAULT, salt });
|
|
523
462
|
aliceKeystone = await service.genesis({
|
|
524
463
|
masterSecret: aliceSecret,
|
|
525
464
|
configs: [config],
|
|
@@ -622,7 +561,8 @@ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
|
|
|
622
561
|
let aliceKeystone;
|
|
623
562
|
// Helper to simulate Bob creating a pool "offline" to give to Alice
|
|
624
563
|
const createForeignPool = async (id, verbs = []) => {
|
|
625
|
-
const
|
|
564
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
565
|
+
const config = createStandardPoolConfig({ id, salt });
|
|
626
566
|
config.allowedVerbs = verbs;
|
|
627
567
|
// We use the factory manually here to simulate Bob doing this on his own machine
|
|
628
568
|
const strategy = KeystoneStrategyFactory.create({ config });
|
|
@@ -653,9 +593,10 @@ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
|
|
|
653
593
|
mockSpace = new MockIbGibSpace();
|
|
654
594
|
mockMetaspace = new MockMetaspaceService(mockSpace);
|
|
655
595
|
// Alice Genesis: Standard pool (allows all verbs, including 'manage')
|
|
596
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
656
597
|
const config = createStandardPoolConfig({
|
|
657
598
|
id: POOL_ID_DEFAULT,
|
|
658
|
-
salt
|
|
599
|
+
salt,
|
|
659
600
|
});
|
|
660
601
|
aliceKeystone = await service.genesis({
|
|
661
602
|
masterSecret: aliceSecret,
|
|
@@ -753,22 +694,23 @@ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
|
|
|
753
694
|
await respecfully(sir, 'Suite F: Deep Inspection', async () => {
|
|
754
695
|
const service = new KeystoneService_V1();
|
|
755
696
|
const aliceSecret = "Alice_Deep_Inspect";
|
|
756
|
-
const
|
|
697
|
+
const poolId = "granularity_pool";
|
|
757
698
|
let mockSpace;
|
|
758
699
|
let mockMetaspace;
|
|
759
700
|
let genesisKeystone;
|
|
760
701
|
let signedKeystone;
|
|
761
|
-
|
|
762
|
-
const hybridConfig = createStandardPoolConfig({
|
|
763
|
-
id: salt,
|
|
764
|
-
salt,
|
|
765
|
-
// 2 FIFO + 2 Random = 4 Total per sign
|
|
766
|
-
sequential: 2, random: 2, targetBinding: 0,
|
|
767
|
-
size: 20, // Small enough to track, large enough to be random
|
|
768
|
-
});
|
|
702
|
+
let hybridConfig;
|
|
769
703
|
firstOfAll(sir, async () => {
|
|
770
704
|
mockSpace = new MockIbGibSpace();
|
|
771
705
|
mockMetaspace = new MockMetaspaceService(mockSpace);
|
|
706
|
+
const salt = (await getUUID()).substring(0, 16);
|
|
707
|
+
hybridConfig = createStandardPoolConfig({
|
|
708
|
+
id: poolId,
|
|
709
|
+
salt,
|
|
710
|
+
// 2 FIFO + 2 Random = 4 Total per sign
|
|
711
|
+
sequential: 2, random: 2, targetBinding: 0,
|
|
712
|
+
size: 20, // Small enough to track, large enough to be random
|
|
713
|
+
});
|
|
772
714
|
genesisKeystone = await service.genesis({
|
|
773
715
|
masterSecret: aliceSecret,
|
|
774
716
|
configs: [hybridConfig],
|
|
@@ -793,7 +735,7 @@ await respecfully(sir, 'Suite F: Deep Inspection', async () => {
|
|
|
793
735
|
});
|
|
794
736
|
await ifWe(sir, 'verifies the math manually (White-box Crypto Check)', async () => {
|
|
795
737
|
const proof = signedKeystone.data.proofs[0];
|
|
796
|
-
const poolSnapshot = genesisKeystone.data.challengePools.find(p => p.id ===
|
|
738
|
+
const poolSnapshot = genesisKeystone.data.challengePools.find(p => p.id === poolId);
|
|
797
739
|
// We iterate every solution in the proof and MANUALLY verify the hash relationship
|
|
798
740
|
// bypassing the Service's validation logic to ensure the raw math holds up.
|
|
799
741
|
for (const solution of proof.solutions) {
|
|
@@ -816,7 +758,7 @@ await respecfully(sir, 'Suite F: Deep Inspection', async () => {
|
|
|
816
758
|
});
|
|
817
759
|
await ifWe(sir, 'verifies FIFO logic (Deterministic Selection)', async () => {
|
|
818
760
|
const proof = signedKeystone.data.proofs[0];
|
|
819
|
-
const poolSnapshot = genesisKeystone.data.challengePools.find(p => p.id ===
|
|
761
|
+
const poolSnapshot = genesisKeystone.data.challengePools.find(p => p.id === poolId);
|
|
820
762
|
// The first N keys in the pool should be the FIFO targets.
|
|
821
763
|
// Assumption: Object.keys returns insertion order (Standard in modern JS engines)
|
|
822
764
|
const allIds = Object.keys(poolSnapshot.challenges);
|