SemenMartynov / Software-Engineering-2022

Peter the Great St. Petersburg Polytechnic University: Software Engineering course 2022
MIT License
4 stars 1 forks source link

Wheelchair blockhain #303

Closed donebd closed 1 year ago

donebd commented 1 year ago

Student, group: Daniil Bakin, 3530901/90201 URL: https://github.com/donebd/blockchain Any comments: Nodejs, TS, Websockets, git flow

SemenMartynov commented 1 year ago
smart@thinkpad$ docker compose --verbose up
[+] Running 3/0
 ✔ Container node1  Created                                                                                                                                                                                                              0.0s 
 ✔ Container node2  Created                                                                                                                                                                                                              0.0s 
 ✔ Container node3  Created                                                                                                                                                                                                              0.0s 
Attaching to node1, node2, node3
node1  | 
node1  | > wheelchair-blockchain@1.0.0 start
node1  | > npm run build && npm run run
node1  | 
node2  | 
node2  | > wheelchair-blockchain@1.0.0 start
node2  | > npm run build && npm run run
node2  | 
node1  | 
node1  | > wheelchair-blockchain@1.0.0 build
node1  | > tsc && npm run copy-cfg
node1  | 
node3  | 
node3  | > wheelchair-blockchain@1.0.0 start
node3  | > npm run build && npm run run
node3  | 
node2  | 
node2  | > wheelchair-blockchain@1.0.0 build
node2  | > tsc && npm run copy-cfg
node2  | 
node3  | 
node3  | > wheelchair-blockchain@1.0.0 build
node3  | > tsc && npm run copy-cfg
node3  | 
node1  | 
node1  | > wheelchair-blockchain@1.0.0 copy-cfg
node1  | > cp ./src/config/blockchain.properties ./dist/config/blockchain.properties
node1  | 
node2  | 
node2  | > wheelchair-blockchain@1.0.0 copy-cfg
node2  | > cp ./src/config/blockchain.properties ./dist/config/blockchain.properties
node2  | 
node3  | 
node3  | > wheelchair-blockchain@1.0.0 copy-cfg
node3  | > cp ./src/config/blockchain.properties ./dist/config/blockchain.properties
node3  | 
node1  | 
node1  | > wheelchair-blockchain@1.0.0 run
node1  | > node --loader ts-node/esm --es-module-specifier-resolution=node dist/main.js
node1  | 
node1  | (node:63) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any time
node1  | (Use `node --trace-warnings ...` to show where the warning was created)
node1  | (node:63) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
node2  | 
node2  | > wheelchair-blockchain@1.0.0 run
node2  | > node --loader ts-node/esm --es-module-specifier-resolution=node dist/main.js
node2  | 
node2  | (node:64) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any time
node2  | (Use `node --trace-warnings ...` to show where the warning was created)
node2  | (node:64) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
node1  | Error: listen EADDRINUSE: address already in use :::8080
node1  |     at Server.setupListenHandle [as _listen2] (node:net:1740:16)
node1  |     at listenInCluster (node:net:1788:12)
node1  |     at Server.listen (node:net:1876:7)
node1  |     at new WebSocketServer (/blockchain/node_modules/ws/lib/websocket-server.js:97:20)
node1  |     at Object.<anonymous> (/blockchain/dist/network/server.js:23:16)
node1  |     at Module._compile (node:internal/modules/cjs/loader:1254:14)
node1  |     at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
node1  |     at Object.require.extensions.<computed> [as .js] (/blockchain/node_modules/ts-node/src/index.ts:1608:43)
node1  |     at Module.load (node:internal/modules/cjs/loader:1117:32)
node1  |     at Function.Module._load (node:internal/modules/cjs/loader:958:12) {
node1  |   code: 'EADDRINUSE',
node1  |   errno: -98,
node1  |   syscall: 'listen',
node1  |   address: '::',
node1  |   port: 8080
node1  | }
node3  | 
node3  | > wheelchair-blockchain@1.0.0 run
node3  | > node --loader ts-node/esm --es-module-specifier-resolution=node dist/main.js
node3  | 
node1 exited with code 1
node2  | Error: socket hang up
node2  |     at connResetException (node:internal/errors:717:14)
node2  |     at Socket.socketOnEnd (node:_http_client:526:23)
node2  |     at Socket.emit (node:events:525:35)
node2  |     at Socket.emit (node:domain:489:12)
node2  |     at endReadableNT (node:internal/streams/readable:1359:12)
node2  |     at processTicksAndRejections (node:internal/process/task_queues:82:21) {
node2  |   code: 'ECONNRESET'
node2  | }
node3  | (node:64) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any time
node3  | (Use `node --trace-warnings ...` to show where the warning was created)
node3  | (node:64) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
node2 exited with code 1
node3  | Error: socket hang up
node3  |     at connResetException (node:internal/errors:717:14)
node3  |     at Socket.socketOnEnd (node:_http_client:526:23)
node3  |     at Socket.emit (node:events:525:35)
node3  |     at Socket.emit (node:domain:489:12)
node3  |     at endReadableNT (node:internal/streams/readable:1359:12)
node3  |     at processTicksAndRejections (node:internal/process/task_queues:82:21) {
node3  |   code: 'ECONNRESET'
node3  | }
node3 exited with code 1
donebd commented 1 year ago

8080 порт был занят, нода не стартанула, следующие ноды упали при попытке подключится к первой

donebd commented 1 year ago

@SemenMartynov, Потестил с чистой тачки у меня все работает

donebd commented 1 year ago

изображение

SemenMartynov commented 1 year ago

Окей.

Но всё же не стоит прколачивать проект к сетевому интерфейсу хоста -- компоуз сам создает подсеть и даже резолвер для доменных имён.