¿Cómo rastrear una transacción faltante en una red de prueba privada?

Tengo problemas para que aparezcan un par de transacciones de prueba en el saldo de la cuenta de destino. El código está debajo. Agradezco a alguien que señale cualquier movimiento que haya hecho...

Ejecutando geth como:

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

Sesión de consola:

> 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

Quería ver 2 ether en esa segunda cuenta. (En realidad, 3 ether ya que una transacción anterior tampoco parece haberse realizado).

comprobarTodosLosSaldos() es:

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++; 
})
};

El éter 2 transferido finalmente apareció, después de que se extrajeron aproximadamente 5 bloques. ¿Es ese el comportamiento esperado?

Pero luego envié otros 3 ether y se mostró en el saldo de otra cuenta mucho más rápido. Ahora tengo 0.5 ether pendientes, con la salida de minería reconociendo 1 txn pero eth.pendingTransactions todavía lo muestra como pendiente.

¿Hay un explorador de bloques de testnet privado?

Me encantaría una forma de conectar una transacción y obtener una imagen de lo que está sucediendo.

¡Aprecio tus consejos mientras aprendo lo básico!

Respuestas (1)

Sí. Este es un comportamiento esperado. Las transacciones se confirmarán e incluirán en la cadena de bloques cuando se incluyan en un bloque extraído. Esto tomará al menos un bloque minado.

No conozco ningún explorador privado de testnet.

La forma en que realiza un seguimiento de las transacciones en la consola geth de Ethereum es realizar un seguimiento del hash de la transacción que se muestra después de ejecutar el comando eth.sendTransaction(...), luego puede usar eth.getTransaction(...) para recuperar los detalles de la transacción. En el siguiente ejemplo, la transacción se extrajo en el bloque 84. Antes de que se extraiga la transacción, blockHash y blockNumber serán nulos.

> 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
}
Entiendo. Erróneamente pensé que commit new work on block 28era una señal de que se estaba extrayendo un bloque. ¡Gracias!
testnet.etherscan.io para Morden Testnet Explorer
@mtbitcoin gracias, pero mi pregunta era sobre exploradores para un arnés de prueba de desarrollo local propio.
¿También estoy buscando un explorador para la cadena privada local?