-
-
Notifications
You must be signed in to change notification settings - Fork 7.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GDAX enableRateLimit:true yields "Rate limit exceeded" #794
Comments
So, I just realized that using |
Should be. Let us know if this example does not work for you: https://github.com/ccxt/ccxt/blob/master/examples/py/async-gdax-fetch-ticker-continuously.py If it raises a DDoSProtection exception, then please report how long it takes to crash. Also, it would be much easier for us to help you, if you could share a snippet of your code to reproduce the problem. I'm closing this for now, feel free to reopen it if needed, or just ask questions if any. Thx! |
@kroitor I ran the code from the example and it produced the same results. The starting time-stamp (from the output of the program itself) was Also, There were 100 calls to GDAX from 9:00 to 9:04, about 25 a minute... Their docs say they'll take up to 3 calls per second, so I don't know what is going on. Are there any other tests that it would be helpful for me to run? Or other code that you need to see?
|
Yeah, that's odd, indeed. Seems like their actual rate limits differ from what is in their docs... Or it might be a different layer of DDoS protection, say, from Cloudflare...
Let me do the testing on my side, I'll try to reverse-engineer their rate limit, and I'll get back to you with my results shortly. |
I've been using their API since the summer. Last week or so I started getting "rate limit exceeded" exceptions out of nowhere. I reduced my rate to around 3 request per second, but today even this rate results in exceptions. They have scheduled maintenance for tomorrow (hopefully to address this). |
@paskal91 thank you for the feedback on this! Makes much more sense now. Seemingly, all exchanges are being overloaded. |
I've started getting this rate limit error also. Maybe they reduce the limits without telling anyone? |
If that's the case, they haven't updated their docs. The spec still says 5 requests per second. Currently, even once per second seems unstable... |
Thanks for your reports, guys!
It's the same script, different endpoints. Do you get the same result with the orderbook as with the ticker? To me it looks like their rate limits are endpoint-specific, i'm getting "rate limit exceeded" with the ticker, no errors with the order book. Would be happy to get more feedback from you. |
I enabled the rate limit using this bit of code:
exchange = ccxt.gdax ({ 'enableRateLimit':True, # let ccxt manage the xfer rate })
And then called my async loop like this:
asyncio.get_event_loop().run_until_complete(main(exchange))
Which yielded the following... I don't understand
asyncio
very well, and I'm unsure how to enforce sequential, timed calls to the exchange. I thought enabling the rate limit on the exchange would take care of this?The text was updated successfully, but these errors were encountered: