Ich habe einen Geth-Client mit dem folgenden Client gestartet (ich hatte bereits zwei Konten erstellt.:
geth --datadir datadir --networkid 123 --rpc --rpcaddr="localhost" --rpccorsdomain="*" --unlock <my account> --minerthreads="1" --maxpeers=0 --mine console
Ich öffnete die Ethereum-Brieftasche und setzte den Smart Contract von dort aus ein. Die TransactionId und die Vertragsadresse werden auf meiner Geth-Konsole empfangen.
Dann habe ich meine Dapp gestartet und die Instanzen des Vertrags erstellt, und ich rufe den Vertrag auf, indem ich eine Vertragsfunktion über die Web3-API aufrufe. Die Vertragsfunktion wird aufgerufen, aber die Transaktion wird nicht im Block übermittelt, es sei denn, ich beginne mit dem Mining. Daher habe ich miner.start() gestartet. Dies hat begonnen, zahlreiche Blöcke abzubauen.
Meine Frage ist, woher kommen diese Blöcke, wenn ich mein eigenes privates Netz habe und nur eine Transaktion eingereicht habe. Dadurch werden zu viele Blöcke hinzugefügt und meine Blockgröße erhöht sich unnötig. Wie schürfe ich nur die Transaktion, die ich eingereicht habe?
Diese Blöcke werden von Ihrem Kunden abgebaut, indem miner.start()
die Blöcke abgebaut werden, bis Ihre Transaktion in einen dieser Blöcke aufgenommen wurde. Um das Vorgangsband zu stoppen, miner.stop()
gab Ihnen nicht einmal das Protokoll die Aufforderung. Das Beste ist jedoch die Verwendung eines Skripts, das nur die ausstehenden Transaktionen abbaut (Sie abbauen nur wenige Blöcke, bis Ihre Transaktion geschürft wurde).
ein solches Skript wird enthalten
var mining_threads = 1
function checkWork() {
if (eth.getBlock("pending").transactions.length > 0) {
if (eth.mining) return;
console.log("== Pending transactions! Mining...");
miner.start(mining_threads);
} else {
miner.stop();
console.log("== No transactions! Mining stopped.");
}
}
console.log("checkWork() is defined");
eth.filter("latest", function(err, block) { checkWork(); });
eth.filter("pending", function(err, block) { checkWork(); });
checkWork();
auf geth verwenden
loadScript("C:/Users/Tera_pc/Desktop/demo/mine_pending.js")
Lakshmi
Lakshmi
Badr Bellaj