Контракт отправляется и получает адрес, но eth.getCode возвращает 0x

Я пытаюсь развернуть контракт в частной сети блокчейнов. В моем коде Solidity используется много переменных. Развертывание действительно дает мне адрес контракта, однако при попытке получить байт-код из eth.getCode()(путем передачи адреса контракта, который был сгенерирован из квитанции транзакции), он возвращает 0x.

Я попытался увеличить лимит газа в браузере солидности и создал контракт. Контракт создается, однако функции в коде не возвращают никакого значения (т. е. не записывают данные в блок). Я предполагаю, что это сводится к проблеме нехватки газа. Вопрос в том, как/где увеличить газ? Почему моей gasEstimateправильной оценки недостаточно для выполнения контракта?

Если у кого-то была похожая проблема и он нашел решение, помогите.

Спасибо, Джейкоб


Ниже приведен формат, в котором написан код. Однако в нем гораздо больше функций получения и установки и используются еще 2 структуры. Около 20 переменных в каждой структуре. Код при вводе в компилятор Solidity показывает 20404 байта, а при создании использует 4689378 количества газа.

Скриншот компилятора 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);
    }

    }
пожалуйста, поделитесь своим кодом, если контракт развернут в тестовой сети или основной сети, поделитесь ссылкой
Отредактировали мой вопрос с образцом кода.
Есть ли способ увеличить лимит блочного газа в частной сети блокчейн?

Ответы (1)

Если вы используете кошелек ethereum, вы можете увеличить газ в окне, которое открывается при нажатии кнопки «Развернуть». Если вы нажмете на синий подчеркнутый текст, вы можете ввести его

Ползунок изменяет цену газа, а не количество газа