bmino / binance-triangle-arbitrage

Detect in-market cryptocurrency arbitrage
MIT License
1.07k stars 336 forks source link

"ETIMEDOUT" Receive window 5000-1000000 #129

Closed ExtraLime closed 3 years ago

ExtraLime commented 3 years ago

I'm receiving this error code when I npm start.

here is the output:

Checking configuration ... Checking latency ... Experiencing 215 ms of latency Fetching exchange info ... Found 927/1273 currently trading tickers Found 504 triangular trades Checking market conditions ... Opening 698 depth websockets for 698 tickers ... Error: ETIMEDOUT at Timeout. (gits/binance-triangle-arbitrage/node_modules/request/request.js:848:19) at listOnTimeout (internal/timers.js:549:17) at processTimers (internal/timers.js:492:7) { code: 'ETIMEDOUT', connect: true } npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! binance-triangle-arbitrage@6.1.0 start: node src/main/Main.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the binance-triangle-arbitrage@6.1.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! /.npm/_logs/2021-01-31T21_38_56_124Z-debug.log

here is my config: {

"KEYS": {
    "API": "",
    "SECRET": ""
},

"INVESTMENT": {
    "BASE": "USDT",
    "MIN": 0.010,
    "MAX": 0.015,
    "STEP": 0.005
},

"SCANNING": {
    "DEPTH": 50,
    "WHITELIST": []
},

"EXECUTION": {
    "ENABLED": false,
    "CAP": 1,
    "STRATEGY": "linear",
    "TEMPLATE": ["BUY", "SELL", "SELL"],
    "FEE": 0.075,
    "THRESHOLD": {
        "PROFIT": 0.00,
        "AGE": 200000
    }
},

"HUD": {
    "ENABLED": true,
    "ROWS": 10,
    "REFRESH_RATE": 500
},

"LOG": {
    "LEVEL": "debug",
    "PRETTY_PRINT": true,
    "STATUS_UPDATE_INTERVAL": 2
},

"WEBSOCKET": {
    "BUNDLE_SIZE": 1,
    "INITIALIZATION_INTERVAL": 200
},

"TIMING": {
    "RECEIVE_WINDOW": 10000
},

"BINANCE_OPTIONS": {}

}

ubuntu 20 vpn with german ip and true US ip

I read through some of the other issues and tried a few different things in the config file. This is the only error I have received. The error says its coming from the request package but before I dig into it, any ideas?

bmino commented 3 years ago

It happens. The app is making quite a few requests and they can get tied up.

Some ideas to play around with:

Idk what TIMING.RECEIVE_WINDOW is doing? That isn't a valid config option. Make sure you are using the latest release of the app. You can accomplish what I think you are trying to do like this:

"BINANCE_OPTIONS": {
    "recvWindow": 10000
}
ExtraLime commented 3 years ago

image My bad, i just saw this on another issue from august. But great thank you for the info. Ill try now.

bmino commented 3 years ago

Hey I appreciate you looking through issues for some self help :) I'll leave this open as you troubleshoot through. Lemme know what happens

ExtraLime commented 3 years ago

Thanks. I know it get annoyed when people say "it doesnt work" without reading ANYTHING. I managed for it to not error out, by changing the recvWindow and using BTC as the currency (did not need to whitelist). Thanks. I have a super noob question about where to get to the hud. I more of a python guy, and when I do webdev its usually in React or some other spoon fed frame work. After looking through the code, I still cant determines what how to bring up the HUD. Any help with this would be great thanks.

bmino commented 3 years ago

The HUD will display in the same terminal window that you started the app with (npm start). Make sure the app is actually running. You will see an output of "Initialized" in the terminal after all websockets have been initialized which will take longer depending on your INITIALIZATION_INTERVAL

m4s0 commented 3 years ago

I got the same error

$ npm start

> binance-triangle-arbitrage@6.1.0 start /code/languages/node.js/binance-triangle-arbitrage
> node src/main/Main.js

