Ccxt: Kraken - 403 verbotener Fehler beim Versuch, minimale Bestellungen zu erhalten

Erstellt am 14. Apr. 2020  ·  7Kommentare  ·  Quelle: ccxt/ccxt

Hallo,

Die Kraken-Integration scheint für mich seit diesem Update fehlerhaft zu sein: https://github.com/ccxt/ccxt/commit/89ee033e90c10b500c098ce3ed5a440c39c33dad#diff -5e85c8f10126d08bcbd8c3138002c7c0
Im Commit wurde "fetchMinLimitOrder" auf true gesetzt.
Kraken verfügt jedoch über einen Schutzmechanismus, bei dem Benutzer ein Captcha auf ihrer Website ausfüllen müssen, um auf Seiten zugreifen zu können. Ich denke, wenn dieser Schutz aktiviert ist, kann Kraken keine Märkte laden.

Bitte sagen Sie mir, ob ich falsch denke und ob eine Lösung möglich ist.

Vielen Dank,
Alex

duplicate question

Hilfreichster Kommentar

@alextousss Wie in Mindestbestellgröße für Kraken über die Kraken-Support-Seite abgerufen - https://support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum- Auftragsgröße-.

Der HTML-Code von der Kraken-Support-Seite wird erfasst und die HTML-Tags <td class="wysiwyg-text-align-right"> in ein Array aufgelöst, das zum Ableiten der Mindestbestellmengen verwendet wird.

Meine kurzfristige Lösung (bis Kraken die Mindestbestellgrößen zum REST API AssetPairs-Endpunkt hinzufügt) bestand darin, den HTML-Code direkt für die Funktion fetch_min_order_amounts () in der Datei ccxt / kraken.php bereitzustellen.

Anstelle von $html = $this->zendeskGet205893708WhatIsTheMinimumOrderSize ();

Ich habe die Variable $ html mit dem Text von der Support-Seite mithilfe einer Funktion definiert, die den relevanten Text zurückgibt.

Ich habe einfach die folgende Funktion erstellt, die den relevanten HTML-Code zurückgibt, der von der Kraken-Support-Seite kopiert wurde:

