@leofcoin/peernet 0.9.6 → 0.9.9

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.
@@ -76,7 +76,7 @@ class PeernetClient {
76
76
  this.topic = Buffer.from(sha256(`${options.networkName}-${options.networkVersion}`).toString());
77
77
 
78
78
  const trackers = [
79
- 'wss://star.leofcoin.org:7575',
79
+ 'wss://star.leofcoin.org',
80
80
  'wss://tracker.openwebtorrent.com',
81
81
  // 'wss://tracker.sloppyta.co:443/announce',
82
82
  ];
@@ -244,7 +244,7 @@ class LeofcoinStorage$1 {
244
244
 
245
245
  }
246
246
 
247
- var version = "0.9.4";
247
+ var version = "0.9.7";
248
248
 
249
249
  var api$1 = {
250
250
  version: ({send}) => send({client: '@peernet/api/http', version}),
@@ -1801,17 +1801,13 @@ class DhtEarth {
1801
1801
  const peerLoc = await this.getCoordinates(address);
1802
1802
 
1803
1803
  for (const provider of providers) {
1804
- all.push(this.getDistance(peerLoc, provider));
1804
+ if (provider.address === '127.0.0.1') all.push({provider, distance: 0});
1805
+ else all.push(this.getDistance(peerLoc, provider));
1805
1806
  }
1806
1807
 
1807
1808
  all = await Promise.all(all);
1808
-
1809
- const closestPeer = all.reduce((p, c) => {
1810
- if (!c.distance || c.distance === NaN) c.distance = 0;
1811
- if (c.distance < p || p === 0) return c.provider;
1812
- }, 0);
1813
-
1814
- return closestPeer;
1809
+ all = all.sort((previous, current) => previous.distance - current.distance);
1810
+ return all[0].provider;
1815
1811
  }
1816
1812
 
1817
1813
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/peernet",
3
- "version": "0.9.6",
3
+ "version": "0.9.9",
4
4
  "description": "",
5
5
  "main": "dist/commonjs/peernet.js",
6
6
  "module": "dist/module/peernet.js",
package/src/client.js CHANGED
@@ -24,7 +24,7 @@ export default class PeernetClient {
24
24
  this.topic = Buffer.from(sha256(`${options.networkName}-${options.networkVersion}`).toString())
25
25
 
26
26
  const trackers = [
27
- 'wss://star.leofcoin.org:7575',
27
+ 'wss://star.leofcoin.org',
28
28
  'wss://tracker.openwebtorrent.com',
29
29
  // 'wss://tracker.sloppyta.co:443/announce',
30
30
  ]
@@ -37,6 +37,10 @@ export default class PeernetClient {
37
37
 
38
38
  this.p2p.on('peerclose', (peer) => {
39
39
  // TODO: close peernetPeer
40
+ const peernetPeer = connections.get(peer.id)
41
+ if (peernetPeer) {
42
+ peernetPeer.close()
43
+ }
40
44
  connections.delete(peer.id)
41
45
  pubsub.publish('peer:disconnected', peer)
42
46
  })
package/src/dht/dht.js CHANGED
@@ -88,17 +88,13 @@ export default class DhtEarth {
88
88
  const peerLoc = await this.getCoordinates(address)
89
89
 
90
90
  for (const provider of providers) {
91
- all.push(this.getDistance(peerLoc, provider))
91
+ if (provider.address === '127.0.0.1') all.push({provider, distance: 0})
92
+ else all.push(this.getDistance(peerLoc, provider))
92
93
  }
93
94
 
94
- all = await Promise.all(all)
95
-
96
- const closestPeer = all.reduce((p, c) => {
97
- if (!c.distance || c.distance === NaN) c.distance = 0
98
- if (c.distance < p || p === 0) return c.provider;
99
- }, 0)
100
-
101
- return closestPeer;
95
+ all = await Promise.all(all);
96
+ all = all.sort((previous, current) => previous.distance - current.distance)
97
+ return all[0].provider;
102
98
  }
103
99
 
104
100
  /**
package/src/peer.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export default class PeernetPeer {
2
2
  constructor(id, connection) {
3
+ this._events = {}
3
4
  this.id = id
4
5
  this.connection = connection
5
6
 
@@ -33,11 +34,25 @@ export default class PeernetPeer {
33
34
  }
34
35
 
35
36
  on(event = 'peernet.data', cb) {
37
+ this._events[event] = cb
36
38
  pubsub.subscribe(event, cb)
37
39
  // this.connection.on(event, cb)
38
40
  }
39
41
 
40
42
  removeListener(event = 'data', cb) {
43
+ delete this._events[event]
41
44
  pubsub.unsubscribe(event, cb)
42
45
  }
46
+
47
+ close() {
48
+ for (const event of Object.keys(this._events)) {
49
+ pubsub.unsubscribe(event, this._events[event])
50
+ }
51
+ this._events = []
52
+
53
+ for (const event of this.connection._events.data) {
54
+ this.connection.removeListener('data', event)
55
+ }
56
+ this.connection.destroy()
57
+ }
43
58
  }
package/src/peernet.js CHANGED
@@ -345,7 +345,7 @@ export default class Peernet {
345
345
  }
346
346
 
347
347
  if (data) {
348
- data = new DataMessageResponse({hash, data: Buffer.from(data)})
348
+ data = new DataMessageResponse({hash, data: data.decoded ? Buffer.from(JSON.stringify(data)) : Buffer.from(data)});
349
349
 
350
350
  const node = await this.prepareMessage(from, data.encoded)
351
351
  peer.write(Buffer.from(JSON.stringify({id, data: node.encoded})))