លំហសិក្សាកម្ពុជា លំហសិក្សាកម្ពុជា V1.0
ចូល ចុះឈ្មោះ

មេរៀនទី ២៖ ការពិនិត្យ Python និងរចនាសម្ព័ន្ធទិន្នន័យ Blockchain

មូលសង្ខេប / Abstract

មេរៀនទី ២ នេះផ្ដោតលើការរំលឹកចំណេះដឹង Python សំខាន់ៗដែលត្រូវប្រើសម្រាប់ការរៀបចំទិន្នន័យ Blockchain។ បន្ទាប់ពីមេរៀនទី ១ ដែលនិស្សិតបានរៀនអំពី Python Console Application, input(), print(), conditions និង loops មេរៀននេះបន្តទៅកាន់ functions, lists និង dictionaries។ គោលបំណងសំខាន់គឺឱ្យនិស្សិតយល់ថា Blockchain មិនចាប់ផ្ដើមពី Block ភ្លាមៗទេ ប៉ុន្តែចាប់ផ្ដើមពី Transaction ដែលជាកំណត់ត្រាទិន្នន័យមួយ។ ក្នុង Project នេះ Transaction មួយអាចតំណាងឱ្យ Certificate Record មួយ ដែលមាន Certificate ID, Student Name, Program, Certificate Title, Issue Date និង Status។ Python Documentation ពន្យល់ថា list គឺជារចនាសម្ព័ន្ធទិន្នន័យសម្រាប់រក្សាទុកធាតុជាច្រើន ហើយ dictionary គឺជារចនាសម្ព័ន្ធ key-value ដែលសមស្របសម្រាប់តំណាងឱ្យកំណត់ត្រាទិន្នន័យមួយ [1]. Blockchain ក៏ប្រើ Transaction ជាធាតុមូលដ្ឋានក្នុង ledger ដែលបន្ទាប់មកត្រូវបានដាក់ចូលក្នុង Block [2]. ដូច្នេះ មេរៀននេះជាជំហានសំខាន់សម្រាប់បង្កើត Certificate Transaction Manager មុននឹងបន្តទៅ CSV Storage, Hashing និង Block Creation។

ពាក្យគន្លឹះ

១. ព័ត៌មានទូទៅអំពីមេរៀន

ចំណុចព័ត៌មាន
មុខវិជ្ជាBlockchain Technology Using Python Console and CSV
មេរៀនមេរៀនទី ២
ចំណងជើងPython Review II and Blockchain Data Structure
ប្រធានបទសំខាន់Functions, Lists, Dictionaries, and Blockchain Transactions
កម្រិតនិស្សិតBeginner to Intermediate
ភាសាសរសេរកម្មវិធីPython
ប្រភេទកម្មវិធីConsole Application
ឧបករណ៍ប្រើប្រាស់Python, VS Code, Terminal / Command Prompt
លទ្ធផលរំពឹងទុកនិស្សិតអាចបង្កើត Certificate Transaction Manager ក្នុង Console
ទិសដៅ ProjectConsole-Based Blockchain Student Certificate Verification System

២. គោលបំណងសិក្សា

បន្ទាប់ពីបញ្ចប់មេរៀននេះ និស្សិតគួរអាច៖

  1. ពន្យល់បានថា Function ក្នុង Python គឺជាអ្វី និងហេតុអ្វីត្រូវប្រើ។
  2. សរសេរ Function សាមញ្ញសម្រាប់បែងចែកកូដឱ្យមានរចនាសម្ព័ន្ធល្អ។
  3. ប្រើ List ដើម្បីរក្សាទុក Certificate Transactions ជាច្រើន។
  4. ប្រើ Dictionary ដើម្បីតំណាងឱ្យ Certificate Transaction មួយ។
  5. បង្កើត Function សម្រាប់ Add Transaction។
  6. បង្កើត Function សម្រាប់ Show All Transactions។
  7. បង្កើត Function សម្រាប់ Search Transaction by Certificate ID។
  8. យល់ថា Transaction គឺជាទិន្នន័យមូលដ្ឋានមុននឹងបញ្ចូលទៅក្នុង Blockchain។
  9. បង្កើត Console-Based Certificate Transaction Manager ដំបូងសម្រាប់ Final Project។