public function Minimum_Order_Size_Hard_Code(){

return '<td><strong>Base currency</strong></td>
<td class="wysiwyg-text-align-right"><strong>Order minimum</strong></td>
</tr>
<tr>
<td>Algorand</td>
<td class="wysiwyg-text-align-right">50 ALGO</td>
</tr>
<tr>
<td>Augur</td>
<td class="wysiwyg-text-align-right">0.3 REP</td>
</tr>
<tr>
<td>Basic Attention Token</td>
<td class="wysiwyg-text-align-right">50 BAT</td>
</tr>
<tr>
<td>Bitcoin</td>
<td class="wysiwyg-text-align-right">0.002 XBT</td>
</tr>
<tr>
<td>Bitcoin Cash</td>
<td class="wysiwyg-text-align-right">0.000002 BCH</td>
</tr>
<tr>
<td>Cardano</td>
<td class="wysiwyg-text-align-right">1 ADA</td>
</tr>
<tr>
<td>Chainlink</td>
<td class="wysiwyg-text-align-right">10 LINK</td>
</tr>
<tr>
<td>Cosmos</td>
<td class="wysiwyg-text-align-right">1 ATOM</td>
</tr>
<tr>
<td>DAI</td>
<td class="wysiwyg-text-align-right">10 DAI</td>
</tr>
<tr>
<td>Dash</td>
<td class="wysiwyg-text-align-right">0.03 DASH</td>
</tr>
<tr>
<td>Dogecoin</td>
<td class="wysiwyg-text-align-right">3000 XDG</td>
</tr>
<tr>
<td>EOS</td>
<td class="wysiwyg-text-align-right">3 EOS</td>
</tr>
<tr>
<td>Ethereum</td>
<td class="wysiwyg-text-align-right">0.02 ETH</td>
</tr>
<tr>
<td>Ethereum Classic</td>
<td class="wysiwyg-text-align-right">0.3 ETC</td>
</tr>
<tr>
<td>Gnosis</td>
<td class="wysiwyg-text-align-right">0.02 GNO</td>
</tr>
<tr>
<td>ICON</td>
<td class="wysiwyg-text-align-right">50 ICX</td>
</tr>
<tr>
<td>Lisk</td>
<td class="wysiwyg-text-align-right">10 LSK</td>
</tr>
<tr>
<td>Litecoin</td>
<td class="wysiwyg-text-align-right">0.1 LTC</td>
</tr>
<tr>
<td>Monero</td>
<td class="wysiwyg-text-align-right">0.1 XMR</td>
</tr>
<tr>
<td>Nano</td>
<td class="wysiwyg-text-align-right">10 NANO</td>
</tr>
<tr>
<td>OmiseGO</td>
<td class="wysiwyg-text-align-right">10 OMG</td>
</tr>
<tr>
<td>PAX Gold</td>
<td class="wysiwyg-text-align-right">0.01 PAXG</td>
</tr>
<tr>
<td>QTUM</td>
<td class="wysiwyg-text-align-right">0.1 QTUM</td>
</tr>
<tr>
<td>Ripple</td>
<td class="wysiwyg-text-align-right">30 XRP</td>
</tr>
<tr>
<td>Siacoin</td>
<td class="wysiwyg-text-align-right">5000 SC</td>
</tr>
<tr>
<td>Stellar Lumens</td>
<td class="wysiwyg-text-align-right">30 XLM</td>
</tr>
<tr>
<td>Tether</td>
<td class="wysiwyg-text-align-right">5 USDT</td>
</tr>
<tr>
<td>Tezos</td>
<td class="wysiwyg-text-align-right">1 XTZ</td>
</tr>
<tr>
<td>Tron</td>
<td class="wysiwyg-text-align-right">500 TRX</td>
</tr>
<tr>
<td>USD Coin</td>
<td class="wysiwyg-text-align-right">5 USDC</td>
</tr>
<tr>
<td>Watermelon</td>
<td class="wysiwyg-text-align-right">0.1 MLN</td>
</tr>
<tr>
<td>Waves</td>
<td class="wysiwyg-text-align-right">10 WAVES</td>
</tr>
<tr>
<td>Zcash</td>
<td class="wysiwyg-text-align-right">0.03 ZEC</td>
</tr>
<tr>
<td>Euro</td>
<td class="wysiwyg-text-align-right">10 EUR</td>
</tr>
<tr>
<td>US Dollar</td>
<td class="wysiwyg-text-align-right">10 USD</td>
</tr>
<tr>
<td>Great British Pound</td>
<td class="wysiwyg-text-align-right">10 GBP</td>
</tr>
</tbody>';
}

und definierte dann die Variable $ html in der Funktion fetch_min_order_amounts () in der Datei ccxt / kraken.php mit einem Aufruf der obigen Funktion:

