Как отследить пропущенную транзакцию в приватной тестовой сети?

У меня возникли проблемы с отображением нескольких тестовых транзакций в балансе целевого счета. Код ниже. Ценю, что кто-то указывает на любое мое движение...

Запуск geth как:

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

Сеанс консоли:

> 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

Я хотел видеть 2 эфира на втором аккаунте. (На самом деле 3 эфира, поскольку предыдущая транзакция, похоже, так и не прошла.)

checkAllBalances() это:

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

Переведенные 2 эфира наконец появились после того, как было добыто около 5 блоков. Это ожидаемое поведение?

Но затем я отправил еще 3 эфира, и они намного быстрее отразились на балансе другого счета. Теперь у меня есть 0,5 эфира в ожидании, при этом вывод майнинга распознает 1 txn, но eth.pendingTransactions все еще показывает его в ожидании.

Есть ли частный обозреватель блоков тестовой сети?

Хотел бы способ подключить транзакцию и получить представление о том, что происходит.

Ценю ваши советы, когда я изучаю основы!

Ответы (1)

Да. Это ожидаемое поведение. Транзакции будут подтверждены и включены в блокчейн, когда он будет включен в добытый блок. Для этого потребуется как минимум один добытый блок.

Я не знаю ни одного частного обозревателя тестовой сети.

Способ отслеживания транзакций в консоли Ethereum geth заключается в отслеживании хэша транзакции, отображаемого после выполнения команды eth.sendTransaction(...), после чего вы можете использовать eth.getTransaction(...) для получения сведений о транзакции. В приведенном ниже примере транзакция была получена в блоке 84. До того, как транзакция будет обнаружена, blockHash и blockNumber будут нулевыми.

> 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
}
Понятно. Я ошибочно подумал, что commit new work on block 28это признак майнинга блока. Спасибо!
testnet.etherscan.io для Morden Testnet Explorer
@mtbitcoin спасибо, но мой вопрос был о проводниках для моей собственной локальной тестовой системы.
Я также ищу исследователя для местной частной сети?