៣. ទំនាក់ទំនងមេរៀនទី២ជាមួយ Final Project

ក្នុង Final Project និស្សិតនឹងបង្កើតប្រព័ន្ធ៖

Design and Implementation of a Console-Based Blockchain Student Certificate Verification System Using Python and CSV File Storage

មុនពេលប្រព័ន្ធនេះអាចបង្កើត Blockchain បាន វាត្រូវការរចនាសម្ព័ន្ធទិន្នន័យសម្រាប់រក្សាទុក Certificate Records ជាមុន។ Certificate Record មួយនឹងក្លាយជា Transaction មួយ។ Transaction ជាច្រើនអាចត្រូវបានដាក់ក្នុង Block មួយ។ Block ជាច្រើនភ្ជាប់គ្នាដោយ Hash ហើយក្លាយជា Blockchain។

ដូច្នេះ Flow សិក្សាគឺ៖

Certificate Record
↓
Certificate Transaction
↓
List of Transactions
↓
Block
↓
Blockchain
↓
Validation and Tamper Detection

Figure 1. From Certificate Record to Blockchain Transaction

រូបភាពនេះគួរបង្ហាញពីលំហូរទិន្នន័យពី Certificate Record ទៅជា Certificate Transaction ហើយបន្តទៅកាន់ Block និង Blockchain។ វាជួយឱ្យនិស្សិតយល់ថា Blockchain មិនចាប់ផ្ដើមពី Chain ទេ ប៉ុន្តែចាប់ផ្ដើមពីកំណត់ត្រាទិន្នន័យតូចៗដែលហៅថា Transaction។


៤. Function ក្នុង Python

៤.១ Function គឺជាអ្វី?

Function គឺជាប្លុកកូដមួយដែលមានឈ្មោះ និងអាចហៅប្រើឡើងវិញបាន។ នៅពេលកម្មវិធីកាន់តែធំ ការសរសេរកូដទាំងអស់នៅកន្លែងតែមួយនឹងធ្វើឱ្យពិបាកអាន ពិបាកកែប្រែ និងពិបាកសាកល្បង។ Function ជួយបែងចែកកម្មវិធីទៅជាផ្នែកតូចៗ។

ឧទាហរណ៍៖

def show_title():
    print("=== Certificate Transaction Manager ===")

show_title()

ក្នុងឧទាហរណ៍នេះ show_title() គឺជា Function មួយ។ ពេលយើងហៅ show_title() កម្មវិធីនឹងបង្ហាញចំណងជើង។

Python Tutorial ពន្យល់ថា Python មានរចនាសម្ព័ន្ធទិន្នន័យ និងវិធីសាស្ត្របង្កើតកូដមានប្រសិទ្ធភាព ដែលសមស្របសម្រាប់អ្នកចង់បង្កើតកម្មវិធីមានរចនាសម្ព័ន្ធ [1].


៤.២ ហេតុអ្វីត្រូវប្រើ Function ក្នុង Project នេះ?

ក្នុង Certificate Verification Project យើងនឹងមានមុខងារជាច្រើនដូចជា៖

  • Add Certificate Transaction
  • Show All Transactions
  • Search Certificate
  • Count Transactions
  • Save to CSV
  • Generate Hash
  • Create Block
  • Validate Blockchain

បើសរសេរកូដទាំងអស់នៅកន្លែងតែមួយ វានឹងស្មុគស្មាញ។ ដូច្នេះយើងត្រូវបំបែកជា Functions។

Functionតួនាទី
add_transaction()បញ្ចូល Certificate Transaction ថ្មី
show_transactions()បង្ហាញ Transactions ទាំងអស់
search_transaction()ស្វែងរក Certificate តាម Certificate ID
count_transactions()រាប់ចំនួន Transactions
show_menu()បង្ហាញ Menu របស់កម្មវិធី

