Skip to content

Commit e5b19e7

Browse files
authored
Merge pull request #11 from vijayee/master
Various Bug Fixes
2 parents 9e24e52 + 8eca65c commit e5b19e7

File tree

15 files changed

+260
-199
lines changed

15 files changed

+260
-199
lines changed

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
FROM ubuntu:bionic
2-
COPY ["./dist/OFF System_0.0.2_amd64.deb", "./"]
2+
COPY ["./dist/OFF_System_0.1.0_linux_amd64.deb", "./"]
33

44
EXPOSE 23402
55
EXPOSE 8200
66
ENV LD_LIBRARY_PATH="/usr/local/lib"
77
RUN apt-get update
88
RUN apt install libasound2 -y
9-
RUN apt install "./OFF System_0.0.2_amd64.deb" -f -y
9+
RUN apt install "./OFF_System_0.1.0_linux_amd64.deb" -f -y
1010
RUN apt-get update -y && \
1111
apt-get install -y libgtk2.0-0 && \
1212
apt-get install -y libnotify-dev && \
1313
apt-get install -y libgconf-2-4 && \
1414
apt-get install -y libnss3
1515
ENV ELECTRON_RUN_AS_NODE="true"
16-
ENTRYPOINT [ "offs", "/opt/OFF System/resources/app.asar/src/index.js"]
16+
ENTRYPOINT [ "offs", "/opt/offs/resources/app.asar/src/index.js", "--path", "/offs"]

package-lock.json

