@optimystic/db-core 0.5.2 → 0.7.0

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.
Files changed (93) hide show
  1. package/dist/src/btree/btree.d.ts +2 -0
  2. package/dist/src/btree/btree.d.ts.map +1 -1
  3. package/dist/src/btree/btree.js +72 -52
  4. package/dist/src/btree/btree.js.map +1 -1
  5. package/dist/src/cluster/structs.d.ts +13 -0
  6. package/dist/src/cluster/structs.d.ts.map +1 -1
  7. package/dist/src/collection/collection.d.ts +10 -0
  8. package/dist/src/collection/collection.d.ts.map +1 -1
  9. package/dist/src/collection/collection.js +34 -0
  10. package/dist/src/collection/collection.js.map +1 -1
  11. package/dist/src/index.d.ts +1 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +1 -0
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/log/log.js +1 -1
  16. package/dist/src/log/log.js.map +1 -1
  17. package/dist/src/logger.d.ts +4 -0
  18. package/dist/src/logger.d.ts.map +1 -0
  19. package/dist/src/logger.js +8 -0
  20. package/dist/src/logger.js.map +1 -0
  21. package/dist/src/transaction/coordinator.d.ts +31 -8
  22. package/dist/src/transaction/coordinator.d.ts.map +1 -1
  23. package/dist/src/transaction/coordinator.js +206 -53
  24. package/dist/src/transaction/coordinator.js.map +1 -1
  25. package/dist/src/transaction/index.d.ts +2 -2
  26. package/dist/src/transaction/index.d.ts.map +1 -1
  27. package/dist/src/transaction/index.js +1 -1
  28. package/dist/src/transaction/index.js.map +1 -1
  29. package/dist/src/transaction/session.d.ts +11 -7
  30. package/dist/src/transaction/session.d.ts.map +1 -1
  31. package/dist/src/transaction/session.js +27 -14
  32. package/dist/src/transaction/session.js.map +1 -1
  33. package/dist/src/transaction/transaction.d.ts +9 -3
  34. package/dist/src/transaction/transaction.d.ts.map +1 -1
  35. package/dist/src/transaction/transaction.js +14 -7
  36. package/dist/src/transaction/transaction.js.map +1 -1
  37. package/dist/src/transaction/validator.d.ts +9 -2
  38. package/dist/src/transaction/validator.d.ts.map +1 -1
  39. package/dist/src/transaction/validator.js +26 -6
  40. package/dist/src/transaction/validator.js.map +1 -1
  41. package/dist/src/transactor/network-transactor.d.ts.map +1 -1
  42. package/dist/src/transactor/network-transactor.js +84 -9
  43. package/dist/src/transactor/network-transactor.js.map +1 -1
  44. package/dist/src/transactor/transactor-source.d.ts +4 -0
  45. package/dist/src/transactor/transactor-source.d.ts.map +1 -1
  46. package/dist/src/transactor/transactor-source.js +25 -9
  47. package/dist/src/transactor/transactor-source.js.map +1 -1
  48. package/dist/src/transform/atomic-proxy.d.ts +26 -0
  49. package/dist/src/transform/atomic-proxy.d.ts.map +1 -0
  50. package/dist/src/transform/atomic-proxy.js +47 -0
  51. package/dist/src/transform/atomic-proxy.js.map +1 -0
  52. package/dist/src/transform/cache-source.d.ts +3 -2
  53. package/dist/src/transform/cache-source.d.ts.map +1 -1
  54. package/dist/src/transform/cache-source.js +15 -3
  55. package/dist/src/transform/cache-source.js.map +1 -1
  56. package/dist/src/transform/index.d.ts +1 -0
  57. package/dist/src/transform/index.d.ts.map +1 -1
  58. package/dist/src/transform/index.js +1 -0
  59. package/dist/src/transform/index.js.map +1 -1
  60. package/dist/src/utility/batch-coordinator.d.ts +2 -0
  61. package/dist/src/utility/batch-coordinator.d.ts.map +1 -1
  62. package/dist/src/utility/batch-coordinator.js +6 -1
  63. package/dist/src/utility/batch-coordinator.js.map +1 -1
  64. package/dist/src/utility/hash-string.d.ts +3 -6
  65. package/dist/src/utility/hash-string.d.ts.map +1 -1
  66. package/dist/src/utility/hash-string.js +8 -11
  67. package/dist/src/utility/hash-string.js.map +1 -1
  68. package/dist/src/utility/lru-map.d.ts +18 -0
  69. package/dist/src/utility/lru-map.d.ts.map +1 -0
  70. package/dist/src/utility/lru-map.js +52 -0
  71. package/dist/src/utility/lru-map.js.map +1 -0
  72. package/package.json +15 -8
  73. package/src/btree/btree.ts +71 -50
  74. package/src/cluster/structs.ts +11 -0
  75. package/src/collection/collection.ts +44 -0
  76. package/src/index.ts +1 -0
  77. package/src/log/log.ts +1 -1
  78. package/src/logger.ts +10 -0
  79. package/src/transaction/coordinator.ts +244 -57
  80. package/src/transaction/index.ts +4 -2
  81. package/src/transaction/session.ts +38 -14
  82. package/src/transaction/transaction.ts +23 -10
  83. package/src/transaction/validator.ts +34 -7
  84. package/src/transactor/network-transactor.ts +94 -13
  85. package/src/transactor/transactor-source.ts +28 -9
  86. package/src/transform/atomic-proxy.ts +49 -0
  87. package/src/transform/cache-source.ts +18 -4
  88. package/src/transform/index.ts +1 -0
  89. package/src/utility/batch-coordinator.ts +9 -1
  90. package/src/utility/hash-string.ts +14 -17
  91. package/src/utility/lru-map.ts +55 -0
  92. package/dist/index.min.js +0 -9
  93. package/dist/index.min.js.map +0 -7