Figure 2. Function-Based Program Structure

រូបភាពនេះគួរបង្ហាញថា កម្មវិធីមួយអាចបែងចែកជាមុខងារតូចៗដូចជា Add, Show, Search និង Count។ វាជួយឱ្យនិស្សិតយល់ថា Function ជួយធ្វើឱ្យកូដមានរចនាសម្ព័ន្ធល្អ ងាយអាន ងាយសាកល្បង និងងាយកែប្រែ។


៤.៣ ឧទាហរណ៍ Function សាមញ្ញ

def add_two_numbers():
    number1 = int(input("Enter first number: "))
    number2 = int(input("Enter second number: "))
    total = number1 + number2
    print("Total:", total)

add_two_numbers()

ការពន្យល់

  • def add_two_numbers(): បង្កើត Function ថ្មី។
  • input() ទទួលលេខពីអ្នកប្រើប្រាស់។
  • int() បម្លែងអក្សរទៅជាចំនួនគត់។
  • total = number1 + number2 គណនាផលបូក។
  • print() បង្ហាញលទ្ធផល។
  • add_two_numbers() ហៅ Function ឱ្យដំណើរការ។

៥. List ក្នុង Python

៥.១ List គឺជាអ្វី?

List គឺជារចនាសម្ព័ន្ធទិន្នន័យក្នុង Python ដែលអាចរក្សាទុកធាតុជាច្រើននៅក្នុង Variable តែមួយ។ List ត្រូវបានសរសេរដោយប្រើសញ្ញា [].

ឧទាហរណ៍៖

students = ["Sok Dara", "Chan Vicheka", "Kim Sopheak"]
print(students)

List សមស្របសម្រាប់រក្សាទុក Certificate Transactions ជាច្រើន។ Python Documentation ពន្យល់ថា List មាន methods ជាច្រើន ដូចជា append() ដែលអាចប្រើសម្រាប់បន្ថែមធាតុថ្មីទៅចុង List [1].


៥.២ List សម្រាប់ Transactions

ក្នុង Project របស់យើង Transaction មួយគឺជាកំណត់ត្រា Certificate មួយ។ Transactions ជាច្រើនអាចរក្សាទុកក្នុង List មួយ។

ឧទាហរណ៍៖

transactions = []

transactions.append("CERT-FDE-001")
transactions.append("CERT-FDE-002")

print(transactions)

លទ្ធផល៖

['CERT-FDE-001', 'CERT-FDE-002']

ប៉ុន្តែការរក្សាទុកតែ Certificate ID មិនគ្រប់គ្រាន់ទេ។ យើងត្រូវការរក្សាទុកព័ត៌មានពេញលេញ ដូចជា Student Name, Program, Certificate Title, Issue Date និង Status។ ដូច្នេះយើងត្រូវប្រើ Dictionary។


៦. Dictionary ក្នុង Python

៦.១ Dictionary គឺជាអ្វី?

Dictionary គឺជារចនាសម្ព័ន្ធទិន្នន័យដែលរក្សាទុកទិន្នន័យជា Key និង Value។ Dictionary សមស្របសម្រាប់តំណាងឱ្យ Record មួយ ព្រោះវាអាចដាក់ឈ្មោះ Field បានច្បាស់។

ឧទាហរណ៍៖

certificate = {
    "certificate_id": "CERT-FDE-001",
    "student_name": "Sok Dara",
    "program": "Digital Economy"
}

print(certificate)

Python Documentation ពន្យល់ថា Dictionary ត្រូវបានសរសេរដោយប្រើ key:value pairs ហើយសមស្របសម្រាប់រក្សាទុកទិន្នន័យដែលមានទំនាក់ទំនងជាឈ្មោះ និងតម្លៃ [1].


៦.២ Certificate Transaction ជា Dictionary

