Skip to content
This repository was archived by the owner on Jul 21, 2023. It is now read-only.

Commit f7a2a02

Browse files
authored
fix: require at least one successful put (#253)
If no minPeers is specified, require at least one success during a dht put operation, unless minPeers is explicitly `0`
1 parent 5318296 commit f7a2a02

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

src/dual-kad-dht.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,10 @@ class DualKadDHT extends EventEmitter {
137137
}
138138
}
139139

140-
// verify if we were able to put to enough peers
141-
const minPeers = options.minPeers || counterAll // Ensure we have a default `minPeers`
140+
// Ensure we have a default `minPeers`
141+
const minPeers = options.minPeers == null ? counterAll || 1 : options.minPeers
142142

143+
// verify if we were able to put to enough peers
143144
if (counterSuccess < minPeers) {
144145
const error = errCode(new Error(`Failed to put value to enough peers: ${counterSuccess}/${minPeers}`), 'ERR_NOT_ENOUGH_PUT_PEERS')
145146
log.error(error)

test/kad-dht.spec.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ describe('KadDHT', () => {
163163
const [dht] = await tdht.spawn(1)
164164

165165
// Exchange data through the dht
166-
await drain(dht.put(key, value))
166+
await drain(dht.put(key, value, { minPeers: 0 }))
167167

168168
const res = await last(dht.get(key))
169169
expect(res).to.have.property('value').that.equalBytes(value)
@@ -341,8 +341,8 @@ describe('KadDHT', () => {
341341
const dhtASpy = sinon.spy(dhtA._lan._network, 'sendRequest')
342342

343343
// Put before peers connected
344-
await drain(dhtA.put(key, valueA))
345-
await drain(dhtB.put(key, valueB))
344+
await drain(dhtA.put(key, valueA, { minPeers: 0 }))
345+
await drain(dhtB.put(key, valueB, { minPeers: 0 }))
346346

347347
// Connect peers
348348
await tdht.connect(dhtA, dhtB)

test/rpc/handlers/get-value.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ describe('rpc - handlers - GetValue', () => {
5454
const key = uint8ArrayFromString('hello')
5555
const value = uint8ArrayFromString('world')
5656

57-
await drain(dht.put(key, value))
57+
await drain(dht.put(key, value, { minPeers: 0 }))
5858

5959
const msg = new Message(T, key, 0)
6060
const response = await handler.handle(peerIds[0], msg)

0 commit comments

Comments
 (0)