| … | … | @@ -61,6 +61,16 @@ export class IdentityRegistry { |
| 61 | 61 | : this._bootstrapKey) |
| 62 | 62 | : null |
| 63 | 63 | |
| 64 | // Canonical multi-writer Autobase config (mirrors keet-core-hyperdb): |
| 65 | // optimistic — non-indexer writers can append optimistically; their |
| 66 | // blocks linearize before being signed. Without this, |
| 67 | // plain writers stall and the only workaround is to |
| 68 | // make every device an indexer, which deadlocks during |
| 69 | // manifest migration when going from 2→3 indexers. |
| 70 | // ackInterval — auto-ack on a timer so signedLength advances even |
| 71 | // when the indexer set has no pending appends. |
| 72 | // ackThreshold — per-indexer churn budget. 4 matches keet's defaults. |
| 73 | // See pear-git-v3/test/keet-pattern-e2e.js for cross-machine validation. |
| 64 | 74 | this._base = new Autobase(this._store, rootKey, { |
| 65 | 75 | apply, |
| 66 | 76 | open (store) { |
| … | … | @@ -71,7 +81,10 @@ export class IdentityRegistry { |
| 71 | 81 | }) |
| 72 | 82 | }, |
| 73 | 83 | valueEncoding: 'binary', |
| 74 | | keyPair: this._keyPair || undefined |
| 84 | keyPair: this._keyPair || undefined, |
| 85 | optimistic: true, |
| 86 | ackInterval: 1000, |
| 87 | ackThreshold: 4 |
| 75 | 88 | }) |
| 76 | 89 | |
| 77 | 90 | await this._base.ready() |