Hello friends , we are still working on the spark spot market release, and this time I have faced into problem during the deployment ts-based spark matching engine.
The matcher works well if I start it using nodemon
or npm run build && npm run start
:
Spark matching output when I run it with `npm run start `
>>> npm run build && npm run start
> spark-matcher@0.0.1 build
> tsc --p tsconfig.build.json
> spark-matcher@0.0.1 start
> node dist/server.js
{ NODE_URL: 'https://beta-4.fuel.network/graphql' }
██████╗ ██████╗ ███╗ ███╗██████╗ ██████╗ ███████╗ █████╗ ██████╗ ██╗██╗ ██╗████████╗██╗ ██╗
██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔═══██╗██╔════╝██╔══██╗██╔══██╗██║██║ ██║╚══██╔══╝╚██╗ ██╔╝
██║ ██║ ██║██╔████╔██║██████╔╝██║ ██║███████╗███████║██████╔╝██║██║ ██║ ██║ ╚████╔╝
██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██║ ██║╚════██║██╔══██║██╔══██╗██║██║ ██║ ██║ ╚██╔╝
╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ╚██████╔╝███████║██║ ██║██████╔╝██║███████╗██║ ██║ ██║
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝
██╗ █████╗ ██████╗ ███████╗
██║ ██╔══██╗██╔══██╗██╔════╝
██║ ███████║██████╔╝███████╗
██║ ██╔══██║██╔══██╗╚════██║
███████╗██║ ██║██████╔╝███████║
╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝
🚀 Server ready at: http://localhost:5003
🛫 Job start
Buy orders: 19 | Sell orders: 9 | Total orders: 40
But when I try to run it inside a docker container I have the next error:
Spark matcher dicker container logs
>>> sudo docker build --tag spark-matcher . && sudo docker run --restart=always -d spark-matcher
Password:
[+] Building 27.1s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/node:14-slim 1.5s
=> [1/6] FROM docker.io/library/node:14-slim@sha256:198142146b4c47193348f6415da769bdb5035c16fcab051c38c256a6b48f2e1c 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 57.64kB 0.0s
=> CACHED [2/6] RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app 0.0s
=> [3/6] COPY . /home/node/app 0.1s
=> [4/6] WORKDIR /home/node/app 0.0s
=> [5/6] RUN npm install 21.7s
=> [6/6] RUN npm run build 1.5s
=> exporting to image 2.2s
=> => exporting layers 2.2s
=> => writing image sha256:559571be7418fb9436e5fb618e14d8573af95969bc64fcf98694310f564701b7 0.0s
=> => naming to docker.io/library/spark-matcher 0.0s
f2a6c7616d05b3855640ae77dbe4c71c8b358731ad1e5165e276646497d320c0
>>> docker logs f2a6c7616d05b3855640ae77dbe4c71c8b358731ad1e5165e276646497d320c0 -f (*beta-4+242) 12:47:50
{ NODE_URL: 'https://beta-4.fuel.network/graphql' }
██████╗ ██████╗ ███╗ ███╗██████╗ ██████╗ ███████╗ █████╗ ██████╗ ██╗██╗ ██╗████████╗██╗ ██╗
██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔═══██╗██╔════╝██╔══██╗██╔══██╗██║██║ ██║╚══██╔══╝╚██╗ ██╔╝
██║ ██║ ██║██╔████╔██║██████╔╝██║ ██║███████╗███████║██████╔╝██║██║ ██║ ██║ ╚████╔╝
██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██║ ██║╚════██║██╔══██║██╔══██╗██║██║ ██║ ██║ ╚██╔╝
╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ╚██████╔╝███████║██║ ██║██████╔╝██║███████╗██║ ██║ ██║
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝
██╗ █████╗ ██████╗ ███████╗
██║ ██╔══██╗██╔══██╗██╔════╝
██║ ███████║██████╔╝███████╗
██║ ██╔══██║██╔══██╗╚════██║
███████╗██║ ██║██████╔╝███████║
╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝
🚀 Server ready at: http://localhost:5003
(node:1) UnhandledPromiseRejectionWarning: ReferenceError: AbortController is not defined
at createClient (/home/node/app/node_modules/graphql-sse/lib/client.js:67:9)
at Function.createSubscriptionClient (/home/node/app/node_modules/fuels/node_modules/@fuel-ts/providers/dist/index.js:3019:48)
at _Provider.createOperations (/home/node/app/node_modules/fuels/node_modules/@fuel-ts/providers/dist/index.js:3006:55)
at new _Provider (/home/node/app/node_modules/fuels/node_modules/@fuel-ts/providers/dist/index.js:2901:10)
at Function.create (/home/node/app/node_modules/fuels/node_modules/@fuel-ts/providers/dist/index.js:2916:22)
at new SparkMatcher (/home/node/app/dist/server.js:121:26)
at Object.<anonymous> (/home/node/app/dist/server.js:144:17)
at Module._compile (internal/modules/cjs/loader.js:1114:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
at Module.load (internal/modules/cjs/loader.js:979:32)
I just debugged it and found the place where it falls
Toolchain
Default host: x86_64-unknown-linux-gnu
fuelup home: /home/ubuntu/.fuelup
installed toolchains
--------------------
latest-x86_64-unknown-linux-gnu (default)
active toolchain
-----------------
latest-x86_64-unknown-linux-gnu (default)
forc : 0.40.1
- forc-client
- forc-deploy : 0.40.1
- forc-run : 0.40.1
- forc-doc : 0.40.1
- forc-explore : 0.28.1
- forc-fmt : 0.40.1
- forc-index : 0.16.1
- forc-lsp : 0.40.1
- forc-tx : 0.40.1
- forc-wallet : 0.2.2
fuel-core : 0.18.1
fuel-indexer : 0.16.1
fuels versions
---------------
forc : 0.42
How to reproduce
git clone https://github.com/compolabs/spark.git
cd spark
git checkout beta-4
cd services/spark-mather
#
# #.env file
#NODE_ENV=development
#PORT=5003
#PRIVATE_KEY="YOUR PK WITH ETH HERE"
#CONTRACT_ADDRESS="0xe2058c9c621c42bde654dd31560ab3bf68a5b9f517894ee7db0b6f82ea5d3e3a"
#NODE_URL="https://beta-4.fuel.network/graphql"
#INDEXER_URL="https://spark-indexer.spark-defi.com/api/sql/composabilitylabs/spark_indexer"
#
echo "<YOUR ENV FILE>" >> .env
sudo docker build --tag spark-matcher . && sudo docker run --restart=always -d spark-matcher
# and here check logs of the container