No se puede crear una instancia de un nuevo contrato del contrato de fábrica en la consola geth en una red privada

Por favor, déjame cómo instalo un nuevo contrato de fábrica en la consola geth. No puedo instanciar desde la consola geth. El createFactory de Factory Contract que se muestra a continuación funcionó perfectamente bien cuando intenté llamarlo desde el navegador Remix en línea. También incrementa el conteo en 1 cada vez que recibe una llamada. Mi Miner está funcionando cuando hago todas estas cosas.

A continuación se muestra el código fuente. Compilo la fuente usando el compilador de solidez del navegador en línea Remix

pragma solidity ^0.4.6;

contract Factory {

    bytes32[] Names;
    address[] newContracts;
    uint public count=0;

    function createContract (bytes32 name) {
        address newContract = new Contract(name);
        count=count+1;
        newContracts.push(newContract);
    } 

    function getName  (uint i) constant returns (address sblcAddress){
        Contract con = Contract(newContracts[i]);
      sblcAddress= address(con);
       return sblcAddress;
    }
}

contract Contract {

    bytes32 public Name;

    function Contract (bytes32 name) {
        Name = name;
    }
}

Después de abrir la consola geth y desbloquear mi cuenta base, implemento el siguiente código.

var browser_contractfactory_sol_factoryContract = web3.eth.contract([{"constant":true,"inputs":[],"name":"count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"}],"name":"createContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getName","outputs":[{"name":"sblcAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]);
var browser_contractfactory_sol_factory = browser_contractfactory_sol_factoryContract.new(
   {
     from: web3.eth.accounts[0], 
     data: '0x60606040526000600255341561001457600080fd5b5b610376806100246000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd146100545780633f811b801461007d5780636b8ff574146100a4575b600080fd5b341561005f57600080fd5b610067610107565b6040518082815260200191505060405180910390f35b341561008857600080fd5b6100a260048080356000191690602001909190505061010d565b005b34156100af57600080fd5b6100c560048080359060200190919050506101b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60025481565b600081610118610205565b808260001916600019168152602001915050604051809103906000f080151561014057600080fd5b9050600160025401600281905550600180548060010182816101629190610214565b916000526020600020900160005b83909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b6000806001838154811015156101c957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508091508191505b50919050565b60405160e58061026683390190565b81548183558181151161023b5781836000526020600020918201910161023a9190610240565b5b505050565b61026291905b8082111561025e576000816000905550600101610246565b5090565b9056006060604052341561000f57600080fd5b6040516020806100e5833981016040528080519060200190919050505b80600081600019169055505b505b609d806100486000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638052474d14603d575b600080fd5b3415604757600080fd5b604d606b565b60405180826000191660001916815260200191505060405180910390f35b600054815600a165627a7a7230582072ea4eb8d6bf397a5e1d641def036a3a3776b2de002fb3d8a696958a36fdb86f0029a165627a7a72305820f96383d7dc97bbb8dcb737fe3cc485d872fa45409d75db689ccda27f6d1448f90029', 
     gas: '1087718887660'
   }, function (e, contract){
    console.log(e, contract);
    if (typeof contract.address !== 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 });

El código anterior crea un nuevo contrato de fábrica en una nueva dirección. Obtengo la dirección donde se crea mi contrato de fábrica. Usando esa dirección, trato de acceder a la función createContract del contrato de fábrica

var factoryCInstance = browser_contractfactory_sol_factoryContract.at('0x...FactoryContractAddress..');


factoryCInstance.createContract(3,{from: web3.eth.accounts[0]});

Después de ejecutar la línea anterior, todo lo que obtengo es el hash de la transacción. Cuando llamo factoryCInstance.count();El conteo que se muestra es 0

@Rob Hitchens, agradecería su ayuda. Mi minero está arriba. Espero un par de minutos antes de llamar a la función count(). Todo funciona bien cuando lo hago a través de remix, pero la función createContract no funciona cuando lo hago en la consola geth.
¿ Puede comprobar el recibo de la transacción que llama createContract? Si la transacción falla, no actualizará las variables de estado.
Este es el recibo de la transacción cuando llamo a createContract { blockHash: "0xe71764eb35304f6a35b58b7b7dee8d94610e929a05ab2bcdc4371c0b2509640a", blockNumber: 3236, contractAddress: null, acumulativeGasUsed: 90000, from: "0x... : "0x000...000", root: "0xf661019257bb8522ad073c82ea244c43f6845e86f2b253388d28f714884cc7c8", to: "0xAccountAddress of Factory Contract", transactionHash: "0x5f64ea44e7e3b7658d8c99a08d5e06b5deb31fa595930aa8f4c6864d45 ce7825", transactionIndex: 0 }
@Ismael El blockhash y los números se muestran en el recibo de la transacción. También al hacer eth.pendingTransactions obtengo [] nada.

Respuestas (1)

Llamar a createContract() con el valor de gas especificado resolvió mi problema

factoryCInstance.createContract(2,{from:eth.accounts[0],gas: 470000});