El contrato se envía y obtiene una dirección, pero eth.getCode devuelve 0x

Estoy tratando de implementar un contrato en una red blockchain privada. Mi código de solidez tiene muchas variables utilizadas. La implementación me da una dirección de contrato, sin embargo, cuando intento recuperar el código de bytes eth.getCode()(pasando la dirección de contrato que se generó a partir del recibo de la transacción), devuelve 0x.

Intenté aumentar el límite de gas en el navegador de solidez y creé el contrato. El contrato se crea, sin embargo, las funciones en el código no devuelven ningún valor (es decir, no está escribiendo ningún dato en el bloque). Supongo que esto se reduce al problema del gas insuficiente. La pregunta es, ¿cómo/dónde aumento el gas? ¿Por qué no es gasEstimatesuficiente dar una estimación adecuada para ejecutar el contrato?

si alguien tuvo un problema similar y encontró una solución para esto, por favor ayuda.

gracias, jacob


A continuación se muestra el formato en el que se escribe el código. Sin embargo, tiene muchas más funciones get y set y se utilizan 2 estructuras más. Alrededor de 20 variables en cada estructura. El código cuando se coloca en el compilador solidity muestra 20404 bytes y cuando se crea usa 4689378 cantidad de gas.

Captura de pantalla del compilador Solidity

 pragma solidity ^0.4.0;
contract ABC{
        uint i;
        uint rowCount = 0;
        User userObj;

 function ABC() {}
        struct User{ 
            uint rowCount;
            string id; 
            string ABCData;
            string DEFData;
            ......
            ......
            ......
            around 20 variables.
    }

     mapping(uint => User) ABClist; 
    function setABCData(string uid,string ABCData,string DEFData,........) { 

        rowCount = rowCount + 1;
        ABClist[rowCount].rowCount = rowCount;
        ABClist[rowCount].id = uid;
        ABClist[rowCount].ABCData = ABCData;
        ABClist[rowCount].DEFData = DEFData;
        ...........
        ...........
        ...........
        ...........

    }



        function getABCData(string uid) constant returns ( string _id, string _ABCData, string _DEFData, ........)
    {
        uint rowNumber;
        for(i = 0; i <=rowCount; i++){
            if(stringsEqual(ABClist[i].id, uid) || stringsEqual(ABClist[i].ABCData, uid) || stringsEqual(ABClist[i].DEFData, uid)){
                userObj.id = ABClist[i].id;
                userObj.ABCData = ABClist[i].ABCData;
                userObj.DEFData = ABClist[i].DEFData;
                rowNumber = i;
            }
        }
        return (userObj.id, userObj.ABCData, userObj.DEFData, rowNumber);
    }

    }
comparta su código, si el contrato se implementa en la red de prueba o en la red principal, comparta su enlace
He editado mi pregunta con el ejemplo de código.
¿Hay alguna manera de aumentar el límite de Block Gas en una red blockchain privada?

Respuestas (1)

Si usa la billetera ethereum, puede aumentar el gas en la ventana que se abre cuando presiona desplegar. Si hace clic en el texto azul subrayado, puede escribirlo

El control deslizante cambia el precio del gas, no la cantidad de gas