ایجاد یک بلاک چین با کمتر از 100 خط کد نویسی

اگر چه بلاک چین در نگاه اول پیچیده به نظر می‌رسد اما مفهوم ساده‌ای در پشت آن نهفته است. بدون شک به کاربردن عملی آن می‌تواند به فهم بهتر این تکنولوژی کمک کند. در این مقاله به صورت تصویری آموزش داده می‌شود که چگونه می‌توان با چند خط کدنویسی یک بلاک چین ساده را ایجاد کرد.

0 109

ایجاد یک بلاک چین : مفهوم اساسی بلاک چین (Blockchain) بسیار ساده است , یک پایگاه داده توزیع‌شده که به طور پیوسته فهرستی رو به رشد از سوابق مرتب‌شده را حفظ می‌کند.

بلاک چین واژه‌ای است که معمولا با نام بیت کوین و/یا اتریوم همراه شده است اما بلاک چین فراتر از این دو رمز ارز است. بلاک چین تکنولوژی پشت این رمز ارزها و پشت هر رمز ارز دیگری است.

دیگر موارد استفاده‌ بسیاری برای بلاک چین وجود دارد، مثلاً بازی‌ها (کریپتوکیتیز (CryptoKitties)) یا همچنین بلاک چین+IOT (اینترنت اشیا) و این‌ها تنها نقطه‌ی آغاز برای این تکنولوژی هستند.

ایجاد یک بلاک چین با کمتر از 100 خط کد نویسی

زیرنویس تصویر: یک تصویر ساده درباره‌ مفهوم بلاک چین

بلاک چین، همانطور که نامش می‌گوید، زنجیره‌ای از بلوک‌ها است. به همین خاطر، ما اولین کلاس داده، یا همان اولین بلوک، را به شکل زیر داریم.

ایجاد یک بلاک چین با کمتر از 100 خط کد نویسی

در این مرحله، بلوک من دارای صفت‌های زیر است:

  • شاخص (index) – شاخص بلاک نشان‌دهنده‌ی موقعیت آن در زنجیره است.
  • برچسب زمان (timestamp) – روز و زمانی که بلوک به بلاک چین اضافه شده است.
  • داده (data) – ارزش داده، به عبارت دیگر، آنچه می‌خواهید ذخیره کنید.
  • هش قبلی (previous hash) – هش مربوط به بلوک با شاخص -1
  • هش (hash) – هش مربوط به همین بلوک

احتمالاً چند نکته‌ جالب در تصویر به چشمتان خواهد خورد، به همین خاطر در اینجا کمی درباره‌ آن‌ها توضیح می‌دهم:

  • بیشتر سعی کنید به صورت شی‌گرا برنامه‌نویسی کنید. تابع isValid برای هر بلوک به این سوال پاسخ می‌دهد که آیا آن بلاک معتبر است.
  • سازنده (constructor) همه‌ی چیزهای داخل بلوک را تعریف می‌کند.
  • تابع « update » برای به‌روزرسانی دیکشنری (dict) هنگام خواندن از یک فایل است. این کار برای ذخیره‌ی داده به منظور استفاده‌های بعدی در آینده صورت می‌گیرد.
  • محاسبه‌ی هش برای فایل‌های از پیش ذخیره‌شده‌ صورت می‌گیرد تا همیشه به کدگذاری مشابهی تبدیل شوند، زیرا کدگذاری‌های مختلف، کاراکترهای متفاوتی داشته و کاراکترهای متفاوت، هش‌های متفاوتی ایجاد می‌کنند.

بنابراین این یک زنجیره‌ معتبر است، اگر بلوک تغییر پیدا کرد، بلوک فعلی متوجه خواهد شد و خودش را نامعتبر می‌کند و اگر هر یک از بلوک‌های قبلی تغییر یافت، زنجیره متوجه خواهد شد و تمام زنجیره نامعتبر خواهد شد. این مفهومی است که داده‌های ذخیره‌شده در بلاک چین را تغییرناپذیر می‌کند.

خب حالا اگر کلاس داده‌ دوم یا همان بلاک چین را در نظر بگیریم، به این شکل است:

ایجاد یک بلاک چین با کمتر از 100 خط کد نویسی

بنابراین کلاس بلاک چین، بلوک‌ها را ایجاد کرده و به دنبال هر گونه مشکل در زنجیره می‌گردد و این کلاس مسئول ذخیره‌ی یک فایل JSON ساده و خواندن از روی آن است. اولین نسخه‌ی بلاک چین ما آماده است! \o/

تمامی کد در قسمت پایین قرار گرفته، شما می‌توانید آن را اجرا کرده و خروجی را ببینید.

 

 

در این نسخه از بلاک چین، ما الگوریتم « اثبات کار » (Proof of Work) را پیاده‌سازی نکردیم، ایده‌ی آن این است که ابتدا بلاک چین را ایجاد کرده و تضمین کنید که زنجیره یکپارچه است. این قدم بعدی من خواهد بود.

منبع

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.