サルが挑戦するプレーンブロックチェーンの実装

さるがプレーンブロックチェーンを実装するよ

885 views

概要

権利とかいろいろ引っ掛かりそうだから、簡単な解説にとどめるわ。
詳しい内容は本買ってね!
GIT:ここにコードサンプルあるよ

出力

ジェネシスブロックを作成中・・・
{
  "bits": 511145847,
  "block_hash": "00004194f7a4bbefd27ddc610e7f7dcec5049ad1295e512319ed9c34aa7f524b",
  "elapsed_time": "3.888秒",
  "index": 0,
  "nonce": 660408,
  "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
  "stored_data": "ジェネシスブロック",
  "timestamp": "2020/09/05 14:34:54"
}
2番目のブロックを生成中・・・
{
  "bits": 511145847,
  "block_hash": "000074f8324bac59759589412eae81842877b0ad5c6b885ae6bf910e6618ef9b",
  "elapsed_time": "1.403秒",
  "index": 1,
  "nonce": 252478,
  "prev_hash": "00004194f7a4bbefd27ddc610e7f7dcec5049ad1295e512319ed9c34aa7f524b",
  "stored_data": "ブロック1",
  "timestamp": "2020/09/05 14:34:57"
}
#残りは省略
・
・
・

ここで重要なのは、ブロックに一つ前のハッシュ値が格納されている点。
実際、ジェネシスブロックのハッシュ値が、2番目のブロックに格納されている。
(prev_hashが中に入っている。)


一番上の"bits"の値を変更すると出力は、変化する
[変更]
bits = 0x1e777777 => 0x1d777777

bitsは難易度を定義する。
先頭2バイトがどれだけ0が並ぶか、Targetの桁数に関係する。
"1e777777"の時は、最低4つの0が並ぶ。
"1d777777"の時は、最低6つの0が並ぶ。
難易度的には0がたくさん並ぶほうが高い。つまり、"1d777777"のほうが難しい
※000000...より小さい値が要求されるため、難しい,,,

["1e777777"]

2番目のブロックを生成中・・・
{
  "bits": 511145847,
  "block_hash": "000074f8324bac59759589412eae81842877b0ad5c6b885ae6bf910e6618ef9b",
  "elapsed_time": "1.403秒",
  "index": 1,
  "nonce": 252478,
  "prev_hash": "00004194f7a4bbefd27ddc610e7f7dcec5049ad1295e512319ed9c34aa7f524b",
  "stored_data": "ブロック1",
  "timestamp": "2020/09/05 14:34:57"
}

["1d777777"]

3番目のブロックを生成中・・・
{
  "bits": 494368631,
  "block_hash": "0000002baa96e972255e99088b38e82d5fb4c9c2213df348b546c6c723ac09b6",
  "elapsed_time": "223.719秒",
  "index": 2,
  "nonce": 35152583,
  "prev_hash": "0000005423a0cd4e9689a8e6a7012fd8a872d3ad97051182b7d1945469357ed4",
  "stored_data": "ブロック2",
  "timestamp": "2020/09/05 14:52:25"
}

秒数(elapsed_time)が全然違う,,,

Page 3 of 5.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

owl

自己紹介

駆け出しエンジニア
だいたいweb系をかじってる
最近ちょとブロックチェーンに興味出てきた

サイト/ブログ

https://github.com/owl0109

ツイッター

@kijiken1