Bitcoin mining pool
Go to file
2024-07-18 08:25:45 +02:00
.github/workflows Dockerfile improvements and automatic Github Actions builds (#14) 2023-12-12 20:11:36 -05:00
.vscode RPC load reduction 2023-11-24 14:56:35 -05:00
config killDeadClients 2023-08-06 23:36:41 -04:00
full-setup migrate to knots 2024-07-18 08:25:38 +02:00
secrets add https and pem files (for anyone to use, fast setup) 2023-08-03 17:16:16 -04:00
src new coinbase message 2024-07-18 08:25:45 +02:00
test client unit tests 2023-07-16 11:34:37 -04:00
.dockerignore Adds a full setup (bitcoin core + public-pool) (#10) 2023-11-28 08:07:57 -05:00
.env.example remove dead code 2024-07-03 14:28:28 -04:00
.eslintrc.js init 2023-06-09 22:40:35 -04:00
.gitignore Adds a full setup (bitcoin core + public-pool) (#10) 2023-11-28 08:07:57 -05:00
.prettierrc init 2023-06-09 22:40:35 -04:00
docker-compose.yml some changes for docker setup (#9) 2023-11-19 14:16:50 -05:00
Dockerfile nodejs requires curl for some dependencies, make sure they are part of the build container (#42) 2024-05-27 18:03:58 -04:00
LICENSE.txt cleanup and change sewit witness output to its own tx 2023-07-02 19:22:33 -04:00
nest-cli.json init 2023-06-09 22:40:35 -04:00
package-lock.json re-add zmq with pre-built binaries and pinned version 2024-01-23 21:24:33 -05:00
package.json re-add zmq with pre-built binaries and pinned version 2024-01-23 21:24:33 -05:00
README.md Docker changes (#29) 2024-02-13 14:41:06 -05:00
tsconfig.build.json init 2023-06-09 22:40:35 -04:00
tsconfig.json class-transformer work 2023-06-17 10:10:14 -04:00

Description

A Nestjs and Typescript Bitcoin stratum mining server.

Installation

$ npm install

create an new .env file in the root directory and configure it with the parameters in .env.example

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production build
$ npm run build

Test

# unit tests
$ npm run test

# test coverage
$ npm run test:cov

Web interface

See public-pool-ui

Deployment

Install pm2 (https://pm2.keymetrics.io/)

$ pm2 start dist/main.js

Docker

Build container:

$ docker build -t public-pool .

Run container:

$ docker container run --name public-pool --rm -p 3333:3333 -p 3334:3334 -p 8332:8332 -v .env:/public-pool/.env public-pool

Docker Compose

Build container:

$ docker compose build

Run container:

$ docker compose up -d

The docker-compose binds to 127.0.0.1 by default. To expose the Stratum services on your server change:

    ports:
-      - "127.0.0.1:3333:3333/tcp"
-      - "127.0.0.1:3334:3334/tcp"
+      - "3333"
+      - "3334"

note: To successfully connect to the bitcoin RPC you will need to add

rpcallowip=172.16.0.0/12

to your bitcoin.conf.