ក្នុង Blockchain Project របស់យើង Certificate Transaction មួយអាចត្រូវបានសរសេរជា Dictionary ដូចខាងក្រោម៖

certificate_transaction = {
    "certificate_id": "CERT-FDE-001",
    "student_name": "Sok Dara",
    "program": "Digital Economy",
    "certificate_title": "Blockchain Technology Completion",
    "issue_date": "2026-08-25",
    "status": "Valid"
}

ការពន្យល់ Field នីមួយៗ

Fieldការពន្យល់
certificate_idលេខសម្គាល់វិញ្ញាបនបត្រ
student_nameឈ្មោះនិស្សិត
programកម្មវិធីសិក្សា
certificate_titleចំណងជើងវិញ្ញាបនបត្រ
issue_dateថ្ងៃចេញវិញ្ញាបនបត្រ
statusស្ថានភាព Valid, Invalid ឬ Revoked

Figure 3. Certificate Transaction as a Python Dictionary

រូបភាពនេះគួរបង្ហាញ Certificate Transaction មួយជាទម្រង់ Dictionary ដែលមាន key-value pairs។ វាជួយឱ្យនិស្សិតយល់ថា Dictionary អាចតំណាងឱ្យកំណត់ត្រាទិន្នន័យមួយបានច្បាស់ ហើយកំណត់ត្រានេះនឹងក្លាយជា Transaction មុនពេលដាក់ចូលក្នុង Block។


៧. Transaction ក្នុង Blockchain

៧.១ Transaction គឺជាអ្វី?

Transaction គឺជាកំណត់ត្រាទិន្នន័យមួយដែលត្រូវបានបញ្ចូលទៅក្នុងប្រព័ន្ធ Blockchain។ ក្នុង Cryptocurrency Transaction អាចមាន sender, receiver និង amount។ ប៉ុន្តែក្នុង Project របស់យើង Transaction មួយគឺជា Certificate Record មួយ។

NIST Blockchain Technology Overview ពន្យល់ថា Blockchain អនុញ្ញាតឱ្យអ្នកប្រើកត់ត្រា Transactions ក្នុង Shared Ledger ហើយក្រោមការដំណើរការធម្មតា Transaction មិនអាចត្រូវបានកែប្រែក្រោយពេល published បានទេ [2].


៧.២ Certificate Transaction ក្នុង Project នេះ

ក្នុង Project នេះ Transaction មួយមានន័យថា៖

កំណត់ត្រាវិញ្ញាបនបត្រមួយ ដែលត្រូវបានរៀបចំសម្រាប់បញ្ចូលទៅក្នុង Blockchain។

ឧទាហរណ៍៖

transaction = {
    "certificate_id": "CERT-FDE-001",
    "student_name": "Sok Dara",
    "program": "Digital Economy",
    "certificate_title": "Blockchain Technology Completion",
    "issue_date": "2026-08-25",
    "status": "Valid"
}

ក្នុងមេរៀនបន្ទាប់ៗ Transaction នេះនឹងត្រូវបាន៖

  1. Save ទៅ CSV
  2. Generate Hash
  3. Add to Block
  4. Store in Blockchain
  5. Validate for Tamper Detection

Figure 4. Certificate Transaction Flow

រូបភាពនេះគួរបង្ហាញលំហូរពីការបញ្ចូល Certificate Data ទៅជា Transaction ហើយបន្តទៅ Save, Hash និង Add to Block។ វាជួយបញ្ជាក់ថា Transaction គឺជាជំហានមូលដ្ឋានមួយមុនការបង្កើត Blockchain។


៨. Practical Lab 1: Create One Certificate Transaction

គោលបំណង

បង្កើត Certificate Transaction មួយដោយប្រើ Python Dictionary។

Source Code

certificate_transaction = {
    "certificate_id": "CERT-FDE-001",
    "student_name": "Sok Dara",
    "program": "Digital Economy",
    "certificate_title": "Blockchain Technology Completion",
    "issue_date": "2026-08-25",
    "status": "Valid"
}

