ext for all

This commit is contained in:
Nicolas Cantu 2025-09-19 20:37:41 +00:00
parent 073b2d4be6
commit f9eb77c1b6
13 changed files with 1826 additions and 0 deletions

View File

@ -5,6 +5,27 @@ server {
ssl_certificate_key /etc/letsencrypt/live/dev4.4nkweb.com/privkey.pem;
include /etc/nginx/proxy_params;
# API backend - route /back/ vers /api/ du backend
location ~* ^/back/(.*)$ {
proxy_pass http://127.0.0.1:8080/api/$1;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection "";
proxy_buffering off;
}
# API direct - route /api/ vers le backend
location /api/ {
proxy_pass http://127.0.0.1:8080/api/;
include /etc/nginx/proxy_params;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
}
# Root → ihm_client
location / {
proxy_pass http://127.0.0.1:3003;
@ -52,6 +73,14 @@ server {
proxy_read_timeout 300;
}
# Service Workers (servis par ihm_client)
location /src/service-workers/ {
proxy_pass http://127.0.0.1:3003/src/service-workers/;
include /etc/nginx/proxy_params;
proxy_http_version 1.1;
proxy_read_timeout 300;
}
# signer (sdk_signer) avec support WebSocket
location /signer/ {
proxy_http_version 1.1;
@ -70,4 +99,31 @@ server {
include /etc/nginx/proxy_params;
proxy_read_timeout 300;
}
# WebSocket relay (sdk_relay) en HTTPS
location = /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
proxy_pass http://127.0.0.1:8090/;
proxy_read_timeout 600s;
}
location /ws/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
proxy_pass http://127.0.0.1:8090/;
proxy_read_timeout 600s;
}
}

View File

@ -132,6 +132,8 @@ services:
container_name: ihm_client
env_file:
- .env
environment:
- VITE_BOOTSTRAPURL=wss://dev4.4nkweb.com/ws/
ports:
- "127.0.0.1:3003:3003"
networks:
@ -178,6 +180,24 @@ services:
- btcnet
restart: unless-stopped
signet_miner:
build:
context: ./miner
container_name: signet_miner
depends_on:
bitcoin:
condition: service_healthy
env_file:
- ./miner/.env
volumes:
- bitcoin_data:/bitcoin:ro
networks:
btcnet:
aliases:
- signet_miner
profiles: ["miner"]
restart: unless-stopped
volumes:
bitcoin_data:
name: 4nk_node_bitcoin_data

View File

