Wie kann man eine fehlende Transaktion im privaten Testnetz nachverfolgen?

Ich habe Probleme, einige Testtransaktionen im Kontostand des Zielkontos anzuzeigen. Code ist unten. Schätzen Sie jemanden, der darauf hinweist, was für eine Bewegung ich gemacht habe ...

Geth ausführen als:

geth --rpc --networkid=34534 --maxpeers=0 --datadir=~/.ethereum/DevChain/ --mine --minerthreads 1 --genesis development_genesis.json console

Konsolensitzung:

> var receiver = eth.accounts[1];
undefined
> var amount = web3.toWei(1, "ether")
undefined
> var amount = web3.toWei(2, "ether")
undefined
> personal.unlockAccount(eth.accounts[0], “passwd”, 9000)
true
> eth.sendTransaction({from:sender, to:receiver, value: amount})
I0401 19:49:03.928354 eth/api.go:1072] Tx(0x8c3c85c225c76bd558cba37c7336d73aec9825e668da3b241d80119bde3a6d40) to: 0x9a22b931b03768958141afa40d66fa587c7bfd3a
"0x8c3c85c225c76bd558cba37c7336d73aec9825e668da3b241d80119bde3a6d40"
> eth.pendingTransactions
[{
    blockHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
    blockNumber: null,
    from: "0x87fa50f10eda0ee47376427d4623deae9577c048",
    gas: "0x15f90",
    gasPrice: "0x4a817c800",
    hash: "0x8c3c85c225c76bd558cba37c7336d73aec9825e668da3b241d80119bde3a6d40",
    input: "0x",
    nonce: "0x0",
    to: "0x9a22b931b03768958141afa40d66fa587c7bfd3a",
    transactionIndex: null,
    value: "0x1bc16d674ec80000"
}]
> 
> miner.start(1)
I0401 19:49:13.013921 miner/miner.go:119] Starting mining operation (CPU=1 TOT=2)
true
> I0401 19:49:13.044968 miner/worker.go:564] commit new work on block 28 with 1 txs & 0 uncles. Took 31.004161ms
> checkAllBalances()
  eth.accounts[0]: 0x87fa50f10eda0ee47376427d4623deae9577c048   balance: 135 ether
  eth.accounts[1]: 0x9a22b931b03768958141afa40d66fa587c7bfd3a   balance: 0 ether

Ich wollte 2 Ether in diesem zweiten Konto sehen. (Eigentlich 3 Ether, da eine vorherige Transaktion auch nie durchgegangen zu sein scheint.)

checkAllBalances() ist:

function checkAllBalances() { 
var i =0; 
eth.accounts.forEach( function(e){
     console.log("  eth.accounts["+i+"]: " +  e + " \tbalance: " + web3.fromWei(eth.getBalance(e), "ether") + " ether"); 
i++; 
})
};

Die übertragenen 2 Ether tauchten erst endlich auf, nachdem etwa 5 Blöcke abgebaut wurden. Ist das erwartetes Verhalten?

Aber dann habe ich weitere 3 Ether geschickt und es wurde viel schneller auf dem anderen Kontostand angezeigt. Jetzt habe ich 0,5 Ether ausstehend, wobei die Mining-Ausgabe 1 txn erkennt, aber eth.pendingTransactions zeigt es immer noch ausstehend an.

Gibt es einen privaten Testnet-Block-Explorer?

Würde gerne eine Möglichkeit haben, eine Transaktion einzufügen und sich ein Bild davon zu machen, was passiert.

Schätze deine Tipps, während ich die Grundlagen lerne!

Antworten (1)

Ja. Dies ist ein erwartetes Verhalten. Transaktionen werden bestätigt und in die Blockchain aufgenommen, wenn sie in einen abgebauten Block aufgenommen werden. Dies erfordert mindestens einen abgebauten Block.

Ich kenne keinen privaten Testnet-Explorer.

Die Art und Weise, wie Sie Transaktionen in der Ethereum-Geth-Konsole verfolgen, besteht darin, den Transaktions-Hash zu verfolgen, der nach Ausführung des Befehls eth.sendTransaction(...) angezeigt wird, dann können Sie eth.getTransaction(...) verwenden, um die Transaktionsdetails abzurufen. Im folgenden Beispiel wurde die Transaktion in Block 84 abgebaut. Bevor die Transaktion abgebaut wird, sind blockHash und blockNumber null.

> eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], web3.toWei(2, "ether")})
"0xe548890adc667af1f0b9694ddd9da75dd85d17d6ffcaef62aedb63389ac2da9b"
> eth.getTransaction("0xe548890adc667af1f0b9694ddd9da75dd85d17d6ffcaef62aedb63389ac2da9b")
{
  blockHash: null,
  blockNumber: null,
  from: "0x1111903a542ef1ff952eab096eab0517a7d4eeee",
  gas: 90000,
  gasPrice: 20000000000,
  hash: "0xe548890adc667af1f0b9694ddd9da75dd85d17d6ffcaef62aedb63389ac2da9b",
  input: "0x",
  nonce: 0,
  to: "0x22222a45dce56b6804bbf6a2dc8fae045511ffff",
  transactionIndex: null,
  value: 1000000000000000000
}
... transaction mined ...
> eth.getTransaction("0xe548890adc667af1f0b9694ddd9da75dd85d17d6ffcaef62aedb63389ac2da9b")
{
  blockHash: "0xc74d2b08c28b801344006e477fe99cdc7cd6f3936a4223135eec7b42a04bf999",
  blockNumber: 84,
  from: "0x1111903a542ef1ff952eab096eab0517a7d4eeee",
  gas: 90000,
  gasPrice: 20000000000,
  hash: "0xe548890adc667af1f0b9694ddd9da75dd85d17d6ffcaef62aedb63389ac2da9b",
  input: "0x",
  nonce: 0,
  to: "0x22222a45dce56b6804bbf6a2dc8fae045511ffff",
  transactionIndex: 0,
  value: 1000000000000000000
}
Ich habs. Ich dachte fälschlicherweise, das commit new work on block 28sei ein Zeichen dafür, dass ein Block abgebaut wird. Vielen Dank!
testnet.etherscan.io für den Morden Testnet Explorer
@mtbitcoin danke, aber meine Frage bezog sich auf Entdecker für einen eigenen Testrahmen für lokale Entwickler.
Ich suche auch einen Entdecker für eine lokale Privatkette?