print("=== Certificate Transaction ===")
print(certificate_transaction)

ការពន្យល់

កូដនេះបង្កើត Dictionary មួយដែលតំណាងឱ្យ Certificate Transaction។ Field នីមួយៗមានឈ្មោះច្បាស់។ ការប្រើ Dictionary ធ្វើឱ្យទិន្នន័យងាយអាន និងងាយប្រើសម្រាប់ Hashing នៅមេរៀនបន្ទាប់។

លទ្ធផលរំពឹងទុក



៩. Practical Lab 2: Add Transactions into a List

គោលបំណង

បង្កើត List សម្រាប់រក្សាទុក Certificate Transactions ជាច្រើន។

Source Code

transactions = []

def add_transaction():
    certificate_id = input("Certificate ID: ")
    student_name = input("Student Name: ")
    program = input("Program: ")
    certificate_title = input("Certificate Title: ")
    issue_date = input("Issue Date: ")
    status = input("Status Valid/Invalid/Revoked: ")

    transaction = {
        "certificate_id": certificate_id,
        "student_name": student_name,
        "program": program,
        "certificate_title": certificate_title,
        "issue_date": issue_date,
        "status": status
    }

    transactions.append(transaction)
    print("Transaction added successfully.")

add_transaction()
print(transactions)

ការពន្យល់

  • transactions = [] បង្កើត List ទទេ។
  • add_transaction() ជា Function សម្រាប់បញ្ចូល Transaction ថ្មី។
  • input() ទទួលទិន្នន័យពីអ្នកប្រើប្រាស់។
  • transaction = {...} បង្កើត Dictionary។
  • transactions.append(transaction) បន្ថែម Dictionary ចូលក្នុង List។

Figure 5. List of Certificate Transactions

រូបភាពនេះគួរបង្ហាញ List មួយដែលមាន Certificate Transactions ជាច្រើន។ Transaction នីមួយៗគឺជា Dictionary មួយ។ វាជួយឱ្យនិស្សិតយល់ថា List អាចរក្សាទុក Records ជាច្រើន ហើយ Records ទាំងនេះអាចត្រូវបានដាក់ចូលទៅក្នុង Block នៅមេរៀនបន្ទាប់។


១០. Practical Lab 3: Show All Transactions

គោលបំណង

បង្ហាញ Transactions ទាំងអស់ដែលបានបញ្ចូលក្នុង List។

Source Code

def show_transactions():
    print("\n=== All Certificate Transactions ===")

    if len(transactions) == 0:
        print("No transactions available.")
    else:
        for transaction in transactions:
            print("-----------------------------")
            print("Certificate ID:", transaction["certificate_id"])
            print("Student Name:", transaction["student_name"])
            print("Program:", transaction["program"])
            print("Certificate Title:", transaction["certificate_title"])
            print("Issue Date:", transaction["issue_date"])
            print("Status:", transaction["status"])

show_transactions()

ការពន្យល់

Function នេះពិនិត្យជាមុនថា List មាន Transaction ឬអត់។ បើគ្មានវាបង្ហាញសារ No transactions available. បើមាន វាប្រើ for loop ដើម្បីបង្ហាញ Transaction នីមួយៗ។


១១. Practical Lab 4: Search Transaction by Certificate ID

គោលបំណង

បង្កើត Function សម្រាប់ស្វែងរក Transaction តាម Certificate ID។

Source Code

def search_transaction():
    search_id = input("Enter Certificate ID to search: ")

    for transaction in transactions:
        if transaction["certificate_id"] == search_id:
            print("Certificate found:")
            print("Certificate ID:", transaction["certificate_id"])
            print("Student Name:", transaction["student_name"])
            print("Program:", transaction["program"])
            print("Certificate Title:", transaction["certificate_title"])
            print("Issue Date:", transaction["issue_date"])
            print("Status:", transaction["status"])
            return

    print("Certificate not found.")

ការពន្យល់