@ -72,3 +72,5 @@ Analyse du nœud dorchestration `lecoffre_node` et de son `docker-compose.yml

View File

@ -41,3 +41,5 @@

View File

@ -258,3 +258,519 @@
2025-09-19T17:14:29 [IHM] WARN Files in the public directory are served at the root path.
2025-09-19T17:14:29 [IHM] Instead of /public/style/4nk.css, use /style/4nk.css.
2025-09-19T17:14:29 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] > sdk_client@1.0.0 start
2025-09-19T17:56:40 [IHM] > vite --host 0.0.0.0
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] The CJS build of Vite's Node API is deprecated. See https://vite.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 1 import { Device, Process, SecretsStore } from "../pkg/sdk_client.js";
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T17:56:40 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 802 await service.updateMemberPublicName(process, newValue);
2025-09-19T17:56:40 [IHM]    ~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T17:56:40 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 861 const lastState = service.getLastCommitedState(process);
2025-09-19T17:56:40 [IHM]    ~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T17:56:40 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 870 const publicData = await service.getPublicData(process);
2025-09-19T17:56:40 [IHM]    ~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type '(h: string) => string' is not assignable to parameter of type '(value: unknown, index: number, array: unknown[]) => string'.
2025-09-19T17:56:40 [IHM] Types of parameters 'h' and 'value' are incompatible.
2025-09-19T17:56:40 [IHM] Type 'unknown' is not assignable to type 'string'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 174 state.commitmentHashes = Object.values(json.pcd_commitment).map((h: string) =>
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM] 175 h.toLowerCase()
2025-09-19T17:56:40 [IHM]   ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 209 const processId = state.certificate.process_id;
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T17:56:40 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 58 let newState = service.getStateFromId(process, stateId);
2025-09-19T17:56:40 [IHM]    ~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2322: Type 'Blob | null' is not assignable to type 'BlobPart'.
2025-09-19T17:56:40 [IHM] Type 'null' is not assignable to type 'BlobPart'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 65 const blob = new Blob([encryptedData], { type: "application/octet-stream" });
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'generateProcessPdf' does not exist on type 'Services'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 74 await service.generateProcessPdf(processId, newState);
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS7053: Element implicitly has an 'any' type because expression of type '"process_id"' can't be used to index type 'ProcessState'.
2025-09-19T17:56:40 [IHM] Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 77 newState['process_id'] = processId;
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 3 import { Process } from '../../pkg/sdk_client.js';
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 7 import { RoleDefinition } from '../pkg/sdk_client.js';
2025-09-19T17:56:40 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'storages' does not exist on type 'UserDiff'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 706 const storages = diff.storages;
2025-09-19T17:56:40 [IHM]    ~~~~~~~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] WARN 5:31:11 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'never[]' is not assignable to parameter of type 'Process'.
2025-09-19T17:56:40 [IHM] Property 'states' is missing in type 'never[]' but required in type 'Process'.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] 166 await service.checkConnections([]);
2025-09-19T17:56:40 [IHM]    ~~
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] pkg/sdk_client.d.ts:155:5
2025-09-19T17:56:40 [IHM] 155 states: ProcessState[];
2025-09-19T17:56:40 [IHM]    ~~~~~~
2025-09-19T17:56:40 [IHM] 'states' is declared here.
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] VITE v5.4.11 ready in 6819 ms
2025-09-19T17:56:40 [IHM]
2025-09-19T17:56:40 [IHM] ➜ Local: http://localhost:3003/
2025-09-19T17:56:40 [IHM] ➜ Network: http://172.20.0.11:3003/
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] > sdk_client@1.0.0 start
2025-09-19T18:08:06 [IHM] > vite --host 0.0.0.0
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] The CJS build of Vite's Node API is deprecated. See https://vite.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 1 import { Device, Process, SecretsStore } from "../pkg/sdk_client.js";
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:08:06 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 802 await service.updateMemberPublicName(process, newValue);
2025-09-19T18:08:06 [IHM]    ~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:08:06 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 861 const lastState = service.getLastCommitedState(process);
2025-09-19T18:08:06 [IHM]    ~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:08:06 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 870 const publicData = await service.getPublicData(process);
2025-09-19T18:08:06 [IHM]    ~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type '(h: string) => string' is not assignable to parameter of type '(value: unknown, index: number, array: unknown[]) => string'.
2025-09-19T18:08:06 [IHM] Types of parameters 'h' and 'value' are incompatible.
2025-09-19T18:08:06 [IHM] Type 'unknown' is not assignable to type 'string'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 174 state.commitmentHashes = Object.values(json.pcd_commitment).map((h: string) =>
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM] 175 h.toLowerCase()
2025-09-19T18:08:06 [IHM]   ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 209 const processId = state.certificate.process_id;
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:08:06 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 58 let newState = service.getStateFromId(process, stateId);
2025-09-19T18:08:06 [IHM]    ~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2322: Type 'Blob | null' is not assignable to type 'BlobPart'.
2025-09-19T18:08:06 [IHM] Type 'null' is not assignable to type 'BlobPart'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 65 const blob = new Blob([encryptedData], { type: "application/octet-stream" });
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'generateProcessPdf' does not exist on type 'Services'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 74 await service.generateProcessPdf(processId, newState);
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS7053: Element implicitly has an 'any' type because expression of type '"process_id"' can't be used to index type 'ProcessState'.
2025-09-19T18:08:06 [IHM] Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 77 newState['process_id'] = processId;
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 3 import { Process } from '../../pkg/sdk_client.js';
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 7 import { RoleDefinition } from '../pkg/sdk_client.js';
2025-09-19T18:08:06 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'storages' does not exist on type 'UserDiff'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 706 const storages = diff.storages;
2025-09-19T18:08:06 [IHM]    ~~~~~~~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] WARN 6:07:56 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'never[]' is not assignable to parameter of type 'Process'.
2025-09-19T18:08:06 [IHM] Property 'states' is missing in type 'never[]' but required in type 'Process'.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] 166 await service.checkConnections([]);
2025-09-19T18:08:06 [IHM]    ~~
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] pkg/sdk_client.d.ts:155:5
2025-09-19T18:08:06 [IHM] 155 states: ProcessState[];
2025-09-19T18:08:06 [IHM]    ~~~~~~
2025-09-19T18:08:06 [IHM] 'states' is declared here.
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] VITE v5.4.11 ready in 6690 ms
2025-09-19T18:08:06 [IHM]
2025-09-19T18:08:06 [IHM] ➜ Local: http://localhost:3003/
2025-09-19T18:08:06 [IHM] ➜ Network: http://172.20.0.11:3003/
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] > sdk_client@1.0.0 start
2025-09-19T18:12:09 [IHM] > vite --host 0.0.0.0
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] The CJS build of Vite's Node API is deprecated. See https://vite.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 1 import { Device, Process, SecretsStore } from "../pkg/sdk_client.js";
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:12:09 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 802 await service.updateMemberPublicName(process, newValue);
2025-09-19T18:12:09 [IHM]    ~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:12:09 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 861 const lastState = service.getLastCommitedState(process);
2025-09-19T18:12:09 [IHM]    ~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:12:09 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 870 const publicData = await service.getPublicData(process);
2025-09-19T18:12:09 [IHM]    ~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type '(h: string) => string' is not assignable to parameter of type '(value: unknown, index: number, array: unknown[]) => string'.
2025-09-19T18:12:09 [IHM] Types of parameters 'h' and 'value' are incompatible.
2025-09-19T18:12:09 [IHM] Type 'unknown' is not assignable to type 'string'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 174 state.commitmentHashes = Object.values(json.pcd_commitment).map((h: string) =>
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM] 175 h.toLowerCase()
2025-09-19T18:12:09 [IHM]   ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 209 const processId = state.certificate.process_id;
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:12:09 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 58 let newState = service.getStateFromId(process, stateId);
2025-09-19T18:12:09 [IHM]    ~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2322: Type 'Blob | null' is not assignable to type 'BlobPart'.
2025-09-19T18:12:09 [IHM] Type 'null' is not assignable to type 'BlobPart'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 65 const blob = new Blob([encryptedData], { type: "application/octet-stream" });
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'generateProcessPdf' does not exist on type 'Services'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 74 await service.generateProcessPdf(processId, newState);
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS7053: Element implicitly has an 'any' type because expression of type '"process_id"' can't be used to index type 'ProcessState'.
2025-09-19T18:12:09 [IHM] Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 77 newState['process_id'] = processId;
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 3 import { Process } from '../../pkg/sdk_client.js';
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 7 import { RoleDefinition } from '../pkg/sdk_client.js';
2025-09-19T18:12:09 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'storages' does not exist on type 'UserDiff'.
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] 706 const storages = diff.storages;
2025-09-19T18:12:09 [IHM]    ~~~~~~~~
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM]
2025-09-19T18:12:09 [IHM] WARN 6:11:55 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'never[]' is not assignable to parameter of type 'Process'.
2025-09-19T18:12:09 [IHM] Property 'states' is missing in type 'never[]' but required in type 'Process'.
2025-09-19T18:12:10 [IHM]
2025-09-19T18:12:10 [IHM] 166 await service.checkConnections([]);
2025-09-19T18:12:10 [IHM]    ~~
2025-09-19T18:12:10 [IHM]
2025-09-19T18:12:10 [IHM] pkg/sdk_client.d.ts:155:5
2025-09-19T18:12:10 [IHM] 155 states: ProcessState[];
2025-09-19T18:12:10 [IHM]    ~~~~~~
2025-09-19T18:12:10 [IHM] 'states' is declared here.
2025-09-19T18:12:10 [IHM]
2025-09-19T18:12:10 [IHM]
2025-09-19T18:12:10 [IHM]
2025-09-19T18:12:10 [IHM] VITE v5.4.11 ready in 6156 ms
2025-09-19T18:12:10 [IHM]
2025-09-19T18:12:10 [IHM] ➜ Local: http://localhost:3003/
2025-09-19T18:12:10 [IHM] ➜ Network: http://172.20.0.11:3003/
2025-09-19T18:12:33 [IHM]
2025-09-19T18:12:33 [IHM] WARN Files in the public directory are served at the root path.
2025-09-19T18:12:33 [IHM] Instead of /public/style/4nk.css, use /style/4nk.css.
2025-09-19T18:12:33 [IHM]
2025-09-19T18:12:37 [IHM]
2025-09-19T18:12:37 [IHM] WARN Files in the public directory are served at the root path.
2025-09-19T18:12:37 [IHM] Instead of /public/style/4nk.css, use /style/4nk.css.
2025-09-19T18:12:37 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] > sdk_client@1.0.0 start
2025-09-19T18:14:42 [IHM] > vite --host 0.0.0.0
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] The CJS build of Vite's Node API is deprecated. See https://vite.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 1 import { Device, Process, SecretsStore } from "../pkg/sdk_client.js";
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:14:42 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 802 await service.updateMemberPublicName(process, newValue);
2025-09-19T18:14:42 [IHM]    ~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:14:42 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 861 const lastState = service.getLastCommitedState(process);
2025-09-19T18:14:42 [IHM]    ~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:14:42 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 870 const publicData = await service.getPublicData(process);
2025-09-19T18:14:42 [IHM]    ~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type '(h: string) => string' is not assignable to parameter of type '(value: unknown, index: number, array: unknown[]) => string'.
2025-09-19T18:14:42 [IHM] Types of parameters 'h' and 'value' are incompatible.
2025-09-19T18:14:42 [IHM] Type 'unknown' is not assignable to type 'string'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 174 state.commitmentHashes = Object.values(json.pcd_commitment).map((h: string) =>
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM] 175 h.toLowerCase()
2025-09-19T18:14:42 [IHM]   ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 209 const processId = state.certificate.process_id;
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'Process | null' is not assignable to parameter of type 'Process'.
2025-09-19T18:14:42 [IHM] Type 'null' is not assignable to type 'Process'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 58 let newState = service.getStateFromId(process, stateId);
2025-09-19T18:14:42 [IHM]    ~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2322: Type 'Blob | null' is not assignable to type 'BlobPart'.
2025-09-19T18:14:42 [IHM] Type 'null' is not assignable to type 'BlobPart'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 65 const blob = new Blob([encryptedData], { type: "application/octet-stream" });
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'generateProcessPdf' does not exist on type 'Services'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 74 await service.generateProcessPdf(processId, newState);
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS7053: Element implicitly has an 'any' type because expression of type '"process_id"' can't be used to index type 'ProcessState'.
2025-09-19T18:14:42 [IHM] Property 'process_id' does not exist on type 'ProcessState'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 77 newState['process_id'] = processId;
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 3 import { Process } from '../../pkg/sdk_client.js';
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2307: Cannot find module '../pkg/sdk_client.js' or its corresponding type declarations.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 7 import { RoleDefinition } from '../pkg/sdk_client.js';
2025-09-19T18:14:42 [IHM]    ~~~~~~~~~~~~~~~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2339: Property 'storages' does not exist on type 'UserDiff'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 706 const storages = diff.storages;
2025-09-19T18:14:42 [IHM]    ~~~~~~~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] WARN 6:14:27 PM [vite] warning: @rollup/plugin-typescript TS2345: Argument of type 'never[]' is not assignable to parameter of type 'Process'.
2025-09-19T18:14:42 [IHM] Property 'states' is missing in type 'never[]' but required in type 'Process'.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] 166 await service.checkConnections([]);
2025-09-19T18:14:42 [IHM]    ~~
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] pkg/sdk_client.d.ts:155:5
2025-09-19T18:14:42 [IHM] 155 states: ProcessState[];
2025-09-19T18:14:42 [IHM]    ~~~~~~
2025-09-19T18:14:42 [IHM] 'states' is declared here.
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] VITE v5.4.11 ready in 7086 ms
2025-09-19T18:14:42 [IHM]
2025-09-19T18:14:42 [IHM] ➜ Local: http://localhost:3003/
2025-09-19T18:14:42 [IHM] ➜ Network: http://172.20.0.11:3003/
2025-09-19T18:15:04 [IHM]
2025-09-19T18:15:04 [IHM] WARN Files in the public directory are served at the root path.
2025-09-19T18:15:04 [IHM] Instead of /public/style/4nk.css, use /style/4nk.css.
2025-09-19T18:15:04 [IHM]
2025-09-19T18:15:04 [IHM]
2025-09-19T18:15:04 [IHM] WARN Files in the public directory are served at the root path.
2025-09-19T18:15:04 [IHM] Instead of /public/assets/bgd.webp, use /assets/bgd.webp.
2025-09-19T18:15:04 [IHM]
2025-09-19T18:15:39 [IHM]
2025-09-19T18:15:39 [IHM] WARN Files in the public directory are served at the root path.
2025-09-19T18:15:39 [IHM] Instead of /public/style/4nk.css, use /style/4nk.css.
2025-09-19T18:15:39 [IHM]

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,11 @@
2025-09-19T17:13:52 [RELAY] [2025-09-19T15:11:12Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:38612: WebSocket protocol error: Handshake not finished
2025-09-19T17:13:52 [RELAY] [2025-09-19T15:24:36Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:44116: WebSocket protocol error: No "Connection: upgrade" header
2025-09-19T17:13:52 [RELAY] [2025-09-19T16:41:55Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:57946: WebSocket protocol error: Unsupported HTTP method used - only GET is allowed
2025-09-19T17:56:43 [RELAY] [2025-09-19T17:17:24Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:33312: WebSocket protocol error: No "Connection: upgrade" header
2025-09-19T17:56:43 [RELAY] [2025-09-19T17:36:55Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:57868: WebSocket protocol error: Unsupported HTTP method used - only GET is allowed
2025-09-19T18:08:09 [RELAY] [2025-09-19T17:17:24Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:33312: WebSocket protocol error: No "Connection: upgrade" header
2025-09-19T18:08:09 [RELAY] [2025-09-19T17:36:55Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:57868: WebSocket protocol error: Unsupported HTTP method used - only GET is allowed
2025-09-19T18:12:15 [RELAY] [2025-09-19T17:17:24Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:33312: WebSocket protocol error: No "Connection: upgrade" header
2025-09-19T18:12:15 [RELAY] [2025-09-19T17:36:55Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:57868: WebSocket protocol error: Unsupported HTTP method used - only GET is allowed
2025-09-19T18:14:44 [RELAY] [2025-09-19T17:17:24Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:33312: WebSocket protocol error: No "Connection: upgrade" header
2025-09-19T18:14:44 [RELAY] [2025-09-19T17:36:55Z ERROR sdk_relay] WebSocket handshake failed for 172.20.0.1:57868: WebSocket protocol error: Unsupported HTTP method used - only GET is allowed

7
miner/.env.exemple Normal file
View File

@ -0,0 +1,7 @@
RPC_HOST=bitcoin
RPC_PORT=38332
POLL_INTERVAL=10
SIGNET_CHALLENGE=0020341c43803863c252df326e73574a27d7e19322992061017b0dc893e2eab90821
SIGNET_MINER_XPRV=
DERIVATION_PATH=48'/1'/0'/2'/0/0
COINBASE_ADDRESS=tb1q4lxq8v9xhfk0609gwquucl9w62hqj5g665mjhe3d3u3udjuz2mwqty5fz2

23
miner/Dockerfile Normal file
View File

@ -0,0 +1,23 @@
# syntax=docker/dockerfile:1
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates curl \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY entrypoint.sh ./
COPY signet_miner.py ./
RUN chmod +x /app/entrypoint.sh
VOLUME ["/bitcoin"]
ENTRYPOINT ["/app/entrypoint.sh"]

28
miner/entrypoint.sh Executable file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
BITCOIN_DIR=${BITCOIN_DIR:-/bitcoin}
# Le volume monte /home/bitcoin/.bitcoin -> /bitcoin, donc le cookie est /bitcoin/signet/.cookie
COOKIE_FILE=${COOKIE_FILE:-$BITCOIN_DIR/signet/.cookie}
RPC_HOST=${RPC_HOST:-bitcoin}
RPC_PORT=${RPC_PORT:-38332}
POLL_INTERVAL=${POLL_INTERVAL:-5}
if [ ! -f "$COOKIE_FILE" ]; then
echo "Cookie introuvable: $COOKIE_FILE" >&2
ls -la "$BITCOIN_DIR" || true
exit 1
fi
# Variables attendues via env_file miner/.env
export SIGNET_MINER_WIF=${SIGNET_MINER_WIF:-}
export SIGNET_MINER_XPRV=${SIGNET_MINER_XPRV:-}
export DERIVATION_PATH=${DERIVATION_PATH:-}
export SIGNET_CHALLENGE=${SIGNET_CHALLENGE:-}
export COINBASE_ADDRESS=${COINBASE_ADDRESS:-}
exec python /app/signet_miner.py \
--cookie "$COOKIE_FILE" \
--rpc-host "$RPC_HOST" \
--rpc-port "$RPC_PORT" \
--poll-interval "$POLL_INTERVAL"

2
miner/requirements.txt Normal file
View File

@ -0,0 +1,2 @@
requests==2.32.3
python-bitcointx==1.1.2

78
miner/signet_miner.py Normal file
View File

@ -0,0 +1,78 @@
import argparse
import base64
import http.client
import json
import os
import time
def rpc_call(host: str, port: int, cookie_path: str, method: str, params):
with open(cookie_path, 'r', encoding='utf-8') as f:
cookie = f.read().strip()
auth = base64.b64encode(cookie.encode()).decode()
conn = http.client.HTTPConnection(host, port, timeout=30)
payload = json.dumps({"jsonrpc": "1.0", "id": "miner", "method": method, "params": params})
headers = {"Content-Type": "application/json", "Authorization": f"Basic {auth}"}
conn.request("POST", "/", payload, headers)
resp = conn.getresponse()
body = resp.read()
if resp.status != 200:
raise RuntimeError(f"RPC HTTP {resp.status}: {body.decode(errors='ignore')}")
data = json.loads(body)
if data.get("error"):
raise RuntimeError(str(data["error"]))
return data["result"]
def main():
p = argparse.ArgumentParser()
p.add_argument('--cookie', required=True)
p.add_argument('--rpc-host', default='bitcoin')
p.add_argument('--rpc-port', type=int, default=38332)
p.add_argument('--poll-interval', type=int, default=5)
args = p.parse_args()
# Paramètres via env
challenge = os.environ.get('SIGNET_CHALLENGE', '')
xprv = os.environ.get('SIGNET_MINER_XPRV', '')
derivation = os.environ.get('DERIVATION_PATH', "48'/1'/0'/2'/0/0")
coinbase_addr = os.environ.get('COINBASE_ADDRESS', '')
if not challenge:
raise SystemExit('SIGNET_CHALLENGE non défini')
if not xprv:
print('Avertissement: SIGNET_MINER_XPRV non défini (mode lecture gbt uniquement)')
if not coinbase_addr:
raise SystemExit('COINBASE_ADDRESS non défini')
print('Miner signet: host=%s port=%d' % (args.rpc_host, args.rpc_port), flush=True)
print('Challenge:', challenge, flush=True)
print('Derivation:', derivation, flush=True)
print('Coinbase address:', coinbase_addr, flush=True)
try:
bh = rpc_call(args.rpc_host, args.rpc_port, args.cookie, 'getblockcount', [])
print('Hauteur actuelle:', bh, flush=True)
except Exception as e:
print('Erreur RPC initiale:', e, flush=True)
while True:
try:
# Inclure la règle signet comme demandé par bitcoind en signet
tmpl = rpc_call(
args.rpc_host,
args.rpc_port,
args.cookie,
'getblocktemplate',
[{"rules": ["segwit", "signet"]}]
)
print('Template: height=%s nTx=%s' % (tmpl.get('height'), len(tmpl.get('transactions', []))), flush=True)
# TODO: construire coinbase (coinbase_addr), header, signer selon le challenge signet puis submitblock
except Exception as e:
print('Erreur getblocktemplate:', e, flush=True)
time.sleep(args.poll_interval)
if __name__ == '__main__':
main()

View File

@ -31,3 +31,5 @@