که موږ د تیرو څو کلونو رجحاناتو ته وګورو، موږ هر وخت د بلاکچین په اړه اوریدلي، مګر د ځانګړتیاوو په اړه ډیر څه ندي.
موږ ټول پوهیږو چې کریپټو کرنسیونه لکه Bitcoin، Ethereum، Dogecoin، Matic، او نور د بلاکچین ټیکنالوژۍ باندې تکیه کوي. بلاکچین د پام وړ پیښو مشري وکړه چې په 2021 کې یې ډیری صنعتونو کې انقلاب راوست او د نوي لاسته راوړنو لپاره یې لاره هواره کړه.
بلاکچین په داسې طریقه د معلوماتو ذخیره کولو وسیله ده چې ترمیم کول، هیک کول یا غلا کول سخت یا ناممکن دي. دا د راکړې ورکړې ډیجیټل لیجر دی چې نقل شوي او د بلاکچین د کمپیوټر سیسټمونو ټولې شبکې ته خپریږي.
دا د ځمکې ماتونکي ډیټابیس ټیکنالوژي ده چې په عملي ډول ټول کریپټو اسعارو ځواک ورکوي. بلاکچین په ټوله شبکه کې د ډیټابیس د ورته کاپيونو په خپرولو سره د سیسټم هیک کول یا غلا کول خورا خورا ستونزمن کوي.
پداسې حال کې چې Bitcoin اوس د بلاکچین لپاره خورا مشهور کار دی، ټیکنالوژي کولی شي د غوښتنلیکونو خورا پراخه ډول خدمت وکړي.
کریپټو کرنسی او بلاکچینز په وروستیو کلونو کې په زیاتیدونکي توګه مشهور شوي، او تمه کیږي چې دا رجحان دوام ومومي.
موږ به په دې ټیوټوریل کې د جاواسکریپټ سره یو ساده بلاکچین جوړ کړو. دا به تاسو ته لومړني پوهه درکړي چې څنګه بلاکچین کار کوي.
راځئ چې دې ته MelodyCoin ووایو او په عمل کې سم اوسئ!
د بلاک جوړول
د پیل کولو لپاره، موږ به یو نوی جاوا سکریپټ فایل جوړ کړو چې موږ به خپل ټول کوډ ځای په ځای کړو.
راځئ چې دې ته main.js ووایو او د دې توضیح سره پیل وکړو چې بلاکچین او بلاکونه باید څنګه ښکاري.
د بلاک ټولګي جوړ کړئ او د پیل کولو لپاره ورته یو فنکشن Object() { [اصلي کوډ] } ورکړئ.
تاسو باید یو نیټه ورکړئ، او د پخوانی بلاک هش کله چې یو نوی بلاک جوړ کړئ:
دلته د هر ملکیت لپاره تعریفونه دي:
- مهال ویش ښیي کله چې بلاک جوړ شوی و. تاسو کولی شئ هر هغه فارمیټ وکاروئ چې تاسو یې غوره کوئ (په دې حالت کې، د یونیکس مهال ویش).
- د ډیټا هر ډول ډول چې تاسو غواړئ د دې بلاک سره وصل شئ د ډیټا پیرامیټر کې شامل کیدی شي. که تاسو غواړئ یو کریپټو کارنسي رامینځته کړئ ، تاسو کولی شئ د لیږد ډیټا لکه لیږونکی / ترلاسه کونکی او د لیږدول شوي پیسو مقدار دلته وساتئ.
- پخوانی هش یو تار دی چې د مخکیني بلاک هش لري. دا هغه څه دي چې د بلاکونو سلسله به رامینځته کړي ، کوم چې به وروسته زموږ د بلاکچین بشپړتیا چمتو کولو کې مهم وي.
د Hashes جوړول
هر بلاک د مخکیني بلاک سره اړیکه لري (په دې توګه د پخوانی هش ملکیت). دا دی، هر بلاک یو هش ته اړتیا لري. هش د ګوتو نښان ته ورته دی. دا د هر بلاک لپاره جلا دی.
د بلاک هش د هش فنکشن له لارې د هغې ټول مینځپانګې په تیریدو سره محاسبه کیدی شي.
نو، راځئ چې د یو فنکشن په پلي کولو سره پیل وکړو چې د اوسني بلاک هش محاسبه کوي.
نو، د بلاک ټولګي لاندې، موږ د حساب هش فنکشن تعریف کوو:
په هرصورت، د SHA256 هش د جاوا سکریپټ لخوا نه ملاتړ کیږي او باید د بهرني کتابتون څخه ترلاسه شي.
Crypto-js یو په زړه پوری کڅوړه ده چې پکې د څو هش الګوریتم خوندي پلي کول شامل دي.
بیا موږ کولی شو دا زموږ main.js کوډ کې وارد کړو.
اوس چې موږ خپل calculateHash() فنکشن لرو، راځئ چې دا زموږ د بلاک په فنکشن کې وکاروو:
د دې تشریح کولو وروسته چې بلاک څه ډول ښکاري، موږ کولی شو تعریف کړو چې بلاکچین باید څه ډول ښکاري. نو راځئ چې یو نوی ټولګي جوړ کړو.
پدې سناریو کې ، بلاکچین یو خورا ساده څیز دی چې د ملکیت سلسله لري. دا یو صف دی چې په زنځیر کې ټول بلاکونه لري.
مخکې لدې چې موږ بلاکونه اضافه کړو ، موږ باید لومړی هغه څه رامینځته کړو چې د "جنیسس بلاک" په نوم پیژندل کیږي. دا په سلسله کې لومړی بلاک دی، او دا ځانګړی دی چې دا نشي کولی پخوانی بلاک ته اشاره وکړي (دا لومړی دی!).
نو، د جینیسس بلاک د جوړولو لپاره، زه به زموږ په ټولګي کې د createGenesisBlock () په نوم یو فنکشن اضافه کړم. بیرته زموږ د بلاکچین ټولګي Object() { [اصلي کوډ] } فنکشن کې.
موږ اوس کولی شو د جینیس بلاک شامل کړو هرکله چې موږ نوی بلاکچین مثال جوړ کړو:
د بلاکچین میتودونه
اوس، راځئ چې زموږ د بلاکچین ټولګي کې میتودونه اضافه کړو چې موږ ته اجازه راکوي هغه شیان ترسره کړو لکه نوي بلاکونه اضافه کړئ او خورا وروستي بلاک ترلاسه کړئ.
د getLatestBlock فنکشن خورا بنسټیز دی. دا په ساده ډول د سلسلې لړۍ وروستی غړی بیرته راګرځوي:
د AddBlock تخنیک یو څه ډیر ښکیل دی.
مخکې لدې چې موږ خپل زنځیر ته نوی بلاک اضافه کړو ، موږ باید لومړی د دې بلاک پخوانی هش ساحه په مناسب ډول تنظیم کړو.
دا باید زموږ په زنځیر کې د وروستي اضافه شوي بلاک هش ته تنظیم شي. موږ د نوي بلاک هش محاسبه کولو ته هم اړتیا لرو:
د آزموینې
راځئ وګورو چې زموږ MelodyCoin څنګه راغلی دی.
د دې ترسره کولو لپاره د بلاکچین مثال رامینځته کړئ. راځئ چې یو څو نور بلاکونه اضافه کړو:
موږ هلته دوه نوي بلاکونه جوړ کړي دي. راځئ چې وګورو چې زموږ بلاکچین اوس مهال څنګه ښکاري.
MelodyCoin به د څلورو ځایونو سره سټینګ او فارمیټ شي:
د بلاکچین بشپړتیا تایید کړئ
بلاکچینونه په زړه پوري دي ځکه چې یوځل یو بلاک اضافه شو ، دا د سلسلې پاتې برخې باطلولو پرته نشي بدلیدلی.
په هرصورت، زما لپاره هیڅ طریقه شتون نلري چې د دې پلي کولو سره زموږ د بلاکچین بشپړتیا وګورئ.
راځئ چې زموږ بلاکچین ته isChainValid فنکشن معرفي کړو. که سلسله مشروع وي، دا به ریښتیا راشي؛ که نه نو، دا به غلط بیرته راستانه شي:
د بشپړتیا ازموینه
موږ اوس کولی شو زموږ د بلاکچین بشپړتیا ازموینې ته وسپارو. که موږ دا اوس اجرا کړو، دا به تایید کړي چې زموږ سلسله ریښتینې ده.
راځئ چې اوس هڅه وکړو چې زموږ د بلاکچین سره لاسوهنه وکړو. راځئ چې بلاک 2 بدل کړو او د هغې مینځپانګه یې له سره ولیکو (راځئ فرض کړئ چې موږ د څلورو پر ځای 100 سکې لیږدولي).
کله چې موږ دا اجرا کړو، موږ ګورو چې سافټویر زموږ هڅه پیژني چې د زنځیر سره لاسوهنه وکړي.
په هرصورت، تاسو باور کولی شئ چې زما لپاره د دې سره د مداخلې لپاره بله طریقه شتون لري. ما په بلاک کې مینځپانګې بدلې کړې مګر د هش له سره حساب نه کوي. نو تاسو کولی شئ هڅه وکړئ هوښیار اوسئ او د ورته بلاک هش بیا محاسبه کړئ.
دا ټول زموږ د کوچني بلاکچین تنظیم لپاره و! دا موږ ته وړتیا راکوي چې نوي بلاکونه اضافه کړو او په سلسله کې د معلوماتو سره لاسوهنه کشف کړو.
زموږ د کوچني بلاکچین سره دوه مسلې شتون لري چې موږ یې باید حل کړو:
- عصري کمپیوټرونه خورا ګړندي دي او کولی شي په ثانیو کې زموږ زنځیر ته زرګونه بلاکونه اضافه کړي. موږ په څرګنده توګه نه غواړو چې څوک زموږ بلاکچین سپیم کوي.
- زموږ بلاکچین لاهم د لاسوهنې لپاره زیان منونکی دی. تاسو کولی شئ د بلاک مینځپانګې تازه کړئ او بیا په ساده ډول د لاندې ټولو بلاکونو لپاره هشونه (او مخکیني هشونه) بیا محاسبه کړئ. حتی که تاسو ورسره ګډوډ شئ، نو تاسو به د مشروع سلسلې سره پای ته ورسیږئ.
د دې اندیښنو د حل لپاره، بلاکچین یو تخنیک کاروي چې د "کار ثبوت" په نوم پیژندل کیږي. تاسو باید وښایئ چې تاسو د دې طریقې په کارولو سره د بلاک رامینځته کولو لپاره د پام وړ کمپیوټري سرچینې کارولې. دا هم ویل کیږي د کانونو د.
د کار ثبوت دې ته اړتیا لري چې د بلاک هش د صفرونو ځانګړي مقدار سره پیل شي. مګر تاسو څنګه کولی شئ پوه شئ چې آیا ستاسو هش د دې مقرراتو سره سمون لري؟
د بلاک مینځپانګه د هغې هش ټاکي. نو موږ تل ورته هش ترلاسه کوو، په دې شرط چې موږ محتويات بدل نه کړو.
هر بلاک باید د حل په توګه ورته ارزښت اضافه کړي. دا په اصل کې ځینې تصادفي معلومات دي چې موږ کولی شو تازه کړو تر هغه چې زموږ د بلاک هش د کافي صفر سره پیل نشي. ځکه چې تاسو نشئ کولی د هش فنکشن محصول بدل کړئ ، تاسو باید ډیری مختلف ترکیبونه و ازموئ او د غوره لپاره امید ولرئ.
بلاکچین ته کان کیندنه معرفي کړئ
راځئ چې زموږ د بلاک په ټولګي کې د نانس په شاملولو سره پیل وکړو. نونس زموږ په بلاک کې یوازینی ارزښت دی چې موږ کولی شو د بلاک هش اغیزه کولو لپاره تعدیل کړو.
موږ نشو کولی د مهال ویش یا ډاټا بدل کړو.
بیا، راځئ چې د ماین بلاک () فنکشن ولیکئ چې د بلاک اصلي کان کیندنه به ترسره کړي. دا فنکشن به د اړتیا وړ مشکل د پیرامیټر په توګه واستول شي او اجرا کولو ته به دوام ورکړي تر هغه چې زموږ د بلاک هش د کافي صفر سره پیل نشي.
ما یوازې یو بنسټیز وخت لوپ جوړ کړی چې تر هغه پورې به روان وي چې زموږ هش د کافی صفر سره پیل شي. موږ د ستونزو څخه کار اخلو ترڅو معلومه کړو چې څومره صفر ته اړتیا ده. د 5 مشکل سره، زموږ هش باید د 5 صفر سره پیل شي.
کله چې زموږ هش په کافی اندازه صفرونه نه لري، نو موږ د یو له خوا نونس پورته کوو او هش بیا محاسبه کوو. او که موږ یو هش ومومو چې د ستونزې سره مطابقت لري، موږ یې کنسول ته ننوځو.
دلته یو بل شی دی چې موږ یې باید وکړو. موږ واقعیا زموږ د حساب هش میتود کې غیر متغیر په حساب کې نه اخلو ، نو دلته دا دی:
د بلاکچین ټولګي
راځئ چې دا نوې تګلاره زموږ د بلاکچین ټولګي کې ازموینې ته واچوو او وګورو چې دا څنګه پرمخ ځي.
د پیل کولو لپاره ، زه به زموږ د بلاکچین مشکل په فنکشن Object() کې تعریف کړم. موږ دا دلته تعریف کوو ځکه چې موږ کولی شو دا وروسته په بل ځای کې وکاروو.
د AddBlock فنکشن باید بیا داسې تعدیل شي چې دا زموږ په زنځیر کې د اضافه کولو دمخه بلاک کان کینوي.
د بلاکچین څخه کار واخلئ
اوس ، راځئ چې زموږ نوی بلاکچین د کار ثبوت الګوریتم سره کارولو لپاره وسپارو. دلته، یو څو console.log بیانونه اضافه کړئ.
کله چې موږ دا کوډ اجرا کړو، موږ لیدلی شو چې د کان کیندنې پروسه نور په ځانګړې توګه چټکه نه ده.
دا د الګوریتم لپاره یو څه وخت نیسي چې د هشونو سره بلاکونه رامینځته کړي چې د دریو صفرونو سره پیل کیږي (لکه څنګه چې د ستونزو لخوا تنظیم شوی).
نو دا زموږ د لومړني بلاکچین تنظیم پای و.
موږ کولی شو تنظیم کړو چې څومره ژر نوي بلاکونه زموږ په بلاکچین کې اضافه کیږي د ثبوت د کار میکانیزم څخه مننه.
دا په بلاکچینونو کې ترټولو مهم امنیتي خصوصیت دی. او اوس چې تاسو پوهیږئ چې دا څنګه کار کوي، خپل ځان جوړ کړئ!
یو ځواب ورکړئ ووځي