Function នេះទទួល Certificate ID ពីអ្នកប្រើប្រាស់ បន្ទាប់មកប្រើ for loop ដើម្បីពិនិត្យ Transaction នីមួយៗ។ ប្រសិនបើរកឃើញ Certificate ID ត្រូវគ្នា វាបង្ហាញព័ត៌មាននោះ ហើយ return ដើម្បីចេញពី Function។ បើរកមិនឃើញ វាបង្ហាញ Certificate not found.

Figure 6. Search Transaction by Certificate ID

រូបភាពនេះគួរបង្ហាញដំណើរការ Search ដោយអ្នកប្រើបញ្ចូល Certificate ID ហើយកម្មវិធីស្វែងរកក្នុង List of Transactions។ ប្រសិនបើរកឃើញ វាបង្ហាញ Certificate Record។ ប្រសិនបើរកមិនឃើញ វាបង្ហាញ Not Found។ រូបភាពនេះជួយភ្ជាប់ Python Loop និង Condition ទៅនឹងមុខងារផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រ។


១២. Practical Lab 5: Complete Certificate Transaction Manager

គោលបំណង

បង្កើតកម្មវិធី Console មួយដែលមាន Menu សម្រាប់ Add, Show, Search, Count និង Exit។

Full Source Code

transactions = []

def show_menu():
    print("\n=== Certificate Transaction Manager ===")
    print("1. Add Transaction")
    print("2. Show All Transactions")
    print("3. Search Transaction")
    print("4. Count Transactions")
    print("5. Exit")

def add_transaction():
    certificate_id = input("Certificate ID: ")
    student_name = input("Student Name: ")
    program = input("Program: ")
    certificate_title = input("Certificate Title: ")
    issue_date = input("Issue Date: ")
    status = input("Status Valid/Invalid/Revoked: ")

    transaction = {
        "certificate_id": certificate_id,
        "student_name": student_name,
        "program": program,
        "certificate_title": certificate_title,
        "issue_date": issue_date,
        "status": status
    }

    transactions.append(transaction)
    print("Transaction added successfully.")

def show_transactions():
    print("\n=== All Certificate Transactions ===")

    if len(transactions) == 0:
        print("No transactions available.")
    else:
        for transaction in transactions:
            print("-----------------------------")
            print("Certificate ID:", transaction["certificate_id"])
            print("Student Name:", transaction["student_name"])
            print("Program:", transaction["program"])
            print("Certificate Title:", transaction["certificate_title"])
            print("Issue Date:", transaction["issue_date"])
            print("Status:", transaction["status"])

def search_transaction():
    search_id = input("Enter Certificate ID to search: ")

    for transaction in transactions:
        if transaction["certificate_id"] == search_id:
            print("Certificate found:")
            print("Certificate ID:", transaction["certificate_id"])
            print("Student Name:", transaction["student_name"])
            print("Program:", transaction["program"])
            print("Certificate Title:", transaction["certificate_title"])
            print("Issue Date:", transaction["issue_date"])
            print("Status:", transaction["status"])
            return

    print("Certificate not found.")

def count_transactions():
    print("Total Transactions:", len(transactions))

while True:
    show_menu()
    choice = input("Choose option: ")

    if choice == "1":
        add_transaction()
    elif choice == "2":
        show_transactions()
    elif choice == "3":
        search_transaction()
    elif choice == "4":
        count_transactions()
    elif choice == "5":
        print("Goodbye!")
        break
    else:
        print("Invalid choice. Please try again.")

ការពន្យល់សំខាន់

កម្មវិធីនេះជាជំហានដំបូងនៃ Final Project។ វាមិនទាន់រក្សាទុកទៅ CSV ទេ ហើយមិនទាន់មាន Hash ឬ Blockchain ទេ។ ប៉ុន្តែវាជួយបង្កើត Transaction Data ដែលជា Foundation សំខាន់សម្រាប់មេរៀនបន្ទាប់។

Figure 7. Complete Console Transaction Manager Menu

