This commit is contained in:
Ben Wilson 2023-08-09 09:29:15 -04:00
parent 10f6ffa91f
commit 1973b06515
4 changed files with 26 additions and 13 deletions

View File

@ -18,4 +18,6 @@ PORT=3333
#optional
DEV_FEE_ADDRESS=
# mainnet | testnet
NETWORK=mainnet
NETWORK=mainnet
API_SECURE=false

View File

@ -3,6 +3,7 @@ import { NestFactory } from '@nestjs/core';
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify';
import * as bitcoinjs from 'bitcoinjs-lib';
import { useContainer } from 'class-validator';
import { readFileSync } from 'fs';
import * as ecc from 'tiny-secp256k1';
import { AppModule } from './app.module';
@ -14,20 +15,22 @@ async function bootstrap() {
return;
}
// const httpsOptions = {
// key: readFileSync('./secrets/key.pem'),
// cert: readFileSync('./secrets/cert.pem'),
// };
let options = {};
const secure = process.env.API_SECURE?.toLowerCase() == 'true';
if (secure) {
//const app = await NestFactory.create<NestFastifyApplication>(AppModule, new FastifyAdapter({ https: httpsOptions }));
const httpsOptions = {
key: readFileSync('./secrets/key.pem'),
cert: readFileSync('./secrets/cert.pem'),
};
// stagger startup
// if (process.env.NODE_APP_INSTANCE != null) {
// await setTimeout(parseInt(process.env.NODE_APP_INSTANCE) * 5000);
// }
options = { https: httpsOptions };
} else {
const app = await NestFactory.create<NestFastifyApplication>(AppModule, new FastifyAdapter());
}
const app = await NestFactory.create<NestFastifyApplication>(AppModule, new FastifyAdapter(options));
app.setGlobalPrefix('api')
app.useGlobalPipes(
new ValidationPipe({
@ -45,7 +48,7 @@ async function bootstrap() {
bitcoinjs.initEccLib(ecc);
await app.listen(process.env.PORT, '0.0.0.0', () => {
console.log(`https listening on port ${process.env.PORT}`);
console.log(`${secure ? 'https' : 'http'} listening on port ${process.env.PORT}`);
});
}

View File

@ -318,6 +318,11 @@ export class StratumV1Client {
}
break;
}
default: {
console.log("Invalid message");
await this.socket.end();
return;
}
}

View File

@ -42,7 +42,10 @@ export class StratumV1Service implements OnModuleInit {
private startSocketServer() {
const server = new Server(async (socket: Socket) => {
socket.setTimeout(5000, () => {
console.log(`Client ${client.extraNonceAndSessionId} timeout`);
socket.destroy();
});
const client = new StratumV1Client(
socket,