با node. js یک cryptocurrency بسازید

ساخت وبلاگ

Build Crypto Currency NodeJs

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

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

حتی اگر در مراحل ابتدایی خود قرار داشته باشد ، blockchain در بسیاری از صنایع مانند امور مالی ، دولت ، کلکسیون ها ، Defi ، امنیت ، آثار هنری مانند NFT و موارد دیگر کاربردی پیدا کرده است. همچنین فرصت ها و مشاغل جدید زیادی را برای توسعه دهندگان ، نویسندگان محتوا ، سازندگان NFT و موارد دیگر ایجاد کرده است. blockchain هنگام ساختن برنامه های غیر متمرکز بسیار مهم است زیرا امنیت و یکپارچگی داده ها را تضمین می کند ، و اعتماد به نفس در کاربران ایجاد می شود.

Cryptocurrency یک ارز مجازی است که با استفاده از تکنیک های رمزنگاری شده است. رمزنگاری امنیت و یکپارچگی ارز را تضمین می کند. در این آموزش ، ما می آموزیم که چگونه یک cryptocurrency را با استفاده از node. js ، یک موتور زمان اجرا سرور JavaScript ایجاد کنیم.

Node. js یک محیط باکتری JavaScript است که کد JavaScript را در خارج از مرورگر اجرا می کند. در این مقاله ، ما با ایجاد یک رمزنگاری ساده ، توسعه دهندگان Node. js را به فضای blockchain معرفی خواهیم کرد. بیا شروع کنیم!

برای دنبال کردن این مقاله ، به شما نیاز دارید:

  • node. js روی رایانه شما نصب شده است
  • درک اساسی از node. js
  • درک اساسی از فناوری blockchain
  • یک ویرایشگر کد

فهرست مطالب

  • خواص یک بلوک
  • نصب وابستگی ها
  • ایجاد اولین بلوک ما
  • ایجاد blockchain

خواص یک بلوک

پیش از این ، ما اشاره کردیم که blockchain از چندین بلوک تشکیل شده است. بیایید بررسی کنیم که خصوصیات هر بلوک چیست. هر بلوک در زنجیره از خواص زیر تشکیل شده است:

  • اثبات کار: میزان تلاش محاسباتی لازم برای بدست آوردن هش بلوک
  • بلوک هش: شناسه بلوک حاصل از محاسبه رمزنگاری
  • Timestamp: زمانی که بلوک ایجاد شد
  • فهرست: موقعیت بلوک در زنجیره
  • داده های ضبط شده در blockchain
  • هش بلوک قبلی

نصب وابستگی ها

از آنجا که ما در حال ساختن یک رمزنگاری با node. js هستیم ، ابتدا باید بسته javaScript crypto. js را در پوشه پروژه خود نصب کنیم. یک پوشه ایجاد کرده و آن را NodeJScrypto ، همانطور که در شکل زیر نشان داده شده است ، نامگذاری کنید:

Install JavaScript Crypto Package

برای نصب بسته ، دستور زیر را در ترمینال خود اجرا کنید:

// ایجاد یک پرونده PACKS. JSON NPM INI T-Y // نصب Crypto-js NPM NPM نصب Crypto-js

ما برای این پروژه از یک فایل واحد استفاده خواهیم کرد. یک پرونده در پوشه پروژه به نام nodejscoin. js ایجاد کنید ، همانطور که در تصویر بالا نشان داده شده است.

ایجاد اولین بلوک ما

اکنون که ساختار پروژه خود را با بسته بندی خود نصب کرده ایم ، اجازه دهید اولین بلوک ما را ایجاد کرده و متعاقباً رمزنگاری خود را بسازیم. پیش بروید و خطوط زیر کد را در پرونده nodejscoin. js کپی کنید:

// وارد کردن آن الگوریتم هش ایمن از بسته Crypto-JS const Sha256 = نیاز ("Crypto-JS/Sha256") ؛// یک کلاس JavaScript ایجاد کنید تا یک بلوک کلاس بلوک را نشان دهدGETEDEHASH ()>

اول ، من الگوریتم هش ایمن (SHA256) را از بسته Crypto-JS وارد کردم ، که به ما کمک می کند تا شناسه هش بلوک خود را رمزگذاری کنیم. سپس ، من یک کلاس بلوک JavaScript ایجاد کردم تا یک الگوی برای هر بلوک موجود در زنجیره را نشان دهم.

همانطور که با JavaScript و سایر زبانهای برنامه نویسی شی گرا مانند جاوا ، هر زمان که یک کلاس ایجاد شود ، یک روش سازنده به طور پیش فرض خوانده می شود. هر زمان که شیء بلوک با استفاده از کلمه کلیدی جدید خوانده شود ، ما با روش سازنده تماس می گیریم و پارامترهای مورد نیاز برای ایجاد یک بلوک جدید را منتقل می کنیم.

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

ایجاد blockchain

blockchain سیستمی برای ضبط مجموعه ای از داده ها به روشی شبیه به زنجیره ای ، افزایش یکپارچگی داده ها ، کاهش آسیب پذیری ها و هک شدن داده ها تقریباً غیرممکن است.

