Я сталкиваюсь с той же проблемой, предложенной этим вопросом . Я не могу решить эту проблему, потому что использую удаленного поставщика (INFURA), согласно этому документу .
Мой код выглядит так:
var ethwallet = require('ethereumjs-wallet');
var ProviderEngine = require("web3-provider-engine");
var WalletSubprovider = require('web3-provider-engine/subproviders/wallet.js');
var Web3Subprovider = require("web3-provider-engine/subproviders/web3.js");
var Web3 = require("web3");
// Import the raw private key of the admin
const keys = require('../test/keystores/keys.json');
const admin_key = keys.admin.privateKey;
const admin_addr = keys.admin.address;
// Add the admin key to the provider. This will unlock the account so it can
// deploy the contracts and run the tests.
var wallet = ethwallet.fromPrivateKey(Buffer.from(admin_key, 'hex'));
var engine = new ProviderEngine();
// Start the infuranet provider
var infuranet = "https://infuranet.infura.io";
var engine = new ProviderEngine();
engine.addProvider(new WalletSubprovider(wallet, {}));
engine.addProvider(new Web3Subprovider(new
Web3.providers.HttpProvider(infuranet)));
engine.start();
module.exports = {
networks: {
infura: {
network_id: 5810,
provider: engine,
from: admin_addr
},
development: {
host: "localhost",
port: 8545,
network_id: "*"
}
}
};
И я бегу:
truffle migrate --network infura
Который висит на неопределенный срок. Это также происходит, если я запускаю:
truffle compile --network infura
Или любое другое трюфельное действие.
Можно ли запустить это без локального узла? Я хотел бы развернуть их в этой сети с помощью удаленного провайдера INFURA.
Ответом на эту проблему должно стать добавление еще двух строк, которые вы можете найти в последнем ответе здесь .
Исмаэль
infuranet.infura.io
try с URL-адресом, полученным при регистрации в службе infura.