アプリケーション開発ポータルサイト
ServerNote.NET
ServerNote.NET厳選キャンペーン・クーポンはこちら!
カテゴリー【仮想通貨UbuntuDebian
Ubuntu Server 21.10でイーサリアムブロックチェーン【その3】
POSTED BY
2022-03-25

Ubuntu Server 21.10でイーサリアムブロックチェーン【その1】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その2】

続きです。では前回採掘で得たイーサリアムを、2番目のアカウントに送金してみます。

web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")
4502

4502ETHも貯まっている…ので、1000ETHほどアカウント2(eth.accounts[1])に送ってみましょう。

web3.fromWei(eth.getBalance(eth.accounts[1]),"ether")
0

アカウント2の残高はゼロです。

1、送金元アカウントのアンロック

送金等の操作をするには、アカウントのロックを解除する必要があります。送金元のaccounts[0]のロックを外します。

personal.unlockAccount(eth.accounts[0])
Unlock account 0x36d9643d7fdb4ed786293133cf9bc721509660b5
Passphrase:
true

2、送金トランザクションの発行

それではアカウント2に1000ETH送金します。

eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1000, "ether")})
"0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383"

eth.getTransaction("0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383")
{
  blockHash: null,
  blockNumber: null,
  from: "0x36d9643d7fdb4ed786293133cf9bc721509660b5",
  gas: 21000,
  gasPrice: 1000000000,
  hash: "0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383",
  input: "0x",
  nonce: 2,
  r: "0x6e7036be4e9bdf681a73e0fdf45811b7e844092e1c47847d82e267095c5164e8",
  s: "0x114fbb3f833ef0446b62dcf18c96cd5dcf3fdfc760d057d485665eda592a63d8",
  to: "0x1a8355a4ae7465f7bf867a1a0ea88932b1c19891",
  transactionIndex: null,
  type: "0x0",
  v: "0x42",
  value: 1e+21
}

トランザクションIDが発行され、getTransactionで内容が見れるようになっています。また、geth_err.logにも発行ログが出ています。

tail /home/hogeuser/eth_test/geth_err.log

INFO [03-22|14:46:33.044] Submitted transaction                    hash=0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383 from=0x36D9643D7fDb4ED786293133CF9bc721509660B5 nonce=2 recipient=0x1a8355A4ae7465f7Bf867a1A0ea88932b1c19891 value=1,000,000,000,000,000,000,000

3、送金トランザクションの実行

このままでは何もされず、送金もされません。トランザクションはマイニング(採掘)の一環として処理されるので、マイニングを開始してやる必要があります。
※マイニングにはPCの大量の電力を消費します。自己責任注意※

miner.start()

するとログにはトランザクションを処理したと思われるログが出ました。

tail /home/hogeuser/eth_test/geth_err.log

INFO [03-22|14:52:56.400] Updated mining threads                   threads=4
INFO [03-22|14:52:56.400] Transaction pool price threshold updated price=1,000,000,000
INFO [03-22|14:52:56.401] Commit new sealing work                  number=2252 sealhash=7f58fb..55a0f3 uncles=0 txs=0 gas=0 fees=0 elapsed="224.647μs"
INFO [03-22|14:52:56.401] Commit new sealing work                  number=2252 sealhash=e14ee4..3680d1 uncles=0 txs=1 gas=21000 fees=2.1e-05 elapsed="708.784μs"

マイニングを終了して確認してみましょう。

miner.stop()

web3.fromWei(eth.getBalance(eth.accounts[1]),"ether")
1000

web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")
3544