به طور خاص ، یک blockchain یک بانک اطلاعاتی توزیع شده است که معاملات را در گروه های معروف به بلوک ذخیره می کند. بیایید یک کلاس blockchain ایجاد کنیم که زنجیره بلوک ها را مدیریت کند:

محوطه کلاسCreateGenesisBlock ()getTheLatestBlock ()AddNewBlock (NewBlock)// آزمایش یکپارچگی زنجیره stalentatechainintegrity ()retu true;>>>

از قطعه کد در بالا ، ما یک کلاس ، blockchain ایجاد کردیم و از روش سازنده بدون آرگومان ، یک سازنده بدون پارامترها یا آرگومان ها استفاده کردیم. در بلوک سازنده ، ما یک آرایه حاوی روشی اختصاص داده ایم که بلوک پیدایش را ایجاد می کند ، CreateGenesisBlock (). بلوک پیدایش بلوک اولیه در یک blockchain است که می توانید بلوک های دیگر را به آن پیوند دهید. همچنین می توانید به بلوک پیدایش به عنوان بلوک اجداد مراجعه کنید.

بیش از 200K توسعه دهندگان برای ایجاد تجربیات دیجیتالی بهتر از Logrocket استفاده می کنند

بیشتر بدانید

هر بلوکی که در blockchain ایجاد شده است همیشه به بلوک قبلی روی زنجیره اشاره می کند. اما بلوک پیدایش هیچ مرجعی ندارد ، بنابراین ما باید خواص آن را در روش CreateGenesisBlock () سخت کنیم. توجه کنید که چگونه من کلمه کلیدی جدید را در سازنده بلوک صدا کردم و آرگومان های لازم را برای ایجاد یک بلوک منتقل کردم:

  • فهرست: 0
  • Timestamp: 11/04/2022
  • داده ها: اولین بلوک روی زنجیره
  • هش: 0

روش GetTheLastBlock () آخرین بلوک موجود در blockchain را برمی گرداند و به ما کمک می کند تا جریان و هش قبلی را روی blockchain پیگیری کنیم.

روش بعدی روش AddNewBlock () است که پارامتر به نام NewBlock را می گیرد. در بدنه روش ، هش آخرین بلوک موجود در زنجیره برابر با هش قبلی بلوک جدید است. در خط بعدی ، من از GenerateHash () برای محاسبه هش بلوک جدید استفاده کردم و سرانجام بلوک جدید را روی blockchain فشار دادم که مجموعه ای از بلوک ها است.

روش ValidateChainIntegrity () اعتبار زنجیره را بررسی می کند. یکی از ویژگی های اصلی blockchain این است که برگشت ناپذیر است. اگر هرگونه اطلاعاتی در مورد بلوک موجود در blockchain با آن دستکاری شود ، یکپارچگی blockchain تحت تأثیر قرار می گیرد. روش ValidateChainIntegrity () به ما کمک می کند تا یکپارچگی blockchain را بررسی کنیم.

ما چک خود را در شاخص یک (1) شروع کردیم ، در حالی که blockchain ما در index صفر (0) با بلوک پیدایش شروع شد ، که به سختی کدگذاری شده بود. در این روش ، ما از طریق blockchain حلقه می کنیم و با بررسی اینکه آیا هش بین دو بلوک متوالی به یکدیگر اشاره می کنند ، اعتبار هر بلوک را بررسی می کنیم.

یک نمونه برای آزمایش blockchain ما ایجاد کنید

اکنون ، ما نمونه ای از blockchain ، سکه ما را ایجاد خواهیم کرد ، که من آن را Logcoin می نامم. شما می توانید به هر نام خود بدهید. کد زیر را بنویسید:

اجازه دهید logcoin = blockchain جدید () ؛Console. log ("معدن logcoin در حال انجام است.") ؛logcoin. addnewblock (بلوک جدید (1 ، "06/04/2022" ،)) ؛logcoin. addnewblock (بلوک جدید (2 ، "08/08/2022" ،)) ؛logcoin. addnewblock (بلوک جدید (3 ، "13/08/2022" ،)) ؛console. log (json. stringify (logcoin ، null ، 5))

اکنون کد را با دستور زیر در ترمینال اجرا کنید:

گره گره

خروجی باید چیزی شبیه به تصویر زیر باشد:

Create Logcoin Output

در قطعه های کد بالا ، نمونه ای از کلاس blockchain را ایجاد کردیم که با آن می توانیم از روش addnewblock () تماس بگیریم یا از آن استفاده کنیم. به یاد داشته باشید که روش addnewblock () استدلال می کند ، بنابراین ما یک بلوک جدید را با فهرست ، timestamp و داده ها به عنوان اشیاء که حاوی اطلاعات زیر است ، عبور دادیم: فرستنده ، گیرنده و کمیت.

