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 ตามที่เราเห็นในบทต่อไป