mirror of
https://github.com/benjamin-wilson/public-pool.git
synced 2026-09-29 09:05:06 -07:00
removed promise sockets
This commit is contained in:
Generated
-92
@@ -27,7 +27,6 @@
|
||||
"discord.js": "^14.11.0",
|
||||
"merkle-lib": "^2.0.10",
|
||||
"node-telegram-bot-api": "^0.61.0",
|
||||
"promise-socket": "^7.0.0",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"rpc-bitcoin": "^2.0.0",
|
||||
"rxjs": "^7.2.0",
|
||||
@@ -4212,16 +4211,6 @@
|
||||
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/core-js": {
|
||||
"version": "3.31.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz",
|
||||
"integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==",
|
||||
"hasInstallScript": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"node_modules/core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
@@ -8941,36 +8930,12 @@
|
||||
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz",
|
||||
"integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg=="
|
||||
},
|
||||
"node_modules/promise-duplex": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-duplex/-/promise-duplex-6.0.0.tgz",
|
||||
"integrity": "sha512-ZL7rquzjTFzInDBeWYcsT+qddolNvzigahk6MI6qLSbQvlyRRCJkU3JztgaVunzvkH28smRa2Qu/cY9RXtSkgA==",
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.5",
|
||||
"promise-readable": "^6.0.0",
|
||||
"promise-writable": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/promise-inflight": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
|
||||
"integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/promise-readable": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-readable/-/promise-readable-6.0.0.tgz",
|
||||
"integrity": "sha512-5NxtmUswijvX5cAM0zPSy6yiCXH/eKBpiiBq6JfAUrmngMquMbzcBhF2qA+ocs4rYYKdvAfv3cOvZxADLtL1CA==",
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/promise-retry": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
|
||||
@@ -8984,26 +8949,6 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/promise-socket": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-socket/-/promise-socket-7.0.0.tgz",
|
||||
"integrity": "sha512-Oic9BrxmcHOPEnzKp2Js+ehFyvsbd0WxsE5khweCTHuRvdzbXjHUZmSDT6F9TW8SIkAJ0lCzoHjMYnb0WQJPiw==",
|
||||
"dependencies": {
|
||||
"promise-duplex": "^6.0.0",
|
||||
"tslib": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/promise-writable": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-writable/-/promise-writable-6.0.0.tgz",
|
||||
"integrity": "sha512-b81zre/itgJFS7dwWzIdKNVVqvLiUxYRS/wolUB0H1YY/tAaS146XGKa4Q/5wCbsnXLyn0MCeV6f8HHe4iUHLg==",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prompts": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
||||
@@ -14558,11 +14503,6 @@
|
||||
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
|
||||
"dev": true
|
||||
},
|
||||
"core-js": {
|
||||
"version": "3.31.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz",
|
||||
"integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ=="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
@@ -18157,30 +18097,12 @@
|
||||
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz",
|
||||
"integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg=="
|
||||
},
|
||||
"promise-duplex": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-duplex/-/promise-duplex-6.0.0.tgz",
|
||||
"integrity": "sha512-ZL7rquzjTFzInDBeWYcsT+qddolNvzigahk6MI6qLSbQvlyRRCJkU3JztgaVunzvkH28smRa2Qu/cY9RXtSkgA==",
|
||||
"requires": {
|
||||
"core-js": "^3.6.5",
|
||||
"promise-readable": "^6.0.0",
|
||||
"promise-writable": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"promise-inflight": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
|
||||
"integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
|
||||
"optional": true
|
||||
},
|
||||
"promise-readable": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-readable/-/promise-readable-6.0.0.tgz",
|
||||
"integrity": "sha512-5NxtmUswijvX5cAM0zPSy6yiCXH/eKBpiiBq6JfAUrmngMquMbzcBhF2qA+ocs4rYYKdvAfv3cOvZxADLtL1CA==",
|
||||
"requires": {
|
||||
"core-js": "^3.6.5"
|
||||
}
|
||||
},
|
||||
"promise-retry": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
|
||||
@@ -18191,20 +18113,6 @@
|
||||
"retry": "^0.12.0"
|
||||
}
|
||||
},
|
||||
"promise-socket": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-socket/-/promise-socket-7.0.0.tgz",
|
||||
"integrity": "sha512-Oic9BrxmcHOPEnzKp2Js+ehFyvsbd0WxsE5khweCTHuRvdzbXjHUZmSDT6F9TW8SIkAJ0lCzoHjMYnb0WQJPiw==",
|
||||
"requires": {
|
||||
"promise-duplex": "^6.0.0",
|
||||
"tslib": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"promise-writable": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise-writable/-/promise-writable-6.0.0.tgz",
|
||||
"integrity": "sha512-b81zre/itgJFS7dwWzIdKNVVqvLiUxYRS/wolUB0H1YY/tAaS146XGKa4Q/5wCbsnXLyn0MCeV6f8HHe4iUHLg=="
|
||||
},
|
||||
"prompts": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
"discord.js": "^14.11.0",
|
||||
"merkle-lib": "^2.0.10",
|
||||
"node-telegram-bot-api": "^0.61.0",
|
||||
"promise-socket": "^7.0.0",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"rpc-bitcoin": "^2.0.0",
|
||||
"rxjs": "^7.2.0",
|
||||
|
||||
@@ -5,7 +5,6 @@ import { plainToInstance } from 'class-transformer';
|
||||
import { validate, ValidatorOptions } from 'class-validator';
|
||||
import * as crypto from 'crypto';
|
||||
import { Socket } from 'net';
|
||||
import PromiseSocket from 'promise-socket';
|
||||
import { firstValueFrom, Subscription } from 'rxjs';
|
||||
|
||||
import { AddressSettingsService } from '../ORM/address-settings/address-settings.service';
|
||||
@@ -50,7 +49,7 @@ export class StratumV1Client {
|
||||
|
||||
|
||||
constructor(
|
||||
public readonly promiseSocket: PromiseSocket<Socket>,
|
||||
public readonly socket: Socket,
|
||||
private readonly stratumV1JobsService: StratumV1JobsService,
|
||||
private readonly bitcoinRpcService: BitcoinRpcService,
|
||||
private readonly clientService: ClientService,
|
||||
@@ -61,7 +60,7 @@ export class StratumV1Client {
|
||||
private readonly addressSettingsService: AddressSettingsService
|
||||
) {
|
||||
|
||||
this.promiseSocket.socket.on('data', (data: Buffer) => {
|
||||
this.socket.on('data', (data: Buffer) => {
|
||||
data.toString()
|
||||
.split('\n')
|
||||
.filter(m => m.length > 0)
|
||||
@@ -69,7 +68,7 @@ export class StratumV1Client {
|
||||
try {
|
||||
await this.handleMessage(m);
|
||||
} catch (e) {
|
||||
await this.promiseSocket.end();
|
||||
await this.socket.end();
|
||||
console.error(e);
|
||||
}
|
||||
})
|
||||
@@ -107,7 +106,7 @@ export class StratumV1Client {
|
||||
parsedMessage = JSON.parse(message);
|
||||
} catch (e) {
|
||||
console.log("Invalid JSON");
|
||||
await this.promiseSocket.end();
|
||||
await this.socket.end();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -343,7 +342,7 @@ export class StratumV1Client {
|
||||
try {
|
||||
await this.sendNewMiningJob(jobTemplate);
|
||||
} catch (e) {
|
||||
await this.promiseSocket.end();
|
||||
await this.socket.end();
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
@@ -528,7 +527,7 @@ export class StratumV1Client {
|
||||
}) + '\n';
|
||||
|
||||
|
||||
await this.promiseSocket.write(data);
|
||||
await this.socket.write(data);
|
||||
|
||||
|
||||
// we need to clear the jobs so that the difficulty set takes effect. Otherwise the different miner implementations can cause issues
|
||||
@@ -562,14 +561,22 @@ export class StratumV1Client {
|
||||
|
||||
private async write(message: string): Promise<boolean> {
|
||||
try {
|
||||
if (this.promiseSocket.isPromiseWritable) {
|
||||
await this.promiseSocket.write(message);
|
||||
if (!this.socket.destroyed && !this.socket.writableEnded) {
|
||||
await new Promise((resolve, reject) => {
|
||||
this.socket.write(message, (error) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
return true;
|
||||
} else {
|
||||
console.error('Error: Cannot write to closed or ended socket.');
|
||||
}
|
||||
} catch (error) {
|
||||
await this.promiseSocket.end();
|
||||
await this.socket.end();
|
||||
console.error('Error occurred while writing to socket:', error);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { Server, Socket } from 'net';
|
||||
import { PromiseSocket } from 'promise-socket';
|
||||
|
||||
import { StratumV1Client } from '../models/StratumV1Client';
|
||||
import { AddressSettingsService } from '../ORM/address-settings/address-settings.service';
|
||||
@@ -43,10 +42,10 @@ export class StratumV1Service implements OnModuleInit {
|
||||
private startSocketServer() {
|
||||
const server = new Server(async (socket: Socket) => {
|
||||
|
||||
const promiseSocket = new PromiseSocket(socket);
|
||||
|
||||
|
||||
const client = new StratumV1Client(
|
||||
promiseSocket,
|
||||
socket,
|
||||
this.stratumV1JobsService,
|
||||
this.bitcoinRpcService,
|
||||
this.clientService,
|
||||
@@ -58,7 +57,7 @@ export class StratumV1Service implements OnModuleInit {
|
||||
);
|
||||
|
||||
|
||||
promiseSocket.socket.on('end', async (error: Error) => {
|
||||
socket.on('end', async (error: Error) => {
|
||||
// Handle socket disconnection
|
||||
client.destroy();
|
||||
|
||||
@@ -70,7 +69,7 @@ export class StratumV1Service implements OnModuleInit {
|
||||
|
||||
});
|
||||
|
||||
promiseSocket.socket.on('error', async (error: Error) => {
|
||||
socket.on('error', async (error: Error) => {
|
||||
|
||||
client.destroy();
|
||||
|
||||
@@ -79,7 +78,7 @@ export class StratumV1Service implements OnModuleInit {
|
||||
const clientCount = await this.clientService.connectedClientCount();
|
||||
console.log(`Client disconnected, socket error, ${client.extraNonceAndSessionId}, ${clientCount} total clients`);
|
||||
|
||||
promiseSocket.destroy();
|
||||
socket.destroy();
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user