さるがプレーンブロックチェーンを実装するよ
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系をかじってる
最近ちょとブロックチェーンに興味出てきた