រូបភាពនេះគួរបង្ហាញ Console Menu ដែលមានជម្រើស Add Transaction, Show All Transactions, Search Transaction, Count Transactions និង Exit។ វាជួយឱ្យនិស្សិតយល់ពីរបៀបបង្កើតកម្មវិធីមានរចនាសម្ព័ន្ធ និងអាចពង្រីកបានទៅកាន់ CSV Storage និង Blockchain Logic នៅមេរៀនបន្ទាប់ៗ។


១៣. ការពិភាក្សាក្នុងថ្នាក់

គ្រូអាចប្រើសំណួរខាងក្រោមសម្រាប់ពិភាក្សា៖

  1. ហេតុអ្វី Certificate Record មួយគួរត្រូវបានរៀបចំជា Dictionary?
  2. ហេតុអ្វី Transactions ជាច្រើនគួរត្រូវបានរក្សាទុកក្នុង List?
  3. តើ Function ជួយអ្វីខ្លះក្នុងការអភិវឌ្ឍ Project ធំ?
  4. តើ Search by Certificate ID មានសារៈសំខាន់យ៉ាងដូចម្តេច?
  5. តើ Transaction Manager នេះអាចបន្តទៅ Blockchain បានយ៉ាងដូចម្តេច?

១៤. Reflection Exercise

សរសេរចម្លើយខ្លី ៥–៧ បន្ទាត់៖

ហេតុអ្វី Transaction គឺជាជំហានសំខាន់មុនពេលបង្កើត Block និង Blockchain?

ចម្លើយគួរបង្ហាញពីគំនិត៖

  • Transaction ជាកំណត់ត្រាទិន្នន័យមូលដ្ឋាន។
  • Blockchain ត្រូវការទិន្នន័យដែលមានរចនាសម្ព័ន្ធ។
  • Dictionary ជួយរៀបចំ Certificate Record។
  • List ជួយរក្សាទុក Transactions ជាច្រើន។
  • Block នឹងប្រើ Transactions ទាំងនេះនៅមេរៀនបន្ទាប់។

១៥. លំហាត់អនុវត្ត

លំហាត់ទី១៖ បង្កើត Function បង្ហាញ Project Title

សរសេរ Function មួយឈ្មោះ show_project_title() ដែលបង្ហាញ៖

Console-Based Blockchain Certificate Verification System

លំហាត់ទី២៖ បង្កើត Dictionary សម្រាប់ Certificate Record

បង្កើត Dictionary មួយដែលមាន Fields៖

  1. certificate_id
  2. student_name
  3. program
  4. certificate_title
  5. issue_date
  6. status

បន្ទាប់មកបង្ហាញ Dictionary នោះ។


លំហាត់ទី៣៖ បង្កើត List សម្រាប់រក្សាទុក Transactions

បង្កើត List មួយឈ្មោះ transactions ហើយបន្ថែម Certificate Transaction ចំនួន ៣ ចូលទៅក្នុង List។


លំហាត់ទី៤៖ បង្កើត Function Show Transactions

សរសេរ Function មួយឈ្មោះ show_transactions() ដើម្បីបង្ហាញ Transactions ទាំងអស់ក្នុង List។


លំហាត់ទី៥៖ បង្កើត Function Search Certificate

សរសេរ Function មួយឈ្មោះ search_transaction() ដើម្បីស្វែងរក Certificate តាម certificate_id។


លំហាត់ទី៦៖ បង្កើត Console Menu

បង្កើត Menu ដែលមានជម្រើស៖

1. Add Transaction
2. Show Transactions
3. Search Transaction
4. Count Transactions
5. Exit

១៦. កិច្ចការផ្ទះ

បង្កើតកម្មវិធី Python Console មួយឈ្មោះ៖

certificate_transaction_manager.py

