Python Blockchain - การสร้าง Genesis Block

เราสันนิษฐานว่าผู้ริเริ่ม TPCoins ในตอนแรกให้ 500 TPCoins แก่ลูกค้าที่รู้จัก Dinesh. สำหรับสิ่งนี้เขาสร้างอินสแตนซ์ Dinesh เป็นครั้งแรก -

Dinesh = Client()

จากนั้นเราจะสร้างธุรกรรมการสร้างและส่ง 500 TPCoins ไปยังที่อยู่สาธารณะของ Dinesh

t0 = Transaction (
   "Genesis",
   Dinesh.identity,
   500.0
)

ตอนนี้เราสร้างอินสแตนซ์ของ Block ชั้นเรียนและโทร block0.

block0 = Block()

เราเริ่มต้นไฟล์ previous_block_hash และ Nonce ตัวแปรอินสแตนซ์เป็น Noneเนื่องจากนี่เป็นธุรกรรมแรกที่จัดเก็บไว้ในบล็อกเชนของเรา

block0.previous_block_hash = None
Nonce = None

ต่อไปเราจะเพิ่มธุรกรรม t0 ข้างต้นในไฟล์ verified_transactions รายการที่อยู่ในบล็อก -

block0.verified_transactions.append (t0)

ณ จุดนี้บล็อกได้รับการเริ่มต้นอย่างสมบูรณ์และพร้อมที่จะเพิ่มลงในบล็อกเชนของเรา เราจะสร้าง blockchain เพื่อจุดประสงค์นี้ ก่อนที่เราจะเพิ่มบล็อกใน blockchain เราจะแฮชบล็อกและเก็บค่าไว้ในตัวแปรส่วนกลางที่เรียกว่าlast_block_hashที่เราประกาศไว้ก่อนหน้านี้ ค่านี้จะถูกใช้โดยนักขุดคนถัดไปในบล็อกของเขา

เราใช้การเข้ารหัสสองบรรทัดต่อไปนี้สำหรับการแฮชบล็อกและเก็บค่าไดเจสต์

digest = hash (block0)
last_block_hash = digest

ในที่สุดเราก็สร้าง blockchain ตามที่เราเห็นในบทต่อไป