Función de llamada en un contrato desde otro contrato en blockchain privado por Geth

Tengo un problema con el desarrollo de contratos inteligentes utilizando la solidez de Remix en una cadena de bloques privada de Geth. Tengo dos contratos inteligentes, como el contrato de fábrica y el contrato de contrato.

Creo el contrato de fábrica y luego llamo a las funciones createContract y getContract, funciona normalmente pero cuando llamo a la función getNum no puedo obtener el número.

Ejecuto este código en Remix solidity por JavaScript VM y Test network por Ganache o TestRPC funcionan bien, pero cuando lo uso con Private blockchain usando Geth tiene este problema

Aquí está mi código.

contract Factory {
  address[] newContracts;

  function createContract(uint num) {
    address newContract = new Contract(num);
    newContracts.push(newContract);
  }

  function getContract() view public returns(address[]) {
    return newContracts;
  }

  function getNum(address _add) view public returns(uint) {
    return Contract(_add).getNum();
  }
}


contract Contract {
  uint public Num;

  function Contract(uint num) {
    Num = num;
  }

  function getNum() public returns(uint) {
    return Num;
  }
}

la imagen del problema del contrato inteligente

Respuestas (1)

En Contractagregar modificador de vista agetNum

function getNum() public view returns(uint) {
    return Num;
}

Sus llamadas funcionaron en ganache/testrpc/remix porque el EVM de prueba es de naturaleza síncrona. Es decir, podrá obtener valores de retorno de las transacciones, ya sendTransactionque las llamadas se ejecutan al instante.

ingrese la descripción de la imagen aquí

¡Agregué el modificador de vista a getNum en Contract pero todavía funciona con el mismo problema!
si ! Pongo la dirección entre comillas dobles.
Usé la solidez del remix con blockchain privado usando Geth no con JavaScript VM
Lo siento... Safari restableció mi conexión a la VM de JavaScript debido a http/https. De todos modos, funciona con Web3 Provider y geth node con Clique PoA. Todo está bien (ver captura de pantalla actualizada).
Creo que tal vez tengo problemas para configurar una cadena de bloques privada por parte de Geth. entonces, ¿sabe de qué manera configurar correctamente la cadena de bloques privada de Geth?
hackernoon.com/… — consulte esta publicación si tiene problemas para configurar una red PoA Clique.
ahora funciona bien y es fácil de usar que antes