gpt4 book ai didi

rest - 错误 : Nonce is too small - Bitfinex api

转载 作者:行者123 更新时间:2023-12-02 07:20:47 27 4
gpt4 key购买 nike

我尝试使用 bitfinex 库 ( https://www.npmjs.com/package/bitfinex ) 从 Bitfinex 调用 rest API。当使用相同的 API key 同时运行超过 1 个进程时,文档会警告此错误。但是,我相信我一次只运行一个进程,即使我生成了新的 API key ,错误仍然会发生。我正在考虑覆盖随机数或扩展它,但我不知道该怎么做。我已经尝试了互联网上的一些建议,但仍然没有任何效果。

下面是我的引用代码:

import Bitfinex = require('bitfinex');
import pollingtoevent = require('polling-to-event');
import { Logger, LoggerFactory } from '../../common';
import { AppDataServices } from '../../data';

export class BitfinexPoller {
private static readonly LOGGER: Logger = LoggerFactory.getLogger();
private bitfinex: any = undefined;
private emitter: any = undefined;
private public_key: string = '<my-public-key>';
private secret_key: string = '<my-secret-key>';
private nonce: any = new Date().getTime();

constructor(private appServices: AppDataServices) {
BitfinexPoller.LOGGER.info('Bitfinex poller init');

this.bitfinex = new Bitfinex(this.public_key, this.secret_key, this.nonce);

// Lend book service
this.emitter = pollingtoevent((done: any) => {
this.bitfinex.lendbook('USD', (err: any, res: any, orderId: any) => {
done(err, res);
});
}, { interval: 30000, eventName: 'bitfinex-lending' });

this.emitter.on('bitfinex-lending', (data: any) => {
BitfinexPoller.LOGGER.info(data);
if (data.bids !== undefined) {
for (const row of data.bids) {
appServices.lendbookService.insert(BitfinexPoller.lendingData('BID', row));
}
}
if (data.asks !== undefined) {
for (const row of data.asks) {
appServices.lendbookService.insert(BitfinexPoller.lendingData('ASK', row));
}
}
});

// Order book service
this.emitter = pollingtoevent((done: any) => {
this.bitfinex.orderbook('btcusd', (err: any, res: any, orderId: any) => {
done(err, res);
});
}, { interval: 30000, eventName: 'bitfinex-order' });

this.emitter.on('bitfinex-order', (data: any) => {
BitfinexPoller.LOGGER.info(data);
if (data.bids !== undefined) {
for (const row of data.bids) {
appServices.lendbookService.insert(BitfinexPoller.orderData('BID', row));
}
}
if (data.asks !== undefined) {
for (const row of data.asks) {
appServices.lendbookService.insert(BitfinexPoller.orderData('ASK', row));
}
}
});
}
}

最佳答案

您很可能会快速连续发出两个经过身份验证的调用。您发送请求的顺序并不总是与它们被处理的顺序相同,因此具有更高 nonce 的第二个请求首先被处理,导致第一个请求失败。

您可以为不同的请求创建和使用多个 API key ,或者拥有一个循环使用的池,这样您就不会快速连续多次使用相同的 API key 。

关于rest - 错误 : Nonce is too small - Bitfinex api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580224/

27 4 0