El contrato se implementó con éxito en Ganache a través de Truffle, no se implementa en la red en vivo

Básicamente seguí este tutorial de crowdsale de Zeppelin , solo cambié los nombres de los contratos. Pude implementar con éxito en un Ganache local, pero luego, cuando intento implementar en la red Ethereum en vivo, falla invalid address, aparentemente generado por la migración 1_initial_migration.js, que se ve así:

var Migrations = artifacts.require("./Migrations.sol");

module.exports = function(deployer) {
  deployer.deploy(Migrations);
};

y Migraciones.sol se ve así:

pragma solidity ^0.4.17;

contract Migrations {
  address public owner;
  uint public last_completed_migration;

  modifier restricted() {
    if (msg.sender == owner) _;
  }

  function Migrations() public {
    owner = msg.sender;
  }

  function setCompleted(uint completed) public restricted {
    last_completed_migration = completed;
  }

  function upgrade(address new_address) public restricted {
    Migrations upgraded = Migrations(new_address);
    upgraded.setCompleted(last_completed_migration);
  }
}

Aquí hay una captura de pantalla de la terminal donde truffle migrationfalla:

ingrese la descripción de la imagen aquí

¿Cómo es posible que pueda implementar en Ganache pero no en la red en vivo? ¿Estoy haciendo algo mal? ¿Alguna sugerencia?

aparentemente estoy ejecutando geth con --lightmodificador. puede ser esta la razon?
esa puede ser la razón, consulte: ethereum.stackexchange.com/questions/41028/…
¿Se puede implementar en una red de prueba, por ejemplo, Ropsten? De todos modos, siempre debe implementar primero en una red de prueba antes de vivir.

Respuestas (1)

Me había enfrentado a un problema similar. Puedo resolverlo después de eliminar los archivos JSON de /build/contracts. Luego traté de volver a implementar el contrato y se hizo con éxito.