【问题标题】:Web3 Batch RequestsWeb3 批量请求
【发布时间】:2020-03-04 06:27:55
【问题描述】:

web3 中关于批处理请求的文档非常薄。我正在尝试一次获取许多块的信息。批处理请求会减少对 web3 端点的调用次数,还是只是将相同号码的调用排队?

【问题讨论】:

标签: ethereum web3 web3js


【解决方案1】:

是的,它减少了对 web3 端点的调用次数。每批只调用一次。

这里是BatchRequest的部分源码:

RequestManager.prototype.sendBatch = function (data, callback) {
    if (!this.provider) {
        return callback(errors.InvalidProvider());
    }

    var payload = Jsonrpc.toBatchPayload(data);
    this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](payload, function (err, results) {
        if (err) {
            return callback(err);
        }

        if (!_.isArray(results)) {
            return callback(errors.InvalidResponse(results));
        }

        callback(null, results);
    });
};

【讨论】:

  • 你好。您确定 BatchRequests 会减少调用次数吗?当我根据此文档web3js.readthedocs.io/en/v1.3.0/web3-eth.html#id9 执行批处理请求时,我会为批处理中的每个请求注册一个呼叫。批处理中大约有 9000 个请求。是否发生了变化,还是有其他方法可以减少对端点的调用次数?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-19
  • 2019-03-13
相关资源
最近更新 更多