public function fetch_min_order_amounts() {
$html =  $this->Minimum_Order_Size_Hard_Code();
...

Dieses Update ist natürlich nicht ideal, da die Problemumgehung automatisch verloren geht, wenn ccxt aktualisiert wird, aber es funktioniert. Außerdem stellt dieser Fix keine wesentliche Änderung des Codes dar und kann problemlos zu zukünftigen Updates hinzugefügt werden.

Alle 7 Kommentare

Dies wurde bereits hier berichtet:

Krakens offizielle Antwort:

Wir sind uns des jüngsten Problems bewusst, das CCXT hatte, als eine Sicherheitsänderung an unseren Support-Seiten verhinderte, dass die Mindestbestellgrößen über unsere Support-Seiten abgerufen werden konnten. Unsere REST-API-Entwickler sind dabei, dem REST-API-AssetPairs-Endpunkt die Mindestbestellgrößen hinzuzufügen, um die Mindestbestellgrößen effizienter (und zuverlässiger) verfügbar zu machen. Wir haben noch keinen voraussichtlichen Verfügbarkeitstermin für dieses Update, aber ich werde den Fortschritt verfolgen und Sie informieren, wenn weitere Informationen verfügbar sind.

In der Zwischenzeit können Sie das Problem umgehen, indem Sie die Option fetchMinOrderAmounts auf false .

exchange = ccxt.kraken({
    'enableRateLimit': True,
    'options': {  # ←--------------------- inside 'options' subkey
        'fetchMinOrderAmounts': False,  # ←---------- set to False 
    }
})

Auf diese Weise verlieren Sie effektiv die Informationen über die Mindestgrenzen, aber die anderen Funktionen funktionieren weiterhin.

Lassen Sie mich wissen, wenn dies die Frage nicht beantwortet.

Das Duplikat tut mir leid. Ich habe auf der Registerkarte "Probleme" nur nach "Kraken" gesucht, als Sie mein Problem als "Duplikat" markiert haben (Kraken wurde auf der Titelseite der Probleme nicht erwähnt).

Ja, es bestätigt jedoch alles, was ich dachte. Ich habe mein Produktionssystem repariert, indem ich vor dem von mir erwähnten Commit zur Version zurückgekehrt bin. Auf lange Sicht werde ich fetchMinOrderAmounts deaktivieren

Vielen Dank für Ihre Antwort und Ihr breiteres Engagement in ccxt.
Es ist keine leichte Aufgabe, die APIs von 100 Crypto Exchange zu vereinheitlichen, aber Sie haben es wunderbar gemacht. Hut ab.

@alextousss Danke für das Feedback, schätze es wirklich! Zögern Sie nicht, wenn Sie weitere Fragen haben. Wird Sie auf dem Laufenden halten und Sie wissen lassen, wenn es auf der Seite des Kraken behoben ist.

@alextousss Wie in Mindestbestellgröße für Kraken über die Kraken-Support-Seite abgerufen - https://support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum- Auftragsgröße-.

Der HTML-Code von der Kraken-Support-Seite wird erfasst und die HTML-Tags <td class="wysiwyg-text-align-right"> in ein Array aufgelöst, das zum Ableiten der Mindestbestellmengen verwendet wird.

Meine kurzfristige Lösung (bis Kraken die Mindestbestellgrößen zum REST API AssetPairs-Endpunkt hinzufügt) bestand darin, den HTML-Code direkt für die Funktion fetch_min_order_amounts () in der Datei ccxt / kraken.php bereitzustellen.

Anstelle von $html = $this->zendeskGet205893708WhatIsTheMinimumOrderSize ();

Ich habe die Variable $ html mit dem Text von der Support-Seite mithilfe einer Funktion definiert, die den relevanten Text zurückgibt.

Ich habe einfach die folgende Funktion erstellt, die den relevanten HTML-Code zurückgibt, der von der Kraken-Support-Seite kopiert wurde:

public function Minimum_Order_Size_Hard_Code(){

return '<td><strong>Base currency</strong></td>
<td class="wysiwyg-text-align-right"><strong>Order minimum</strong></td>
</tr>
<tr>
<td>Algorand</td>
<td class="wysiwyg-text-align-right">50 ALGO</td>
</tr>
<tr>
<td>Augur</td>
<td class="wysiwyg-text-align-right">0.3 REP</td>
</tr>
<tr>
<td>Basic Attention Token</td>
<td class="wysiwyg-text-align-right">50 BAT</td>
</tr>
<tr>
<td>Bitcoin</td>
<td class="wysiwyg-text-align-right">0.002 XBT</td>
</tr>
<tr>
<td>Bitcoin Cash</td>
<td class="wysiwyg-text-align-right">0.000002 BCH</td>
</tr>
<tr>
<td>Cardano</td>
<td class="wysiwyg-text-align-right">1 ADA</td>
</tr>
<tr>
<td>Chainlink</td>
<td class="wysiwyg-text-align-right">10 LINK</td>
</tr>
<tr>
<td>Cosmos</td>
<td class="wysiwyg-text-align-right">1 ATOM</td>
</tr>
<tr>
<td>DAI</td>
<td class="wysiwyg-text-align-right">10 DAI</td>
</tr>
<tr>
<td>Dash</td>
<td class="wysiwyg-text-align-right">0.03 DASH</td>
</tr>
<tr>
<td>Dogecoin</td>
<td class="wysiwyg-text-align-right">3000 XDG</td>
</tr>
<tr>
<td>EOS</td>
<td class="wysiwyg-text-align-right">3 EOS</td>
</tr>
<tr>
<td>Ethereum</td>
<td class="wysiwyg-text-align-right">0.02 ETH</td>
</tr>
<tr>
<td>Ethereum Classic</td>
<td class="wysiwyg-text-align-right">0.3 ETC</td>
</tr>
<tr>
<td>Gnosis</td>
<td class="wysiwyg-text-align-right">0.02 GNO</td>
</tr>
<tr>
<td>ICON</td>
<td class="wysiwyg-text-align-right">50 ICX</td>
</tr>
<tr>
<td>Lisk</td>
<td class="wysiwyg-text-align-right">10 LSK</td>
</tr>
<tr>
<td>Litecoin</td>
<td class="wysiwyg-text-align-right">0.1 LTC</td>
</tr>
<tr>
<td>Monero</td>
<td class="wysiwyg-text-align-right">0.1 XMR</td>
</tr>
<tr>
<td>Nano</td>
<td class="wysiwyg-text-align-right">10 NANO</td>
</tr>
<tr>
<td>OmiseGO</td>
<td class="wysiwyg-text-align-right">10 OMG</td>
</tr>
<tr>
<td>PAX Gold</td>
<td class="wysiwyg-text-align-right">0.01 PAXG</td>
</tr>
<tr>
<td>QTUM</td>
<td class="wysiwyg-text-align-right">0.1 QTUM</td>
</tr>
<tr>
<td>Ripple</td>
<td class="wysiwyg-text-align-right">30 XRP</td>
</tr>
<tr>
<td>Siacoin</td>
<td class="wysiwyg-text-align-right">5000 SC</td>
</tr>
<tr>
<td>Stellar Lumens</td>
<td class="wysiwyg-text-align-right">30 XLM</td>
</tr>
<tr>
<td>Tether</td>
<td class="wysiwyg-text-align-right">5 USDT</td>
</tr>
<tr>
<td>Tezos</td>
<td class="wysiwyg-text-align-right">1 XTZ</td>
</tr>
<tr>
<td>Tron</td>
<td class="wysiwyg-text-align-right">500 TRX</td>
</tr>
<tr>
<td>USD Coin</td>
<td class="wysiwyg-text-align-right">5 USDC</td>
</tr>
<tr>
<td>Watermelon</td>
<td class="wysiwyg-text-align-right">0.1 MLN</td>
</tr>
<tr>
<td>Waves</td>
<td class="wysiwyg-text-align-right">10 WAVES</td>
</tr>
<tr>
<td>Zcash</td>
<td class="wysiwyg-text-align-right">0.03 ZEC</td>
</tr>
<tr>
<td>Euro</td>
<td class="wysiwyg-text-align-right">10 EUR</td>
</tr>
<tr>
<td>US Dollar</td>
<td class="wysiwyg-text-align-right">10 USD</td>
</tr>
<tr>
<td>Great British Pound</td>
<td class="wysiwyg-text-align-right">10 GBP</td>
</tr>
</tbody>';
}

und definierte dann die Variable $ html in der Funktion fetch_min_order_amounts () in der Datei ccxt / kraken.php mit einem Aufruf der obigen Funktion:

public function fetch_min_order_amounts() {
$html =  $this->Minimum_Order_Size_Hard_Code();
...

Dieses Update ist natürlich nicht ideal, da die Problemumgehung automatisch verloren geht, wenn ccxt aktualisiert wird, aber es funktioniert. Außerdem stellt dieser Fix keine wesentliche Änderung des Codes dar und kann problemlos zu zukünftigen Updates hinzugefügt werden.

@ mjoh090 Ja, das Hardcodieren der Grenzwerte ist eine der Möglichkeiten, um dieses Problem zu umgehen, wenn Sie diese Informationen wirklich benötigen.

Wäre es aus einer breiteren Perspektive möglich, einen "stabilen Modus" zu haben, der diese Art von Funktion deaktiviert, die nicht auf offiziellen und stabilen APIs beruht? Analysiert ccxt Hilfeseiten für andere Börsen? Dieses Problem war bereits gegen Gebühr vorhanden, wenn ich mich gut erinnere, und verursachte mir große Kopfschmerzen.
Wenn du es baust, werde ich besser schlafen ;-)

@alextousss Ja, im Allgemeinen versuchen wir, alle "inoffiziellen" Endpunkte optional zu machen. Möglicherweise sind jedoch noch einige Macken in den abgeleiteten Börsen vorhanden. Wir werden unser Bestes tun, um alles zu bereinigen. Ich habe es für Kraken (in 1.26.20) ausgeschaltet, daher ist diese Option jetzt standardmäßig false .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen