Python กำลังสร้าง Blockchain

บล็อกเชนประกอบด้วยรายการบล็อกที่เชื่อมโยงกัน ในการจัดเก็บรายการทั้งหมดเราจะสร้างตัวแปรรายการที่เรียกว่า TPCoins -

TPCoins = []

เราจะเขียนวิธียูทิลิตี้ที่เรียกว่า dump_blockchainสำหรับการทิ้งเนื้อหาของบล็อคเชนทั้งหมด ก่อนอื่นเราพิมพ์ความยาวของบล็อกเชนเพื่อให้เราทราบว่าปัจจุบันมีบล็อกเชนอยู่กี่บล็อก

def dump_blockchain (self):
   print ("Number of blocks in the chain: " + str(len (self)))

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

เราตั้งค่าไฟล์ for วนดังนี้ -

for x in range (len(TPCoins)):
   block_temp = TPCoins[x]

แต่ละบล็อกที่อ้างอิงจะถูกคัดลอกไปยังตัวแปรชั่วคราวที่เรียกว่า block_temp.

เราพิมพ์หมายเลขบล็อกเป็นหัวเรื่องสำหรับแต่ละบล็อก โปรดทราบว่าตัวเลขจะเริ่มต้นด้วยศูนย์บล็อกแรกคือบล็อกการกำเนิดที่มีหมายเลขศูนย์

print ("block # " + str(x))

ภายในแต่ละบล็อกเราได้จัดเก็บรายการธุรกรรมสามรายการ (ยกเว้นบล็อกการกำเนิด) ในตัวแปรที่เรียกว่า verified_transactions. เราทำซ้ำรายการนี้ในไฟล์for วนซ้ำและสำหรับแต่ละรายการที่ดึงมาเราเรียก display_transaction เพื่อแสดงรายละเอียดธุรกรรม

for transaction in block_temp.verified_transactions:
   display_transaction (transaction)

นิยามฟังก์ชันทั้งหมดแสดงอยู่ด้านล่าง -

def dump_blockchain (self):
   print ("Number of blocks in the chain: " + str(len (self)))
   for x in range (len(TPCoins)):
      block_temp = TPCoins[x]
      print ("block # " + str(x))
      for transaction in block_temp.verified_transactions:
         display_transaction (transaction)
         print ('--------------')
      print ('=====================================')

โปรดทราบว่าที่นี่เราได้แทรกตัวคั่นตามจุดที่เหมาะสมในรหัสเพื่อแบ่งเขตการบล็อกและธุรกรรมภายใน

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