Ethereum の testnet モードで再度の採掘

技術メモ

前回Ethereumの採掘にテストでも時間かかるなぁと思っていたんですが
testnet
というオプションがあるらしく、これを指定しないと、テストネットワークにならないらしく、このモードをつけてもう1度採掘してみる。

もう1度testnetで採掘

# geth --datadir /root/ethereum/data --networkid 15 --testnet --nodiscover console

アカウント作って

personal.newAccount("testuser1")
INFO [05-01|04:20:21] New wallet appeared                      url=keystore:///root/ethereum/data/… status=Locked
"0x8ff52d8c249feada8e03bd54a10b231a8c68f385"
> eth.accounts
["0x8ff52d8c249feada8e03bd54a10b231a8c68f385"]

アカウントの現在残高確認

> eth.getBalance(eth.coinbase)
0

そして、また掘ってみる!

INFO [05-01|04:24:57] Updated mining threads                   threads=0
null
INFO [05-01|04:24:57] Starting mining operation
INFO [05-01|04:24:57] Commit new mining work                   number=1 txs=0 uncles=0 elapsed=198.062µs
INFO [05-01|04:25:26] Successfully sealed new block            number=1 hash=fc808b…ea0617
INFO [05-01|04:25:26] 🔨 mined potential block                  number=1 hash=fc808b…ea0617
INFO [05-01|04:25:26] Commit new mining work                   number=2 txs=0 uncles=0 elapsed=682.081µs

” mined potential block” と掘れているらしく、残高確認してみる・・・

> eth.getBalance(eth.coinbase)
15000000000000000000

めっちゃ掘れてるじゃん・・・!? とおもったら、

単位はetherではなくWeiという単位。
1ether=10^18 wei
とのこと。
なんで、15etherかな、これだと。ただtestnetだから別にお金に換金できたりとかいうわけではないんだよねぇ。

送金

送金も試してみる。
アカウントをもう1つ作成し

> personal.newAccount("testuser2")
"0xd1228aa52f4e6a620c86c1b8d17c831bc8d61b7b"
> INFO [05-01|04:33:41] New wallet appeared                      url=keystore:///root/ethereum/data/… status=Locked
> eth.accounts
["0x8ff52d8c249feada8e03bd54a10b231a8c68f385", "0xd1228aa52f4e6a620c86c1b8d17c831bc8d61b7b"]

現状の残高確認して

> eth.getBalance(eth.accounts[0])
20000000000000000000
> eth.getBalance(eth.accounts[1])
0

1etherを送る

> eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1, "ether")})
Error: authentication needed: password or unlock
    at web3.js:3104:20
    at web3.js:6191:15
    at web3.js:5004:36
    at :1:1

と思いきや、エラー発生。
ブロックチェーンを体験する 第2回 Ether(通貨)の送金 のページを見てみると

“””
user1の値を送金するのに権限が無い状態で、パスワードを知らない他のユーザーが勝手にuser1のお金を送金させない為の仕組みですね。
“””

と記載がある。はて・・・アカウント作成時にパスワード指定していないのだが・・・

とおもったが、testuser1とか指定していたな。これがパスワードになる。

> personal.unlockAccount(eth.accounts[0], "testuser1")
true

これでロック解除できたので、再度送金すると・・・

> eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1, "ether")})
INFO [05-01|04:44:29] Submitted transaction                    fullhash=0x9faa7d736f88fbb717ff32f04819c42bc48fd997605f13480e1cda815c24947f recipient=0xd1228aa52f4e6a620c86c1b8d17c831bc8d61b7b
"0x9faa7d736f88fbb717ff32f04819c42bc48fd997605f13480e1cda815c24947f"

どうやらううまくいっているようなので、残高紹介すると・・・

> eth.getBalance(eth.accounts[0])
20000000000000000000
> eth.getBalance(eth.accounts[1])
0

変わってないじゃん(涙

とおもったら、トランザクションが未確定なままなので、反映されないと。
じゃぁ、確定させるには?

まず未確定のトランザクション確認

> eth.pendingTransactions
[{
    blockHash: null,
    blockNumber: null,
    from: "0x8ff52d8c249feada8e03bd54a10b231a8c68f385",
    gas: 90000,
    gasPrice: 20000000000,
    hash: "0x9faa7d736f88fbb717ff32f04819c42bc48fd997605f13480e1cda815c24947f",
    input: "0x",
    nonce: 0,
    r: "0x7ffd6e49bb94843ceb93186e0ad61393aab28ce00f603d871081e37da36866e3",
    s: "0x58403eb70b2b8478dc2c98fd2b82a9c888b5215a2c2949be751b1c4aba727dae",
    to: "0xd1228aa52f4e6a620c86c1b8d17c831bc8d61b7b",
    transactionIndex: 0,
    v: "0x1b",
    value: 1000000000000000000
}]

確定されるには新たなブロックができないので、再度採掘して・・・

> miner.start()
INFO [05-01|04:49:43] Updated mining threads                   threads=0
INFO [05-01|04:49:43] Starting mining operation
null
> INFO [05-01|04:49:43] Commit new mining work                   number=5 txs=1 uncles=0 elapsed=3.030ms
INFO [05-01|04:49:49] Successfully sealed new block            number=5 hash=0114fc…dc8bd9
INFO [05-01|04:49:49] 🔨 mined potential block                  number=5 hash=0114fc…dc8bd9
INFO [05-01|04:49:49] Commit new mining work                   number=6 txs=0 uncles=0 elapsed=401.936µs

残高を再度確認すると・・・

> eth.getBalance(eth.accounts[1])
1000000000000000000
# ehterでも確認
> web3.fromWei(eth.getBalance(eth.accounts[1]), "ether")
1

めでたく送金できました!
次は スマートコントラクトあたりにチャレンジしてみよう。

Sponsored Link

ビットコイン(Bitcoin)、イーサリアム(Ethereum)、リップル(Ripple)、ネム(NEM)などの仮想通貨を買うならコインチェックがおすすめです。

※アプリは指値売買ができず手数料が高いので、アプリをダウンロードするのではなくメール&パスワード登録へ!まずは5万円ほど入金して仮想通貨とブロックチェーンの世界を楽しんでください!

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


miningpoolhub
miningpoolhubのAPIを使って自動スイッチングを試してみる in ethOS

* アイキャッチの男性は、Flicker上のライセンスフリーの画像ひっぱってきているだけで、本文とま …

NEM
[memo] NEMを送金しようとするとFAILURE_TIMESTAMP_TOO_FAR_IN_FUTUREが出る

Docker上のコンテナで、NEM-libraryを使ってmosaicの送金を試していたところ FA …

NEM
NEMのテストネットワークで独自通貨を試す

NEMアプリケーションを作る際にテストネットワークでのテスト非常に重要になってきます。 このため今回 …