eth.getTransaction("0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383")
{
  blockHash: "0x45e9a0a8825c469af690789ac9e56a9943a37111c043b201a4cb389f3dc263c1",
  blockNumber: 2252,
  from: "0x36d9643d7fdb4ed786293133cf9bc721509660b5",
  gas: 21000,
  gasPrice: 1000000000,
  hash: "0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383",
  input: "0x",
  nonce: 2,
  r: "0x6e7036be4e9bdf681a73e0fdf45811b7e844092e1c47847d82e267095c5164e8",
  s: "0x114fbb3f833ef0446b62dcf18c96cd5dcf3fdfc760d057d485665eda592a63d8",
  to: "0x1a8355a4ae7465f7bf867a1a0ea88932b1c19891",
  transactionIndex: 0,
  type: "0x0",
  v: "0x42",
  value: 1e+21
}

eth.getBlock(2252)
{
  difficulty: 368572,
  extraData: "0xd883010a11846765746888676f312e31372e35856c696e7578",
  gasLimit: 14868757,
  gasUsed: 21000,
  hash: "0x45e9a0a8825c469af690789ac9e56a9943a37111c043b201a4cb389f3dc263c1",
  logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  miner: "0x36d9643d7fdb4ed786293133cf9bc721509660b5",
  mixHash: "0x8fc6d73227e12cd200fede709e6bc7ebd9ecc8235902114ba2c1395e00ba120d",
  nonce: "0x4fc5e78740efb0f4",
  number: 2252,
  parentHash: "0x332ead2b5fc9ec955e9beb17bd8137d32ad8b79215629f670bc92b2ad7f58178",
  receiptsRoot: "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2",
  sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  size: 651,
  stateRoot: "0x68a710014fe845df5b721f0eab2632ab58c5c2224e80638cd37fac42215818dc",
  timestamp: 1647928376,
  totalDifficulty: 534565491,
  transactions: ["0xb514f0f3fe5a55f0b588cdc2479412bd4edbb4af9f16315b6ba73515ecfb2383"],
  transactionsRoot: "0x6e9c87237f12835cb03362a89c3a5864068fcef70a93c573d8d912dc4552830e",
  uncles: []
}

アカウント2に1000ETH無事に着金してることが確認できました。また、処理前には無かったブロック番号が割り当てられ、中身を確認することができるようになっています。

4、受け取ったETHから500ETH送り返してみる

今度は、アカウント2から、受け取った1000ETHのうちの半額=500ETHを、アカウント1に逆に送金してみましょう。

personal.unlockAccount(eth.accounts[1])
Unlock account 0x1a8355a4ae7465f7bf867a1a0ea88932b1c19891
Passphrase:
true

eth.sendTransaction({from: eth.accounts[1], to: eth.accounts[0], value: web3.toWei(500, "ether")})
"0x4071661aeae2e3403a29443dc0ad146f2ed8faed1f9d5c3641a40122a8d24a48"

miner.start()
null

miner.stop()
null

web3.fromWei(eth.getBalance(eth.accounts[1]),"ether")
499.999979

web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")
4050.000021

eth.getBalance(eth.accounts[1])
499999979000000000000

ここで注目すべきは、アカウント2の残高が1000 - 500 = 500ETHでは無いという点です。ガス代=トランザクション処理手数料=が引かれています。

0.000021ETHほどかかっているようです。今現在、1ETHは日本円にして35万円ほどですから、350000×0.000021=7.35日本円かかった、ということになります。

次回は他のgeth起動オプションやブロックの関係を見てみます。

Ubuntu Server 21.10でイーサリアムブロックチェーン【その4】

スーパープラセンタ化粧品【母の滴3点セット定期便】販促プログラム
プラセンタの専門店 フローレス化粧品がお届けする、 「母の滴化粧品3点セット定期便プログラムです。 使...READ MORE
【93%の女性が「いい匂い」と回答!】男の練り香水「ボディセンス」
女性専門家100人が集まり、商品を厳しくチェックする華麗なイベント「美の祭典」で 実に93%の女性が「いい...READ MORE
サプリ専門店「こだわりの成分」安心・安全をお届けします
サプリ専門店オーガランドは2005年から、自社オリジナルのサプリを販売しております。 長期的に続けて飲ん...READ MORE
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆ServerNote.NETショッピング↓
ShoppingNote
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】