Lines changed: 14 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
"build-win": "npm run compile-vue && electron-builder --win",
1717
"build-mac": "npm run compile-vue && electron-builder --mac",
1818
"build-docker": "npm run build && sudo docker build -t offs .",
19-
"publish": "build -p always",
20-
"docker": "sudo docker run -a STDERR -a STDOUT -p 23402:23402 -p 8200:8200 --name offsystem offs "
19+
"publish": "build --win --linux -p always",
20+
"docker": "sudo docker run -a STDERR -a STDOUT -p 23402:23402 -p 8200:8200 --name offsystem -v offs:/offs offs"
2121
},
2222
"author": "Prometheus <[email protected]>",
2323
"license": "GPL-3.0",
@@ -86,6 +86,9 @@
8686
},
8787
"appImage": {
8888
"artifactName": "OFF_System_${version}_linux_${arch}.AppImage"
89+
},
90+
"deb": {
91+
"artifactName": "OFF_System_${version}_linux_${arch}.deb"
8992
}
9093
},
9194
"dependencies": {
@@ -114,9 +117,11 @@
114117
"nat-upnp": "1.1.1",
115118
"network": "0.4.1",
116119
"node-forge": "0.7.6",
120+
"pretty-bytes": "^5.1.0",
117121
"protobufjs": "5.0.1",
118122
"protocol-buffers": "3.1.6",
119123
"streamifier": "0.1.1",
124+
"streamspeed": "^1.1.1",
120125
"through2": "2.0.3",
121126
"to-array-buffer": "2.1.0",
122127
"urldecode": "1.0.1",

src/block-cache-cluster.js

Lines changed: 42 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ if (cluster.isMaster) {
2828
pool.delete(worker.id)
2929
let cb = _callbacks.get(this)
3030
if (cb) {
31-
return cb(new Error('Worker Exited Unexpectedly'))
31+
cb(new Error('Worker Exited Unexpectedly'))
3232
}
3333
return spawnWorker()
3434
})
@@ -78,35 +78,47 @@ if (cluster.isMaster) {
7878
}
7979
}
8080
content (temps, cb) {
81-
let worker = this._freeWorker()
82-
if (worker) {
83-
_callbacks.set(worker, cb)
84-
worker.send({type: type.content, temps})
85-
} else {
86-
let queue = _queue.get(this)
87-
queue.unshift({type: type.content, temps, cb: cb})
81+
try {
82+
let worker = this._freeWorker()
83+
if (worker) {
84+
_callbacks.set(worker, cb)
85+
worker.send({ type: type.content, temps })
86+
} else {
87+
let queue = _queue.get(this)
88+
queue.unshift({ type: type.content, temps, cb: cb })
89+
}
90+
} catch (err) {
91+
return cb(err)
8892
}
8993
}
9094

91-
contentFilter (temps, cb){
92-
let worker = this._freeWorker()
93-
if (worker) {
94-
_callbacks.set(worker, cb)
95-
worker.send({type: type.contentFilter, temps})
96-
} else {
97-
let queue = _queue.get(this)
98-
queue.unshift({type: type.contentFilter, temps, cb: cb})
95+
contentFilter (temps, cb) {
96+
try {
97+
let worker = this._freeWorker()
98+
if (worker) {
99+
_callbacks.set(worker, cb)
100+
worker.send({ type: type.contentFilter, temps })
101+
} else {
102+
let queue = _queue.get(this)
103+
queue.unshift({ type: type.contentFilter, temps, cb: cb })
104+
}
105+
} catch (err) {
106+
return cb(err)
99107
}
100108
}
101109

102110
closestBlock (temps, key, filter, cb) {
103-
let worker = this._freeWorker()
104-
if (worker) {
105-
_callbacks.set(worker, cb)
106-
worker.send({type: type.closestBlock, temps, key, filter})
107-
} else {
108-
let queue = _queue.get(this)
109-
queue.unshift({type: type.closestBlock, temps, key, filter, cb: cb})
111+
try {
112+
let worker = this._freeWorker()
113+
if (worker) {
114+
_callbacks.set(worker, cb)
115+
worker.send({ type: type.closestBlock, temps, key, filter })
116+
} else {
117+
let queue = _queue.get(this)
118+
queue.unshift({ type: type.closestBlock, temps, key, filter, cb: cb })
119+
}
120+
} catch (err) {
121+
return cb(err)
110122
}
111123
}
112124
_free(threadId) {
@@ -116,9 +128,14 @@ if (cluster.isMaster) {
116128
if (next) {
117129
let pool = _pool.get(this)
118130
let worker = pool.get(threadId)
119-
_callbacks.set(worker, next.cb)
131+
let cb = next.cb
132+
_callbacks.set(worker, cb)
120133
delete next.cb
121-
worker.send({...next})
134+
try {
135+
worker.send({ ...next })
136+
} catch (err) {
137+
return cb(err)
138+
}
122139
}
123140
})
124141
}

src/block-router.js

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ module.exports = class BlockRouter extends EventEmitter {
5151
_scheduler.set(this, scheduler)
5252

5353
scheduler.on('error', (err) => this.emit('error', err))
54+
scheduler.on('locator', () => this.emit('locator'))
5455
rpc.on('error', (err) => this.emit('error', err))
5556
bc.on('block', (block)=> {
5657
rpc.store(block.hash, config.block, block.data, () => {})
@@ -310,47 +311,51 @@ module.exports = class BlockRouter extends EventEmitter {
310311
}
311312

312313
bootstrap (cb) {
313-
let bootstrap = config.bootstrap.map((peer) => Peer.fromLocator(peer)).filter((peer) => !peer.isEqual(Peer.self))
314-
let connect = () => {
315-
let i = -1
316-
let next = (err) => {
317-
if (err) {
318-
this.emit('error', err)
319-
}
320-
i++
321-
if (i < bootstrap.length) {
322-
let peer = bootstrap[ i ]
323-
this.connect(peer, next)
324-
} else { //Fill routing table with the closet nodes to themselves
325-
let rpc = _rpc.get(this)
326-
rpc.findNode(Peer.self.id, cb)
314+
try {
315+
let bootstrap = config.bootstrap.map((peer) => Peer.fromLocator(peer)).filter((peer) => !peer.isEqual(Peer.self))
316+
let connect = () => {
317+
let i = -1
318+
let next = (err) => {
319+
if (err) {
320+
this.emit('error', err)
321+
}
322+
i++
323+
if (i < bootstrap.length) {
324+
let peer = bootstrap[ i ]
325+
this.connect(peer, next)
326+
} else { //Fill routing table with the closet nodes to themselves
327+
let rpc = _rpc.get(this)
328+
rpc.findNode(Peer.self.id, cb)
329+
}
327330
}
331+
next()
328332
}
329-
next()
330-
}
331-
// If this option is selected then Bootstrap to whomever we were last online with
332-
if (config.lastKnownPeers) {
333-
let path = _path.get(this)
334-
let fd = pth.join(path, '.bucket')
335-
fs.readFile(fd, (err, bucketFile) => {
336-
if (err) {
337-
this.emit(err)
338-
return connect()
339-
}
340-
if (bucketFile) {
341-
let peers = cbor.decode(toAb(bucketFile))
342-
for (let pier of peers) {
343-
let peer = Peer.fromLocator(pier)
344-
let found = bootstrap.find((boot) => peer.isEqual(boot))
345-
if (!found) {
346-
bootstrap.push(peer)
333+
// If this option is selected then Bootstrap to whomever we were last online with
334+
if (config.lastKnownPeers) {
335+
let path = _path.get(this)
336+
let fd = pth.join(path, '.bucket')
337+
fs.readFile(fd, (err, bucketFile) => {
338+
if (err) {
339+
this.emit(err)
340+
return connect()
341+
}
342+
if (bucketFile) {
343+
let peers = cbor.decode(toAb(bucketFile))
344+
for (let pier of peers) {
345+
let peer = Peer.fromLocator(pier)
346+
let found = bootstrap.find((boot) => peer.isEqual(boot))
347+
if (!found) {
348+
bootstrap.push(peer)
349+
}
347350
}
348351
}
349-
}
352+
return connect()
353+
})
354+
} else {
350355
return connect()
351-
})
352-
} else {
353-
return connect()
356+
}
357+
} catch(err) {
358+
return cb(err)
354359
}
355360
}
356361

src/command.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ module.exports = new (class Command {
88
cmd.name('offs')
99
cmd.version(pkg.version, '-v, --version')
1010
cmd.option('-t, --terminal', 'Run in Terminal Only (without GUI)')
11+
cmd.option('-p, --path [dir]', 'Initial path for the application')
12+
1113
}
1214
parse() {
1315
cmd.parse(process.argv)

src/config.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ let defaults = {
4646
bucketTimeout: 60 * 1000 * 5,
4747
socketTimeout: 120 * 1000,
4848
bootstrap: [
49-
'5LTX64UZmqxAckP99fRNKutPQCJabbB1xMa1vuCG1Z58SJdLkGa9NkngQNSihHhBPA25evTSSMzqrPJovRLkEykSf7orstw7TCUh1DABKyn3iozxBsL3yKBq7EWz9pHdAE9Fd'
49+
'L8t3oLLfnGZPgkkiAW2FwzHqeWt4pS9amGZQNpPKQgkNrF3JTGxptXuQwc8W7AdaRB34k2afQszr3LQqfUP6hzXgPGu5Rnw28sDwcA3GRrsnqbGYdpLETkSVBNXK1cJwRFRqfD'
5050
]
5151
}
5252
let _blockPath = new WeakMap()
@@ -190,7 +190,7 @@ class Config {
190190
_internalIP.set(this, defaults.internalIP)
191191
_bootstrap.set(this, defaults.bootstrap.slice(0))
192192
_bucketTimeout.set(this, defaults.bucketTimeout)
193-
_bucketTimeout.set(this, defaults.socketTimeout)
193+
_socketTimeout.set(this, defaults.socketTimeout)
194194
}
195195

196196
get blockPath () {
@@ -225,7 +225,7 @@ class Config {
225225
if (!Number.isInteger(+value)) {
226226
throw new TypeError("Invalid Block Cache Size")
227227
}
228-
if (value < 300) {
228+
if (value < 300 * mb) {
229229
throw new TypeError("Block Cache Size Is Too Small")
230230
}
231231
if (value > (549755813 * mb)) {
@@ -243,7 +243,7 @@ class Config {
243243
if (!Number.isInteger(+value)) {
244244
throw new TypeError("Invalid Mini Block Cache Size")
245245
}
246-
if (value < 300) {
246+
if (value < 300 * mb) {
247247
throw new TypeError("Mini Block Cache Size Is Too Small")
248248
}
249249
if (value > (42949672 * mb)) {
@@ -261,7 +261,7 @@ class Config {
261261
if (!Number.isInteger(+value)) {
262262
throw new TypeError("Invalid Nano Block Cache Size")
263263
}
264-
if (value < 300) {
264+
if (value < 300 * mb) {
265265
throw new TypeError("Nano Block Cache Size Is Too Small")
266266
}
267267
if (value > (584115 * mb)) {
@@ -440,7 +440,6 @@ class Config {
440440
}
441441
get socketTimeout () {
442442
return _socketTimeout.get(this)
443-
this.save()
444443
}
445444
set socketTimeout (value) {
446445
_socketTimeout.set(this, +value)

0 commit comments

Comments
 (0)