hypercore 11.27.14 → 11.27.16
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/index.js +10 -1
- package/lib/core.js +6 -2
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -171,7 +171,8 @@ class Hypercore extends EventEmitter {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
if (opts.ondiscoverykey) {
|
|
174
|
-
|
|
174
|
+
const ondiscoverykey = createDiscoveryKeyHandler(opts.ondiscoverykey)
|
|
175
|
+
noiseStream.userData.pair({ protocol: 'hypercore/alpha' }, ondiscoverykey)
|
|
175
176
|
}
|
|
176
177
|
|
|
177
178
|
return outerStream
|
|
@@ -1295,3 +1296,11 @@ function isEncryptionProvider(e) {
|
|
|
1295
1296
|
function isFunction(fn) {
|
|
1296
1297
|
return !!fn && typeof fn === 'function'
|
|
1297
1298
|
}
|
|
1299
|
+
|
|
1300
|
+
function createDiscoveryKeyHandler(fn) {
|
|
1301
|
+
return ondiscoverykey
|
|
1302
|
+
function ondiscoverykey(id) {
|
|
1303
|
+
if (!id || id.byteLength !== 32) throw BAD_ARGUMENT('Invalid discovery key')
|
|
1304
|
+
return fn(id)
|
|
1305
|
+
}
|
|
1306
|
+
}
|
package/lib/core.js
CHANGED
|
@@ -682,7 +682,9 @@ module.exports = class Core {
|
|
|
682
682
|
}
|
|
683
683
|
|
|
684
684
|
// Attempt to repair local merkle tree with remote roots
|
|
685
|
-
const
|
|
685
|
+
const atom = this.storage.createAtom()
|
|
686
|
+
const atomized = this.storage.atomize(atom)
|
|
687
|
+
const tx = atomized.write()
|
|
686
688
|
for (const node of proof.upgrade.nodes) {
|
|
687
689
|
tx.putTreeNode(node)
|
|
688
690
|
}
|
|
@@ -690,7 +692,7 @@ module.exports = class Core {
|
|
|
690
692
|
|
|
691
693
|
// Try local proof again
|
|
692
694
|
try {
|
|
693
|
-
const rx =
|
|
695
|
+
const rx = atomized.read()
|
|
694
696
|
const treeProofPromise = MerkleTree.proof(this.state, rx, {
|
|
695
697
|
block: null,
|
|
696
698
|
hash: null,
|
|
@@ -715,6 +717,8 @@ module.exports = class Core {
|
|
|
715
717
|
return false
|
|
716
718
|
}
|
|
717
719
|
|
|
720
|
+
await atom.flush()
|
|
721
|
+
|
|
718
722
|
for (let i = this.monitors.length - 1; i >= 0; i--) {
|
|
719
723
|
this.monitors[i].emit('repaired', proof)
|
|
720
724
|
}
|