سرانجام ، ما با استفاده از javascript console. log () خروجی را چاپ کردیم و خروجی را به یک فایل JSON با روش json. stringify () تبدیل کردیم ، که در این مورد سه آرگومان می گیرد:

  • مقدار = logcoin: مقداری که ما به JSON تبدیل می کنیم
  • جایگزین = null: برای به دست آوردن تمام خصوصیات آرایه blockchain تنظیم کنید
  • فضا = 5: فضای بین هر شیء را روی آرایه ایجاد می کند و باعث می شود که خروجی حاصل قابل خواندن باشد

ما با موفقیت cryptocurrency اساسی خود به نام logcoin ایجاد کرده ایم. کد کامل در زیر آمده است:

const sha256 = نیاز ("crypto-js/sha256") ؛// یک کلاس JavaScript ایجاد کنید تا یک بلوک کلاس بلوک را نشان دهدGETEDEHASH ()>محوطه کلاسCreateGenesisBlock ()getTheLatestBlock ()AddNewBlock (NewBlock)// آزمایش یکپارچگی زنجیره stalentatechainintegrity ()retu true;>>>اجازه دهید logcoin = blockchain جدید () ؛Console. log ("معدن logcoin در حال انجام است.") ؛logcoin. addnewblock (بلوک جدید (1 ، "06/04/2022" ،)) ؛logcoin. addnewblock (بلوک جدید (2 ، "08/08/2022" ،)) ؛logcoin. addnewblock (بلوک جدید (3 ، "13/08/2022" ،)) ؛console. log (json. stringify (logcoin ، null ، 5))

نتیجه

با این کار ، ما با موفقیت cryptocurrency ساده خود را با استفاده از node. js. ساختیم. در این آموزش ، ما مفاهیم اساسی blockchain را آموختیم ، نحوه توسعه یک بلوک را نشان دادیم و سرانجام رمزنگاری خودمان را در blockchain توسعه دادیم.

اگرچه logcoin سکه ما با استاندارد بازار cryptocurrency مطابقت ندارد ، ما از این آموزش دانش بنیادی مورد نیاز برای شروع به عنوان توسعه دهنده blockchain را بدست آورده ایم. امیدوارم از این مقاله لذت برده باشید و در صورت داشتن هر گونه سؤال ، حتما نظر خود را ترک کنید.

فقط 200Monitor failed and slow network requests in production

LogRocket Network Request Monitoring

استقرار یک برنامه وب یا وب سایت مبتنی بر گره بخش آسان است. اطمینان از اینکه نمونه گره شما همچنان به منابع برنامه شما ادامه می دهد ، جایی است که همه چیز سخت تر می شود. اگر علاقه مند به اطمینان از درخواست های مربوط به خدمات پس زمینه یا شخص ثالث هستید ، Logrocket را امتحان کنید. https://logrocket.com/signup/

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

به سازمان هایی مانند Bitso و Coinsquare بپیوندید که از Logrocket برای نظارت بر برنامه های Web3 خود استفاده می کنند

LogRocket Dashboard Free Trial Banner

مسائل مربوط به سمت مشتری که بر توانایی کاربران در فعال سازی و معامله در برنامه های شما تأثیر می گذارد ، می تواند به طور چشمگیری بر خط اصلی شما تأثیر بگذارد. اگر علاقه مند به نظارت بر مشکلات UX هستید ، به طور خودکار خطاهای JavaScript را ردیابی می کنید ، و درخواست های شبکه آهسته و زمان بارگذاری مؤلفه را ردیابی می کنید ، logrocket. https: //logrocket.com/signup/ را امتحان کنید.

Logrocket مانند DVR برای برنامه های وب و تلفن همراه است و هر آنچه را که در برنامه وب یا سایت شما اتفاق می افتد ، ضبط می کند. به جای حدس زدن چرا مشکلات ، می توانید در مورد معیارهای کلیدی عملکرد جلو ، جمع آوری و گزارش مجدد جلسات کاربر به همراه وضعیت برنامه ، درخواست های شبکه ورود به سیستم و به طور خودکار همه خطاها را پخش کنید.

نحوه اشکال زدایی برنامه های وب و تلفن همراه را مدرن کنید - نظارت را به صورت رایگان شروع کنید.

Logrocket برنامه خود را برای ضبط زمان بندی عملکرد پایه مانند زمان بارگذاری صفحه ، زمان بایت اول ، درخواست های آهسته شبکه و همچنین Redux ، NGRX و Action/State Vuex ثبت می کند. نظارت را به صورت رایگان شروع کنید.

این را به اشتراک بگذارید:

Frank Joseph دنبال می کنم من یک مهندس نرم افزار نوآورانه و نویسنده فنی علاقه مند به جامعه توسعه دهنده هستم. من علاقه مند به ساخت برنامه هایی هستم که در اینترنت اجرا می شوند.

نرم افزار مفید تریدر...
ما را در سایت نرم افزار مفید تریدر دنبال می کنید

برچسب : نویسنده : احمد شاملو بازدید : 52 تاريخ : يکشنبه 27 فروردين 1402 ساعت: 13:01