@@ -15,11 +15,13 @@ export declare class BTree<TKey, TEntry> {
15
15
  readonly keyFromEntry: (entry: TEntry) => TKey;
16
16
  readonly compare: (a: TKey, b: TKey) => number;
17
17
  protected _version: number;
18
+ private _proxy?;
18
19
  /**
19
20
  * @param [compare=(a: TKey, b: TKey) => a < b ? -1 : a > b ? 1 : 0] a comparison function for keys. The default uses < and > operators.
20
21
  * @param [keyFromEntry=(entry: TEntry) => entry as unknown as TKey] a function to extract the key from an entry. The default assumes the key is the entry itself.
21
22
  */
22
23
  constructor(store: BlockStore<ITreeNode>, trunk: ITreeTrunk, keyFromEntry?: (entry: TEntry) => TKey, compare?: (a: TKey, b: TKey) => number);
24
+ private atomic;
23
25
  static createRoot(store: BlockStore<ITreeNode>): LeafNode<never>;
24
26
  static create<TKey, TEntry>(store: BlockStore<ITreeNode | TreeBlock>, createTrunk: getTrunkFunc, keyFromEntry?: (entry: TEntry) => TKey, compare?: (a: TKey, b: TKey) => 0 | 1 | -1, newId?: BlockId): BTree<TKey, TEntry>;
25
27
  /** @returns a path to the first entry (on = false if no entries) */
@@ -1 +1 @@
1
- {"version":3,"file":"btree.d.ts","sourceRoot":"","sources":["../../../src/btree/btree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"btree.d.ts","sourceRoot":"","sources":["../../../src/btree/btree.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Path, PathBranch } from "./index.js";
2
2
  import { apply, get } from "../blocks/index.js";
3
3
  import { TreeLeafBlockType, TreeBranchBlockType, entries$, nodes$, partitions$ } from "./nodes.js";
4
+ import { AtomicProxy } from "../transform/atomic-proxy.js";
4
5
  export const NodeCapacity = 64;
5
6
  /**
6
7
  * Represents a lightweight B+(ish)Tree (data at leaves, but no linked list of leaves).
@@ -14,6 +15,7 @@ export class BTree {
14
15
  keyFromEntry;
15
16
  compare;
16
17
  _version = 0; // only for path invalidation
18
+ _proxy;
17
19
  /**
18
20
  * @param [compare=(a: TKey, b: TKey) => a < b ? -1 : a > b ? 1 : 0] a comparison function for keys. The default uses < and > operators.
19
21
  * @param [keyFromEntry=(entry: TEntry) => entry as unknown as TKey] a function to extract the key from an entry. The default assumes the key is the entry itself.
@@ -24,14 +26,20 @@ export class BTree {
24
26
  this.keyFromEntry = keyFromEntry;
25
27
  this.compare = compare;
26
28
  }
29
+ atomic(fn) {
30
+ return this._proxy ? this._proxy.atomic(fn) : fn();
31
+ }
27
32
  static createRoot(store) {
28
33
  return newLeafNode(store, []);
29
34
  }
30
35
  static create(store, createTrunk, keyFromEntry = (entry) => entry, compare = (a, b) => a < b ? -1 : a > b ? 1 : 0, newId) {
31
- const root = BTree.createRoot(store);
32
- store.insert(root);
33
- const trunk = createTrunk(store, root.header.id, newId);
34
- return new BTree(store, trunk, keyFromEntry, compare);
36
+ const proxy = new AtomicProxy(store);
37
+ const root = BTree.createRoot(proxy);
38
+ proxy.insert(root);
39
+ const trunk = createTrunk(proxy, root.header.id, newId);
40
+ const tree = new BTree(proxy, trunk, keyFromEntry, compare);
41
+ tree._proxy = proxy;
42
+ return tree;
35
43
  }
36
44
  /** @returns a path to the first entry (on = false if no entries) */
37
45
  async first() {
@@ -94,12 +102,14 @@ export class BTree {
94
102
  * Added entries are frozen to ensure immutability
95
103
  * @returns path to the new (on = true) or conflicting (on = false) row. */
96
104
  async insert(entry) {
97
- Object.freeze(entry); // Ensure immutability
98
- const path = await this.internalInsert(entry);
99
- if (path.on) {
100
- path.version = ++this._version;
101
- }
102
- return path;
105
+ return this.atomic(async () => {
106
+ Object.freeze(entry); // Ensure immutability
107
+ const path = await this.internalInsert(entry);
108
+ if (path.on) {
109
+ path.version = ++this._version;
110
+ }
111
+ return path;
112
+ });
103
113
  }
104
114
  /** Updates the entry at the given path to the given value. Deletes and inserts if the key changes.
105
115
  * @returns path to resulting entry and whether it was an update (as opposed to an insert).
@@ -110,30 +120,34 @@ export class BTree {
110
120
  * * wasUpdate = true, given path is not on an entry
111
121
  * * else newEntry's new key already present; returned path is "near" existing entry */
112
122
  async updateAt(path, newEntry) {
113
- this.validatePath(path);
114
- if (path.on) {
115
- Object.freeze(newEntry);
116
- }
117
- const result = await this.internalUpdate(path, newEntry);
118
- if (result[0].on) {
119
- result[0].version = ++this._version;
120
- }
121
- return result;
123
+ return this.atomic(async () => {
124
+ this.validatePath(path);
125
+ if (path.on) {
126
+ Object.freeze(newEntry);
127
+ }
128
+ const result = await this.internalUpdate(path, newEntry);
129
+ if (result[0].on) {
130
+ result[0].version = ++this._version;
131
+ }
132
+ return result;
133
+ });
122
134
  }
123
135
  /** Inserts the entry if it doesn't exist, or updates it if it does.
124
136
  * The entry is frozen to ensure immutability.
125
137
  * @returns path to the new entry. on = true if existing; on = false if new. */
126
138
  async upsert(entry) {
127
- const path = await this.find(this.keyFromEntry(entry));
128
- Object.freeze(entry);
129
- if (path.on) {
130
- this.updateEntry(path, entry);
131
- }
132
- else {
133
- await this.internalInsertAt(path, entry);
134
- }
135
- path.version = ++this._version;
136
- return path;
139
+ return this.atomic(async () => {
140
+ const path = await this.find(this.keyFromEntry(entry));
141
+ Object.freeze(entry);
142
+ if (path.on) {
143
+ this.updateEntry(path, entry);
144
+ }
145
+ else {
146
+ await this.internalInsertAt(path, entry);
147
+ }
148
+ path.version = ++this._version;
149
+ return path;
150
+ });
137
151
  }
138
152
  /** Inserts or updates depending on the existence of the given key, using callbacks to generate the new value.
139
153
  * @param newEntry the new entry to insert if the key doesn't exist.
@@ -141,37 +155,43 @@ export class BTree {
141
155
  * @returns path to new entry and whether an update or insert attempted.
142
156
  * If getUpdated callback returns a row that is already present, the resulting path will not be on. */
143
157
  async merge(newEntry, getUpdated) {
144
- const newKey = await this.keyFromEntry(newEntry);
145
- const path = await this.find(newKey);
146
- if (path.on) {
147
- const result = await this.updateAt(path, getUpdated(this.getEntry(path))); // Don't use internalUpdate - need to freeze and check for mutation
148
- // Note: updateAt already increments version, so don't double-increment here
149
- return result;
150
- }
151
- else {
152
- await this.internalInsertAt(path, Object.freeze(newEntry));
153
- path.on = true;
154
- path.version = ++this._version;
155
- return [path, false];
156
- }
158
+ return this.atomic(async () => {
159
+ const newKey = await this.keyFromEntry(newEntry);
160
+ const path = await this.find(newKey);
161
+ if (path.on) {
162
+ const result = await this.updateAt(path, getUpdated(this.getEntry(path))); // Don't use internalUpdate - need to freeze and check for mutation
163
+ // Note: updateAt already increments version, so don't double-increment here
164
+ return result;
165
+ }
166
+ else {
167
+ await this.internalInsertAt(path, Object.freeze(newEntry));
168
+ path.on = true;
169
+ path.version = ++this._version;
170
+ return [path, false];
171
+ }
172
+ });
157
173
  }
158
174
  /** Deletes the entry at the given path.
159
175
  * The on property of the path will be cleared.
160
176
  * @returns true if the delete succeeded (the key was found); false otherwise.
161
177
  */
162
178
  async deleteAt(path) {
163
- this.validatePath(path);
164
- const result = await this.internalDelete(path);
165
- if (result) {
166
- ++this._version;
167
- }
168
- return result;
179
+ return this.atomic(async () => {
180
+ this.validatePath(path);
181
+ const result = await this.internalDelete(path);
182
+ if (result) {
183
+ ++this._version;
184
+ }
185
+ return result;
186
+ });
169
187
  }
170
188
  async drop() {
171
- const root = await this.trunk.get();
172
- for await (const id of this.nodeIds(root)) {
173
- this.store.delete(id);
174
- }
189
+ return this.atomic(async () => {
190
+ const root = await this.trunk.get();
191
+ for await (const id of this.nodeIds(root)) {
192
+ this.store.delete(id);
193
+ }
194
+ });
175
195
  }
176
196
  /** Iterates forward starting from the path location (inclusive) to the end.
177
197
  * WARNING: mutation during iteration will result in an exception.
@@ -1 +1 @@
1
- {"version":3,"file":"btree.js","sourceRoot":"","sources":["../../../src/btree/btree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"btree.js","sourceRoot":"","sources":["../../../src/btree/btree.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,15 @@ export type ClusterRecord = {
28
28
  networkSizeHint?: number;
29
29
  /** Confidence in the network size estimate (0-1) */
30
30
  networkSizeConfidence?: number;
31
+ /** Transaction proceeded despite minority rejections */
32
+ disputed?: boolean;
33
+ /** Evidence of the dispute: which peers rejected and why */
34
+ disputeEvidence?: {
35
+ rejectingPeers: string[];
36
+ rejectReasons: {
37
+ [peerId: string]: string;
38
+ };
39
+ };
31
40
  };
32
41
  export interface ClusterConsensusConfig {
33
42
  /** Super-majority threshold for promises (default 0.75 = 3/4) */
@@ -42,5 +51,9 @@ export interface ClusterConsensusConfig {
42
51
  clusterSizeTolerance: number;
43
52
  /** Window for detecting partition in milliseconds (default 60000 = 1 min) */
44
53
  partitionDetectionWindow: number;
54
+ /** Enable dispute escalation protocol (default false) */
55
+ disputeEnabled?: boolean;
56
+ /** Timeout for dispute arbitration in milliseconds (default 60000) */
57
+ disputeArbitrationTimeoutMs?: number;
45
58
  }
46
59
  //# sourceMappingURL=structs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,EAAE,MAAM,GAAG;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,UAAU,CAAC;KACtB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACzC,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAA;AAED,MAAM,WAAW,sBAAsB;IACtC,iEAAiE;IACjE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,uBAAuB,EAAE,MAAM,CAAC;IAChC,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0EAA0E;IAC1E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,wBAAwB,EAAE,MAAM,CAAC;CACjC"}
1
+ {"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,EAAE,MAAM,GAAG;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,UAAU,CAAC;KACtB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACzC,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,aAAa,EAAE;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KAC5C,CAAC;CACF,CAAA;AAED,MAAM,WAAW,sBAAsB;IACtC,iEAAiE;IACjE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,uBAAuB,EAAE,MAAM,CAAC;IAChC,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0EAA0E;IAC1E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,wBAAwB,EAAE,MAAM,CAAC;IACjC,yDAAyD;IACzD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACrC"}
@@ -1,6 +1,7 @@
1
1
  import type { IBlock, Action, ActionType, ActionHandler, BlockId, ITransactor, BlockStore } from "../index.js";
2
2
  import { Tracker, CacheSource, TransactorSource } from "../index.js";
3
3
  import type { CollectionId, ICollection } from "./index.js";
4
+ import type { ReadDependency } from "../transaction/transaction.js";
4
5
  export type CollectionInitOptions<TAction> = {
5
6
  modules: Record<ActionType, ActionHandler<TAction>>;
6
7
  createHeaderBlock: (id: BlockId, store: BlockStore<IBlock>) => IBlock;
@@ -42,11 +43,20 @@ export declare class Collection<TAction> implements ICollection<TAction> {
42
43
  updateAndSync(): Promise<void>;
43
44
  selectLog(forward?: boolean): AsyncIterableIterator<Action<TAction>>;
44
45
  private replayActions;
46
+ getReadDependencies(): ReadDependency[];
47
+ clearReadDependencies(): void;
45
48
  /** Called for each local action that may be in conflict with a remote action (always called under latch).
46
49
  * @param action - The local action to check
47
50
  * @param potential - The remote action that is potentially in conflict
48
51
  * @returns true if the action should be kept, false to discard it
49
52
  */
50
53
  protected doFilterConflict(action: Action<TAction>, potential: Action<TAction>[]): boolean;
54
+ /** Bootstrap ActionContext from the committed tail block's state.
55
+ * The tail is always committed first (commit protocol guarantee), so it's readable
56
+ * with context=undefined. Its state.latest contains the ActionRev of the most recent
57
+ * committed action — exactly the proof needed for the transactor to serve pending
58
+ * non-tail blocks during chain walks.
59
+ */
60
+ private static bootstrapContext;
51
61
  }
52
62
  //# sourceMappingURL=collection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAe,OAAO,EAAkB,WAAW,EAAqB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,KAAK,EAAyB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOnF,MAAM,MAAM,qBAAqB,CAAC,OAAO,IAAI;IAC5C,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,iBAAiB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IACtE;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;CACvG,CAAA;AAED,qBAAa,UAAU,CAAC,OAAO,CAAE,YAAW,WAAW,CAAC,OAAO,CAAC;aAK9C,EAAE,EAAE,YAAY;aAChB,UAAU,EAAE,WAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,sBAAsB;aACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAZjC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,SAAS,aACQ,EAAE,EAAE,YAAY,EAChB,UAAU,EAAE,WAAW,EACtB,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,EACpD,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IACjD,iDAAiD;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC;IACjD,sBAAsB;IACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,cAAc,CAAC,GAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,aAAA;WAK5G,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC;IAoB5G,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YASzB,WAAW;YAKX,gBAAgB;IAc9B,gIAAgI;IAC1H,MAAM;YASE,cAAc;IA6B5B,iDAAiD;IAC3C,IAAI;YASI,YAAY;IA2CpB,aAAa;IAUZ,SAAS,CAAC,OAAO,UAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAY1D,aAAa;IAQ3B;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;CAYhF"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAe,OAAO,EAAkB,WAAW,EAAqB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,KAAK,EAAyB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAOpE,MAAM,MAAM,qBAAqB,CAAC,OAAO,IAAI;IAC5C,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,iBAAiB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IACtE;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;CACvG,CAAA;AAED,qBAAa,UAAU,CAAC,OAAO,CAAE,YAAW,WAAW,CAAC,OAAO,CAAC;aAK9C,EAAE,EAAE,YAAY;aAChB,UAAU,EAAE,WAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,sBAAsB;aACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAZjC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,SAAS,aACQ,EAAE,EAAE,YAAY,EAChB,UAAU,EAAE,WAAW,EACtB,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,EACpD,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IACjD,iDAAiD;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC;IACjD,sBAAsB;IACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,cAAc,CAAC,GAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,aAAA;WAK5G,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC;IAwB5G,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YASzB,WAAW;YAKX,gBAAgB;IAc9B,gIAAgI;IAC1H,MAAM;YASE,cAAc;IAoC5B,iDAAiD;IAC3C,IAAI;YASI,YAAY;IA2CpB,aAAa;IAUZ,SAAS,CAAC,OAAO,UAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAY1D,aAAa;IAQ3B,mBAAmB,IAAI,cAAc,EAAE;IAIvC,qBAAqB,IAAI,IAAI;IAI7B;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;IAahF;;;;;OAKG;mBACkB,gBAAgB;CAiBrC"}
@@ -34,6 +34,9 @@ export class Collection {
34
34
  const tracker = new Tracker(sourceCache);
35
35
  const header = await source.tryGet(id);
36
36
  if (header) { // Collection already exists
37
+ // Bootstrap ActionContext from the committed tail before walking the chain.
38
+ // This allows the transactor to serve pending non-tail blocks during Log.open.
39
+ await Collection.bootstrapContext(source, transactor, header);
37
40
  const log = (await Log.open(tracker, id));
38
41
  source.actionContext = await log.getActionContext();
39
42
  }
@@ -83,6 +86,12 @@ export class Collection {
83
86
  // Start with a context that can see to the end of the log
84
87
  const source = new TransactorSource(this.id, this.transactor, undefined);
85
88
  const tracker = new Tracker(source);
89
+ // Bootstrap context from committed tail so pending blocks are accessible.
90
+ // Read through tracker so Chain.open inside Log.open reuses the cached header.
91
+ const header = await tracker.tryGet(this.id);
92
+ if (header) {
93
+ await Collection.bootstrapContext(source, this.transactor, header);
94
+ }
86
95
  // Get the latest entries from the log, starting from where we left off
87
96
  const actionContext = this.source.actionContext;
88
97
  const log = await Log.open(tracker, this.id);
@@ -180,6 +189,12 @@ export class Collection {
180
189
  await this.internalTransact(action);
181
190
  }
182
191
  }
192
+ getReadDependencies() {
193
+ return this.source.getReadDependencies();
194
+ }
195
+ clearReadDependencies() {
196
+ this.source.clearReadDependencies();
197
+ }
183
198
  /** Called for each local action that may be in conflict with a remote action (always called under latch).
184
199
  * @param action - The local action to check
185
200
  * @param potential - The remote action that is potentially in conflict
@@ -198,5 +213,24 @@ export class Collection {
198
213
  }
199
214
  return true;
200
215
  }
216
+ /** Bootstrap ActionContext from the committed tail block's state.
217
+ * The tail is always committed first (commit protocol guarantee), so it's readable
218
+ * with context=undefined. Its state.latest contains the ActionRev of the most recent
219
+ * committed action — exactly the proof needed for the transactor to serve pending
220
+ * non-tail blocks during chain walks.
221
+ */
222
+ static async bootstrapContext(source, transactor, header) {
223
+ const tailId = Object.hasOwn(header, 'tailId') ? header.tailId : undefined;
224
+ if (tailId) {
225
+ const tailResult = await transactor.get({ blockIds: [tailId] });
226
+ const tailState = tailResult?.[tailId]?.state;
227
+ if (tailState?.latest) {
228
+ source.actionContext = {
229
+ committed: [{ actionId: tailState.latest.actionId, rev: tailState.latest.rev }],
230
+ rev: tailState.latest.rev,
231
+ };
232
+ }
233
+ }
234
+ }
201
235
  }
202
236
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,5 @@ export * from "./utility/nameof.js";
16
16
  export * from "./utility/ensured.js";
17
17
  export * from "./utility/pending.js";
18
18
  export * from "./utility/block-id-to-bytes.js";
19
+ export * from "./utility/lru-map.js";
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC"}
package/dist/src/index.js CHANGED
@@ -16,4 +16,5 @@ export * from "./utility/nameof.js";
16
16
  export * from "./utility/ensured.js";
17
17
  export * from "./utility/pending.js";
18
18
  export * from "./utility/block-id-to-bytes.js";
19
+ export * from "./utility/lru-map.js";
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC"}
@@ -38,7 +38,7 @@ export class Log {
38
38
  /** Gets the action context of the log. */
39
39
  async getActionContext() {
40
40
  const tailPath = await this.chain.getTail();
41
- if (!tailPath) {
41
+ if (!tailPath || tailPath.block.entries.length === 0) {
42
42
  return undefined;
43
43
  }
44
44
  const checkpoint = await this.findCheckpoint(tailPath);
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"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"}