ব্লকচেইনের মূল ধারণা
- ব্লক: তথ্য, একটি সময়সীমা, পূর্ববর্তী ব্লকের হ্যাশ এবং নিজের হ্যাশ ধারণ করে।
- চেইন: একাধিক ব্লকের একটি সিরিজ যা একসাথে সংযুক্ত থাকে, প্রতিটি পূর্ববর্তী ব্লকের হ্যাশ ধারণ করে।
- বিকেন্দ্রীকরণ: ব্লকচেইনটির উপর কোন কেন্দ্রীয় কর্তৃপক্ষ নিয়ন্ত্রণ করে না; এটি একাধিক নোডের একটি নেটওয়ার্কে কাজ করে।
- কনসেনসাস মেকানিজম: লেনদেনগুলি যাচাই করার জন্য প্রোটোকল (যেমন, প্রুফ অফ ওয়ার্ক, প্রুফ অফ স্টেক)।
- ক্রিপ্টোগ্রাফি: ব্লকচেইনের মধ্যে তথ্যের সুরক্ষা এবং অখণ্ডতা নিশ্চিত করে।
Table of Contents
পাইটনে একটি সহজ ব্লকচেইনের উদাহরণ
নীচে একটি মৌলিক ব্লকচেইন বাস্তবায়ন করা হলো:
import hashlib
import time
class Block:
def __init__(self, index, previous_hash, timestamp, data):
self.index = index
self.previous_hash = previous_hash
self.timestamp = timestamp
self.data = data
self.hash = self.calculate_hash()
def calculate_hash(self):
value = f"{self.index}{self.previous_hash}{self.timestamp}{self.data}".encode()
return hashlib.sha256(value).hexdigest()
class Blockchain:
def __init__(self):
self.chain = []
self.create_genesis_block()
def create_genesis_block(self):
# জেনেসিস ব্লক তৈরি করা
genesis_block = Block(0, "0", time.time(), "জেনেসিস ব্লক")
self.chain.append(genesis_block)
def add_block(self, data):
# নতুন ব্লক যোগ করা
previous_block = self.chain[-1]
new_index = previous_block.index + 1
new_timestamp = time.time()
new_block = Block(new_index, previous_block.hash, new_timestamp, data)
self.chain.append(new_block)
def display_chain(self):
# ব্লকচেইনে সমস্ত ব্লক প্রদর্শন করা
for block in self.chain:
print(f"ব্লক #{block.index}")
print(f"টাইমস্ট্যাম্প: {block.timestamp}")
print(f"ডেটা: {block.data}")
print(f"হ্যাশ: {block.hash}")
print(f"পূর্ববর্তী হ্যাশ: {block.previous_hash}\n")
# একটি ব্লকচেইন তৈরি করুন এবং ১০টি ব্লক যোগ করুন
blockchain = Blockchain()
for i in range(1, 11):
blockchain.add_block(f"ব্লক {i} ডেটা")
# ব্লকচেইন প্রদর্শন করুন
blockchain.display_chain()
কোডের ব্যাখ্যা
- Block ক্লাস:
- ব্লকচেইনের একটি একক ব্লককে উপস্থাপন করে।
- প্রতিটি ব্লকে একটি ইনডেক্স, পূর্ববর্তী ব্লকের হ্যাশ, টাইমস্ট্যাম্প, ব্লকের ডেটা এবং নিজস্ব হ্যাশ থাকে।
calculate_hash
পদ্ধতি ব্লকের বিষয়বস্তু থেকে SHA-256 হ্যাশ গণনা করে।
- Blockchain ক্লাস:
- ব্লকগুলির চেইন পরিচালনা করে।
- এটি একটি জেনেসিস ব্লক (প্রথম ব্লক) দিয়ে শুরু হয়।
add_block
পদ্ধতি নতুন ব্লক তৈরি করে এবং চেইনে যোগ করে।display_chain
পদ্ধতি চেইনে সমস্ত ব্লককে মুদ্রণ করে।
- ব্লক যোগ করা:
- কোডের প্রধান অংশে, একটি ব্লকচেইন ইনস্ট্যান্স তৈরি করা হয় এবং ১০টি ব্লক যোগ করা হয় যার ডেটা “ব্লক 1 ডেটা”, “ব্লক 2 ডেটা”, …, “ব্লক 10 ডেটা”।
- ব্লকচেইন প্রদর্শন:
- অবশেষে,
display_chain
পদ্ধতিটি সমস্ত ব্লক মুদ্রণ করতে ডাকা হয়।
- অবশেষে,
আউটপুট
এই কোডটি চালানোর পর আপনার আউটপুট হবে এরকম:
ব্লক #0
টাইমস্ট্যাম্প: 1697713420.256794
ডেটা: জেনেসিস ব্লক
হ্যাশ: a3dcd012fb774793438ebc0db8df449d6e1d2a2c29a7e8a7a66c6e02e158f48b
পূর্ববর্তী হ্যাশ: 0
ব্লক #1
টাইমস্ট্যাম্প: 1697713420.257478
ডেটা: ব্লক 1 ডেটা
হ্যাশ: 4b3b9bb1ac3f8793fcf4b48a1c40899c55574545e6b1edcbb8f61b7fda1cd607
পূর্ববর্তী হ্যাশ: a3dcd012fb774793438ebc0db8df449d6e1d2a2c29a7e8a7a66c6e02e158f48b
...
ব্লক #10
টাইমস্ট্যাম্প: 1697713420.258195
ডেটা: ব্লক 10 ডেটা
হ্যাশ: 5a4b0d51c250c12a7c354417b70b7f0c10b1c8b138c7ff58557b4d5f558fd7f3
পূর্ববর্তী হ্যাশ: f599f9be8345a1c6a14fbbcd39155556064a124f6e2c7e501c5be02f5eec163c
উপসংহার
এই উদাহরণটি পাইটনে ব্লকচেইনের মৌলিক ধারণাগুলি বোঝাতে সহায়ক। যদিও এই বাস্তবায়নটি মৌলিক এবং এর মধ্যে কনসেনসাস অ্যালগরিদম, পিয়ার-টু-পিয়ার নেটওয়ার্কিং বা লেনদেন যাচাইকরণের মতো বৈশিষ্ট্য অন্তর্ভুক্ত নেই, এটি ব্লকচেইন প্রযুক্তির একটি ভিত্তিগত বোঝাপড়া প্রদান করে। আরও জটিল অ্যাপ্লিকেশনের জন্য, আপনি API তৈরি করার জন্য Flask
, উন্নত ক্রিপ্টোগ্রাফিক ফাংশনের জন্য PyCryptodome
, বা এন্টারপ্রাইজ সমাধানের জন্য Hyperledger
মতো লাইব্রেরিগুলি অনুসন্ধান করতে পারেন।