Ich versuche, einen Vertrag in einem privaten Blockchain-Netzwerk bereitzustellen. In meinem Solidity-Code werden viele Variablen verwendet. Die Bereitstellung gibt mir eine Vertragsadresse, aber wenn ich versuche, den Bytecode abzurufen eth.getCode()
(indem die Vertragsadresse übergeben wird, die aus der Transaktionsquittung generiert wurde), gibt sie 0x
.
Ich habe versucht, das Gaslimit im Solidity-Browser zu erhöhen und den Vertrag erstellt. Der Vertrag wird zwar erstellt, die Funktionen im Code geben jedoch keinen Wert zurück (dh es werden keine Daten in den Block geschrieben). Ich nehme an, das läuft auf das Problem des unzureichenden Gases hinaus. Die Frage ist, wie/wo erhöhe ich das Gas? Warum reicht meine gasEstimate
Abgabe eines angemessenen Kostenvoranschlags nicht aus, um den Vertrag auszuführen?
Falls jemand ein ähnliches Problem hatte und eine Lösung dafür gefunden hat, bitte um Hilfe.
Danke, Jakob
Unten ist das Format angegeben, in dem der Code geschrieben ist. Es werden jedoch viel mehr Get- und Set-Funktionen und 2 weitere Strukturen verwendet. Etwa 20 Variablen in jeder Struktur. Der Code, wenn er in den Solidity-Compiler eingefügt wird, zeigt 20404 Bytes und verbraucht beim Erstellen 4689378 Gasmengen.
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);
}
}
Badr Bellaj
Jacob
Jacob