Checking configuration ...
Checking latency ...
Error: ETIMEDOUT
    at Timeout.<anonymous> (/code/languages/node.js/binance-triangle-arbitrage/node_modules/request/request.js:848:19)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7) {
  code: 'ETIMEDOUT',
  connect: true
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! binance-triangle-arbitrage@6.1.0 start: `node src/main/Main.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the binance-triangle-arbitrage@6.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/m4s0/.npm/_logs/2021-02-01T22_58_06_651Z-debug.log

here the logs

$ cat /home/m4s0/.npm/_logs/2021-02-01T22_58_06_651Z-debug.log         
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/home/m4s0/.nvm/versions/node/v14.15.1/bin/node',
1 verbose cli   '/home/m4s0/.nvm/versions/node/v14.15.1/bin/npm',
1 verbose cli   'start'
1 verbose cli ]
2 info using npm@6.14.9
3 info using node@v14.15.1
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle binance-triangle-arbitrage@6.1.0~prestart: binance-triangle-arbitrage@6.1.0
6 info lifecycle binance-triangle-arbitrage@6.1.0~start: binance-triangle-arbitrage@6.1.0
7 verbose lifecycle binance-triangle-arbitrage@6.1.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle binance-triangle-arbitrage@6.1.0~start: PATH: /home/m4s0/.nvm/versions/node/v14.15.1/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/code/languages/node.js/binance-triangle-arbitrage/node_modules/.bin:/home/m4s0/.nvm/versions/node/v14.15.1/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/m4s0/.gem/ruby/2.7.0/bin
9 verbose lifecycle binance-triangle-arbitrage@6.1.0~start: CWD: /code/languages/node.js/binance-triangle-arbitrage
10 silly lifecycle binance-triangle-arbitrage@6.1.0~start: Args: [ '-c', 'node src/main/Main.js' ]
11 silly lifecycle binance-triangle-arbitrage@6.1.0~start: Returned: code: 1  signal: null
12 info lifecycle binance-triangle-arbitrage@6.1.0~start: Failed to exec start script
13 verbose stack Error: binance-triangle-arbitrage@6.1.0 start: `node src/main/Main.js`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/home/m4s0/.nvm/versions/node/v14.15.1/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess.<anonymous> (/home/m4s0/.nvm/versions/node/v14.15.1/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315:20)
13 verbose stack     at maybeClose (internal/child_process.js:1048:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
14 verbose pkgid binance-triangle-arbitrage@6.1.0
15 verbose cwd /code/languages/node.js/binance-triangle-arbitrage
16 verbose Linux 5.10.10-arch1-1
17 verbose argv "/home/m4s0/.nvm/versions/node/v14.15.1/bin/node" "/home/m4s0/.nvm/versions/node/v14.15.1/bin/npm" "start"
18 verbose node v14.15.1
19 verbose npm  v6.14.9
20 error code ELIFECYCLE
21 error errno 1
22 error binance-triangle-arbitrage@6.1.0 start: `node src/main/Main.js`
22 error Exit status 1
23 error Failed at the binance-triangle-arbitrage@6.1.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
m4s0 commented 3 years ago

I solved changing this part of conf

  "WEBSOCKET": {
    "BUNDLE_SIZE": 3,
    "INITIALIZATION_INTERVAL": 1000
  },
  "BINANCE_OPTIONS": {
    "recvWindow": 10000
  }
ExtraLime commented 3 years ago

I was able to run it, but it took so long i just stepped away, so maybe i missed the HUD. It finished running and displayed the trade it would have executed. But the next time it timed out again. I think because im on a VPN the latency is too high. I am going to re run with a few different configurations and different VPN locations to see if I can get it to execute successively. I would consider my issue closable. @m4s0 you good?

m4s0 commented 3 years ago

@ExtraLime using a VPN is not a good idea IMHO

ExtraLime commented 3 years ago

Yeah I agree, but i have my reasons. Im going to go ahead and close this ticket.

ExtraLime commented 3 years ago

@bmino kicked you some scratch for this. Good stuff man