نحوه ساخت یک blockchain cryptocurrency ساده در node. js

ساخت وبلاگ

Boost your skills online, with our friendly online workshops on front-end and design.

این همان چیزی است که Smashingcoin به نظر می رسد! این شیء حاوی خاصیت blockchain است ، که یک آرایه است که حاوی تمام بلوک های موجود در زنجیره است. همانطور که در تصویر بالا مشاهده می کنید ، هر بلوک به هش بلوک قبلی اشاره می کند. به عنوان مثال ، بلوک دوم به هش بلوک اول اشاره می کند. پس از آزمایش و دیدن اینکه blockchain ما کار می کند ، اجازه می دهیم ویژگی های بیشتری را برای تقویت ویژگی های Smashingcoin اضافه کنیم.

چگونه می توان یکپارچگی blockchain را تأیید کرد

همانطور که قبلاً گفته شد ، یکی از ویژگی های اصلی یک blockchain این است که به محض اضافه شدن یک بلوک به زنجیره ، بدون باطل کردن یکپارچگی بقیه زنجیره ها قابل تغییر نیست.

بنابراین ، برای تأیید یکپارچگی blockchain ، من یک روش checkchainvality () را به کلاس cryptoblockchain اضافه می کنم.

هش برای اطمینان از اعتبار و امنیت یک blockchain بسیار مهم است زیرا هرگونه تغییر در محتوای یک بلوک منجر به تولید یک هش کاملاً جدید و بی اعتبار کردن blockchain خواهد شد.

به این ترتیب ، روش checkchainvality () اگر اظهارات برای تأیید اینکه آیا هش از هر بلوک با آن دستکاری شده است ، استفاده می کند. با شروع از اولین بلوک ایجاد شده ، در کل blockchain حلقه می شود و اعتبار آن را بررسی می کند. توجه داشته باشید که از آنجا که بلوک پیدایش به سختی کدگذاری شده است ، بررسی نمی شود.

همچنین ، این روش تأیید می کند که آیا هش هر دو بلوک متوالی به یکدیگر اشاره می کنند. اگر یکپارچگی blockchain به خطر نیفتد ، درست باز می گردد. در غیر این صورت ، در صورت بروز ناهنجاری ها ، نادرست است.

در اینجا کد است:

 if(currentBlock.precedingHash !== precedingBlock.hash) retu false;> retu true;> 

نحوه اضافه کردن اثبات کار

همانطور که قبلاً نیز گفته شد ، اثبات کار مفهومی است که برای افزایش مشکل در استخراج یا اضافه کردن بلوک های جدید به blockchain اعمال می شود.

در مورد Smashingcoin ، من از یک الگوریتم ساده استفاده می کنم که مردم را از تولید بلوک های جدید به راحتی یا اسپم کردن blockchain باز می دارد.

بنابراین ، در کلاس CryptoBlock ، من روش دیگری به نام ProoctofWork () اضافه می کنم. در اصل ، این الگوریتم ساده تعدادی را مشخص می کند ، که به عنوان یک خاصیت مشکل منتقل می شود ، به گونه ای که هش هر بلوک حاوی صفرهای پیشرو است که مطابق با این سطح دشواری است.

اطمینان از هش از هر بلوک با تعداد صفرها شروع می شود که در سطح دشواری تعیین شده است ، به قدرت محاسباتی زیادی نیاز دارد. هرچه سطح دشواری بالاتر باشد ، زمان بیشتری برای معدن بلوک های جدید طول می کشد.

علاوه بر این ، من یک مقدار غیر تصادفی تصادفی را به هر بلوک هشدار اضافه می کنم به گونه ای که هنگام انجام مجدد ، محدودیت های سطح دشواری هنوز هم قابل تحقق است.

در اینجا کد است:

و در اینجا روش به روز شده ComputeHash () با متغیر غیر CECE شامل:

علاوه بر این ، برای اجرای اثبات مکانیسم کار در تولید بلوک های جدید ، من آن را در روش Addnewblock () گنجانده ام:

پیچیدن

در اینجا کل کد برای ساخت cryptocurrency smashingcoin با استفاده از node. js وجود دارد:

 computehash ()Proofofwork (مشکل)>>cryptoblockchainStartGenesisBlock ()به دست آوردن latestblock ()AddNewBlock (NewBlock)اعتبار سنجی ()if (currentBlock.precedingHash !== precedingBlock.hash) retu false;> retu true;>>اجازه دهید SmashingCoin = CryptoBlockChain جدید () ؛Console. log ("معدن Smashingcoin در حال انجام است.") ؛smashingcoin. addnewblock (Cryptoblock جدید (1 ، "01/06/2020" ،)) ؛smashingcoin. addnewblock (Cryptoblock جدید (2 ، "01/07/2020" ،)) ؛Console. log (json. stringify (smashingcoin ، null ، 4)) ؛ 

اگر کد را روی ترمینال اجرا کنم ، در اینجا خروجی است که دریافت می کنم:

Output of creating a simple cryptocurrency in Node.js

همانطور که در تصویر بالا مشاهده می کنید ، هش ها اکنون با چهار صفر شروع می شوند ، که با سطح دشواری تعیین شده در اثبات مکانیسم کار مطابقت دارد.

نتیجه

خودشه! اینگونه است که می توانید با استفاده از node. js. یک blockchain cryptocurrency ساده بسازید

البته رمزنگاری Smashingcoin به دور از کامل نیست. در حقیقت ، اگر آن را بدون پیشرفت بیشتر آزاد کنید ، بعید است که خواسته های فعلی بازار را برای یک ارز دیجیتال ایمن ، قابل اعتماد و بصری برآورده کنید - شما را تنها کسی که از آن استفاده می کند ، می کند!

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

اگر نظر یا سؤال دارید ، لطفاً آنها را در زیر ارسال کنید.

منابع بیشتر

  • "blockchain 101" ، Coindesk
  • "بیت کوین: یک سیستم نقدی الکترونیکی همتا به همتا ،" Satoshi Nakamoto ، Bitcoin. org
اخبار رمز ارزها...
ما را در سایت اخبار رمز ارزها دنبال می کنید

برچسب : نویسنده : علی‌محمد افغانی بازدید : 27 تاريخ : پنجشنبه 19 مرداد 1402 ساعت: 17:54