Node.js 将bitcore资源管理器与bitcore库(bitcore)一起使用时出错

Node.js 将bitcore资源管理器与bitcore库(bitcore)一起使用时出错,node.js,bitcoin,blockchain,bitcore,bitpay,Node.js,Bitcoin,Blockchain,Bitcore,Bitpay,我正在尝试使用比特币库生成比特币地址,并使用比特币资源管理器获取未使用的交易。。 生成地址的代码如下: var bitcore = require('bitcore-lib'); var rand_buffer = bitcore.crypto.Random.getRandomBuffer(32); var rand_number = bitcore.crypto.BN.fromBuffer(rand_buffer); var privateKay = new bitcore.PrivateKe

我正在尝试使用比特币库生成比特币地址,并使用比特币资源管理器获取未使用的交易。。 生成地址的代码如下:

var bitcore = require('bitcore-lib');
var rand_buffer = bitcore.crypto.Random.getRandomBuffer(32);
var rand_number = bitcore.crypto.BN.fromBuffer(rand_buffer);
var privateKay = new bitcore.PrivateKey(rand_number);
var privateKeyWif = privateKay.toWIF();
var address = privateKay.toAddress('testnet');
console.log({
  rand_buffer:rand_buffer,
  rand_number_hex:rand_number,
  rand_number_dec:rand_number.toString(),
  privateKey:privateKay,
  privateKeyWif: privateKeyWif,
  address:address,
});
这很好用。。。输出为:

{ rand_buffer: <Buffer 55 8b 27 c4 51 87 97 17 9a 7d 1d 72 48 26 e5 83 95 74 5b 3b b1 b4 b5 b6 a7 1c df 9f 18 e6 97 2e>,
  rand_number_hex: <BN: 558b27c4518797179a7d1d724826e58395745b3bb1b4b5b6a71cdf9f18e6972e>,
  rand_number_dec: '38692458332424984226826540178179935156087120588336482991409403810055901845294',
  privateKey: <PrivateKey: 558b27c4518797179a7d1d724826e58395745b3bb1b4b5b6a71cdf9f18e6972e, network: livenet>,
  privateKeyWif: 'Kz5zkBwfiYNkyswsKjot4wWmxHWUZdVMmxf65Z5wLk29ufhxnnQT',
  address: <Address: msTDjA4PmyePSWx2VcaQWoWoQ7gWzU2Kqx, type: pubkeyhash, network: testnet> }
问题是,当我需要bitcore Explorer时,它会给我以下错误:

D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\node_modules\bitcore-lib\index.js:12
    throw new Error(message);
    ^

Error: More than one instance of bitcore-lib found. Please make sure to require bitcore-lib and check that submodules do not
also include their own bitcore-lib dependency.
    at Object.bitcore.versionGuard (D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\node_modules\bitcore-lib\index.
js:12:11)
    at Object.<anonymous> (D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\node_modules\bitcore-lib\index.js:15:9)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\lib\models\addressinfo.js:3:15)
D:\RAHEEL\Projects\gateway\node\u modules\bitcore explorers\node\u modules\bitcore lib\index.js:12
抛出新错误(消息);
^
错误:找到多个bitcore库实例。请确保需要bitcore库,并检查子模块是否不需要
还包括他们自己的bitcore库依赖项。
位于Object.bitcore.versionGuard(D:\RAHEEL\Projects\gateway\node\u modules\bitcore explorers\node\u modules\bitcore lib\index)。
js:12:11)
反对。(D:\RAHEEL\Projects\gateway\node\u modules\bitcore explorers\node\u modules\bitcore lib\index.js:15:9)
在模块处编译(Module.js:570:32)
在Object.Module.\u extensions..js(Module.js:579:10)
在Module.load(Module.js:487:32)
在tryModuleLoad时(module.js:446:12)
在Function.Module.\u加载(Module.js:438:3)
at Module.require(Module.js:497:17)
根据需要(内部/module.js:20:19)
反对。(D:\RAHEEL\Projects\gateway\node\u modules\bitcore explorers\lib\models\addressinfo.js:3:15)

这里有一个临时解决方案

~/bitcore explorers/node\u modules/bitcore lib/index.js

第7行:

bitcore.versionGuard = function(version) {
将其更改为:

bitcore.versionGuard = function(version) { return;

但是,对于当前尚未修复的主分支,应修复此问题。您可以检查这一点

是的,在这个时候,这似乎仍在进行中(并且有争议)。 它在中国被多次提出

我遇到了相同的问题,尽管要求略有不同:我使用的是
bitocore-p2p
npm包;当前版本为1.1.2,需要
bitcore lib
0.14.0版作为依赖项

我宁愿不修补
bitcore-p2p/node_modules/bitcore lib/index.js
(根据此处和github bitcore问题中的另一个答案)。相反,在我的项目的
package.json
中,我维护一个
bitocore-p2p
依赖项,然后引用其(唯一的)v0.14.0
bitcore-lib
依赖项:

var p2p     = require('bitcore-p2p');                           //p2p exports
var p2pMod  = require.cache[require.resolve('bitcore-p2p')];    //p2p module
var bitcore = p2pMod.require('bitcore-lib');                    //p2p/bitcore-lib exports
或者可以使用更脆弱的方法:

var p2p     = require('bitcore-p2p');                           //p2p exports    
var bitcore = require('bitcore-p2p/node_modules/bitcore-lib');  //p2p/bitcore-lib exports

就我而言,这没有问题。但是很明显,如果我需要0.16.0版本的bitcore lib,我通常希望将其作为我的项目的直接依赖项,然后遇到麻烦。

我通过使用


var bitcore=require('bitcore-explorers/node_modules/bitcore lib');

因此,它现在不会产生任何错误

var p2p     = require('bitcore-p2p');                           //p2p exports    
var bitcore = require('bitcore-p2p/node_modules/bitcore-lib');  //p2p/bitcore-lib exports