កម្មវិធីត្រូវមានមុខងារ៖

  1. បង្ហាញ Menu។
  2. Add Certificate Transaction។
  3. Show All Transactions។
  4. Search Transaction by Certificate ID។
  5. Count Total Transactions។
  6. Exit Program។
  7. បញ្ចូល Comment ពន្យល់ Function សំខាន់ៗ។
  8. ប្រើ Dictionary សម្រាប់ Transaction មួយ។
  9. ប្រើ List សម្រាប់ Transactions ជាច្រើន។
  10. ប្រើ Function ដើម្បីបំបែកកូដឱ្យមានរចនាសម្ព័ន្ធល្អ។

១៧. លទ្ធផលដែលនិស្សិតគួរទទួលបាន

បន្ទាប់ពីបញ្ចប់មេរៀនទី២ និស្សិតគួរមាន៖

  1. ការយល់ដឹងពី Function, List និង Dictionary។
  2. ការយល់ថា Certificate Record អាចតំណាងជា Dictionary។
  3. ការយល់ថា Transactions ជាច្រើនអាចរក្សាទុកក្នុង List។
  4. កម្មវិធី Console Transaction Manager មួយ។
  5. មូលដ្ឋានសម្រាប់បន្តទៅ CSV File Storage នៅមេរៀនទី៣។
  6. ការយល់ថា Transaction គឺជាទិន្នន័យមូលដ្ឋានមុននឹងបង្កើត Block និង Blockchain។

១៨. Notes

មេរៀននេះមិនទាន់បង្កើត Blockchain ពេញលេញទេ។ វាជាមេរៀនសំខាន់សម្រាប់រៀបចំ Data Structure។ បើ Data Structure មិនត្រឹមត្រូវ ការបង្កើត Hash, Block និង Blockchain នៅមេរៀនបន្ទាប់នឹងពិបាក។

គ្រូគួរផ្ដល់ឧទាហរណ៍ជាច្រើនអំពី Records ពិតៗ ដូចជា៖

  • Student certificate record
  • Training certificate record
  • Scholarship document record
  • Transcript record
  • Internship completion certificate

គ្រូគួរអោយនិស្សិតពន្យល់ដោយមាត់ថា៖

Transaction មួយក្នុង Project របស់យើងគឺជាអ្វី?

ចម្លើយដែលរំពឹងទុក៖

Transaction មួយគឺជា Certificate Record មួយដែលត្រូវបានរៀបចំជាទម្រង់ Dictionary ដើម្បីបញ្ចូលទៅក្នុង Blockchain នៅមេរៀនបន្ទាប់។


១៩. ការណែនាំរូបភាពក្នុងមេរៀនទី ២

Figureកន្លែងបញ្ចូលគោលបំណង
Figure 1ផ្នែក ៣បង្ហាញលំហូរពី Certificate Record ទៅ Blockchain Transaction
Figure 2ផ្នែក ៤.២បង្ហាញរចនាសម្ព័ន្ធកម្មវិធីដែលបែងចែកជា Functions
Figure 3ផ្នែក ៦.២បង្ហាញ Certificate Transaction ជា Dictionary
Figure 4ផ្នែក ៧.២បង្ហាញ Transaction Flow ពី Data ទៅ Block
Figure 5ផ្នែក ៩បង្ហាញ List of Certificate Transactions
Figure 6ផ្នែក ១១បង្ហាញ Search Transaction by Certificate ID
Figure 7ផ្នែក ១២បង្ហាញ Complete Console Transaction Manager Menu

២០. IEEE-Style References

[1] Python Software Foundation, “5. Data Structures — Python 3 Documentation,” Python Documentation, 2026.

[2] D. Yaga, P. Mell, N. Roby, and K. Scarfone, “Blockchain Technology Overview,” National Institute of Standards and Technology, NISTIR 8202, 2018, doi: 10.6028/NIST.IR.8202.

[3] Python Software Foundation, “csv — CSV File Reading and Writing,” Python Documentation, 2026.

ចែករំលែក
រក្សាទុក
ការផ្សព្វផ្សាយ
ការផ្សព្វផ្សាយ
មតិយោបល់ 0
ចូលគណនី ដើម្បីបញ្ចេញមតិ