آموزش برنامه نویسی بلاکچین با php

برنامه نویسی بلاکچین با php
بازدید 44
۲۳

برنامه نویسی بلاکچین با php ، در مقاله زیر قصد داریم درباره برنامه نویسی بلاکچین با زبان php  با شما سخن بگوییم . برای این کار نیاز است ابتدا شما دانش php  را تا حدودی داشته باشید همچنین برای اینکار شما با ساختار بلاکچین آشنایی اشته باشید . پس در ابتدا ما درباره ساختار بلاکچین با شما سخن می گوییم . سپس به شما آموزش می دهیم که چگونه دیتایی را از بلاکچین بخوانید و همچنین چگونه داده ای را در بلاکچین بنویسید .

لیست عناوینی که در این مقاله برای شما زوم ارزی عزیز آماده کرده ایم:

نگاهی به ساختار بلاکچین

در ابتا باید بگویم بلاکچین یک سیستم برای ذخیره اطلاعات است . دقیقا مانند یک دیتا بیس است. اما تفاوت اصلی بلاکچین با دیتابیس این است که اطلاعات ذخیره شده میان همه اعضای یک شبکه به اشتراک گذاشته می شود .

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

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

حال به سراغ برنامه نویسی میرویم . ما در این قسمت از json  بنیز استفاده می کنیم.همانطور که در بالا گفته شد ما در این مطلب سه گام را به شما آموزش می دهیم .

  1. ساخت یک بلاک چین
  2. خواندن از یک بلاکچین
  3. نوشتن در بلاکچین

آموزش ساخت یک بلاکچین با زبان php

ابتدا نیاز است به ساخت اولین بلوک بپردازیم و داخل بلوک خود یک فایل جدید بنام block1 ایجاد می کنیم .برای ایجاد فایل از کد زیر استفاده می کنیم .

blockchain php 1 zoomarz

حال می خواهیم خطوط کد بالا را برای شما شرح دهیم .

index : منظور از index  یک id  است که هر بار یک عدد به آن اضافه می شه . و اصولا از صفر شروع می شود .

hashid : همانطور که در بالا بیان شد ما به بلاک اول هیچ هشی اختصاص نمی دهیم . چون بلاک اول هیچ بلوکی قبل از خود ندارد که بخواهد هش آن را بردارد. اصطلاحا به بلاک اول جنسیس گفته می شود .

Timestamp: اگر شما تا حدی با برنامه نویسی آشنایی داشته باشید . متوجه می شوید که از Timestamp برای نگهداری تاریخ و ساعت استفاده می شود . پس قائدتا در اینجا نیز برای ذخیره تاریخ  زمان ایجاد هر بلوک نیز از این متغیر استفاده می کنیم .

Proof-of-work : الگوریتم pow یا همان proof of stack  یک الگوریتم اجماع است ، که اصطلاحا به آن اثبات کار نیز می گویند که در این روش برای تایید تراکنش ها از pow استفاده می شود .که برای ارز هایی استفاده می شود که می توانیم آنها را استخراج کنیم . ما در بحث رمز ارز ها می توانیم از الگوریتم های متفاوتی مانند pos  نیز استفاده کینم . که هر کدام ساختار خود را دارند .

شایان ذکر است که بگوییم کوین هایی که از الگوریتم pow  استفاده می کنند . قابلیت استخراج نیز دارند .

Content : در این قسمت ما موارد ساختار یافته ای را وارد می کنیم مثلا ما در این محتوا اطلاعات یک تراکنش را وارد کردیم که مثلا از یک ارسال کننده به یک گیرنده به تعداد x  ارز ارسال شده است .مثلا در کد بالا گفتیم که از زوم ارز به علی تعداد ۱ ارز ارسال شده است .

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


خواندن اطلاعات از بلاکچین با زبان php

در بالا ما ساختار یک بلاکچین را در ساده ترین حالت نوشتیم. حال نیاز داریم کمی به دانش شی گرایی برای این کارنیاز داریم یک کلاس تعریف کنیم بنام DAO  سپس داخل آن ۳ تابع را تعریف کنیم که کارهای زیر را انجام دهند .

  1. خواندن بلاکچین
  2. خواندن داده‌هایی در مورد آخرین بلوک در بلاکچین
  3. محاسبه هش بلوک که از سوی یک بلوک استفاده می‌شود و درج آن در بلاکچین

توضیح تایع خواندن بلاکچین :

برای این کار نام تابع read_all()  قرار دادیم .در این تابع قصد دارد کل بلاکچین را بخواند و نتیجه را در یک آرایه چند بعدی قرار دهد .جهت انجام این کار کد ها را برای بالا بردن اطمینان داخل try – catch  نوشتیم .کد را داخل این دستورات قرار دادیم تا در صورت خطا کد داخل catch  مشخص شود و ما از خطا موجود با خبر شویم . کد های اصلی داخلی دستور try  قرار گرفتن .

شرح کد بر این اساس است که با استفاده از دستور (file_get_contents) محتوای فایل خوانده می شود .چون فایل که در بالا نوشتیم ساختار json  داشت ، پس باید از طریق کد (json_decode) فایل را دی کد کنیم .و در نهایت در یک متغیر $arr_data  ریخته شده است و در نهایت بر گردونده محتویات داخل آرایه را .

حال می رویم سراغ اینکه بتوانیم داده های بلاک آخر را بخوانیم . دو مقداری که برای ما بسیار مهم است ایندکس بلاک قبل و همچنین هش بلاک قبل . که برای اینکار از دو تابع زیر استفاده می کنیم ( () get_previous_hashid  و ()get_previous_index )

سپس با استفاده از  تابع ( function get_new_hashid ) هش آی دی بلاک جدید را محاسبه می کنیم .ما در این کد برای رمز نگاری از الگوریتم SHA-256  استفاده می کنیم .و این هش ای دی از طریق ۴ رشته زی محاسبه می شود :

  1. hashid بلوک قبل
  2. timestamp
  3. index
  4.  و محتوای داخل بلاک

ودر نهایت از یک تابع استفاده کردیم به نام (read_content) با استفاده از این تابع قصد داریم محتوای یک بلوک را رمز گشایی کند سپس دیتا را در یک آرایه قرار دهد.

blockchain php 7 zoomarzblockchain php 8 zoomarzblockchain php 9 zoomarz

آموزش نوشتن در یک بلوک جدید:

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

blockchain php 2 zoomarz

حال نیاز داریم که هش بلاک قبلی را بخوانیم . سپس باید بخوانیم ایندکس آخرین بلاک را و محاسیه کنیم ایندکس بلاک جدید را . برای محاسبه هم نیاز است که ایندکس بلاک قبلی را با عدد ۱ جمع کنیم.

blockchain php 3 zoomarz

حال ما توانستیم مشخصات مربوط به بلوک جدید را محاسبه کنیم .سپس نیاز است بتوانیم  hashid جدید را محاسبه کنیم.و برای اینکار نیاز به ۴ متغیر داریم که این متغیر ها به شرح زیر است .

($previous_hashid,$next_index,$timestamp,$content)

ما در باره تک تک متغیر ها ر بالا شرح دهیم .

blockchain php 4 zoomarz

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

blockchain php 5 zoomarz

شما می توانید کل کد را از داخل گیت هاب بردارید و برای تست نهایی از آن کد ها استفاده نماید.


سخن پایانی برنامه نویسی بلاکچین با php

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

ممنون از اینکه تا پایان ” برنامه نویسی بلاکچین با php ” همراه ما بودید.

منبع : زوم ارز

لینک مطلب : http://bit.do/fLYhk


بیشتر بخوانید

اشتراک گذاری

نوشته شده توسط:

عاطفه قاضی حصاری

دکتری معماری کامپیوتر | مولف کتاب آموزش و پرورش | مدرس دانشگاه | محقق و پژوهشگر در زمینه های ارزهای دیجیتال و بلاک چین

نظرات کاربران

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
23 نظرات خود را ثبت نمایید
تازه‌ترین
قدیمی‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
رامتین
3 سال قبل

برای یادگیری برنامه نویسی بلاکچین با php باید دانش پایه ای چه چیزهایی را داشته باشیم؟

جواد
3 سال قبل

آیا یادگیری برنامه نویسی بلاکچین php می توان یک کوین یا توکن ایجاد کرد

حمیدرضا
پاسخ به  جواد
2 سال قبل

اره داخل منابع خارجی مطالب و ویدیو های زیادی در این باره هست

سیامک
3 سال قبل

چگونه می توانم یک مرجع خوب جهت یاد گیری برنامه نویسی بلاکچین با php پیدا کنم

ثمین
3 سال قبل

تفاوت برنامه نویسی بلاکچین از طریق زبان php با برنامه نویسی بلاکچین از طریق پایتون مبیت و کدامیک سرعت عمل بیشتری باحلا است؟

حمید
3 سال قبل

جهت برنامه نویسی بلاکچین میشه از زبان غیر از php استفاده کرد؟

حمیدرضا
3 سال قبل

لطفا آموزش برنامه نویسی بلاکچین با php را در سایت خود قرار دهید؟

نسترن
3 سال قبل

برنامه نویسی بلاکچین را از کجا یادبگیرم؟

تیم محتوا
پاسخ به  نسترن
3 سال قبل

مقاله های آموزش برنامه نویسی مارا دنبال کنید

ناصر
3 سال قبل

برنامه نویسی بلاک چین با php منطقی تراست یا با یایتون

تیم محتوا
پاسخ به  ناصر
3 سال قبل

پایتون

رامین
3 سال قبل

منظور از برنامه نویسی بلاک چین چیه؟

متین
3 سال قبل

برنامه نویسی php از چه محیطی استفاده کنم؟

تیم محتوا
پاسخ به  متین
3 سال قبل

Sublime
Phpstorm
البته از notepad هم میشود استفاده کرد

حمید
3 سال قبل

برنامه نویسی php برای بلاکچین منطقی است؟

تیم محتوا
پاسخ به  حمید
3 سال قبل

زبان های برنامه نویسی قدرتمندتری مانند پایتون نیز هستند که برای برنامه نویسی بلاکچین استفاده می شود اما هدف از این مقاله آموزش برنامه نویسی با php بوده چراکه افراد زیادی علاقمند به یادگیری این اموزش هستند

حمیدرضا
پاسخ به  حمید
2 سال قبل

بله, بسیاری از پروژه هایی که بر پایه بلاکچین هستن با PHP نوشته شدن. حتی خیلی از صرافی های انلاین ارز دیجیتال هم برپایه PHP هستن که کیف پئل بلاکچین شون با PHP نوشته شده

سیامک
3 سال قبل

برنامه نویسی بلاک چین ساده است یا سخت؟

تیم محتوا
پاسخ به  سیامک
3 سال قبل

نیازمند دانش برنامه نویسی پایه هست

اسماعیل
پاسخ به  تیم محتوا
2 سال قبل

سلام یه سوالمن قبلا برنامه نوسی انجام میدادم الان میخوام یه فیلتر برای ارز های دیجیتال درست کنم امکان داره کتاب یا سایت هست کمک کنه

جواد
3 سال قبل

ممنون از مطلب کامل شما

مهدی
3 سال قبل

با پایتون هم می توان به برنامه نویسی بلاک چین ورود پیدا کرد؟

تیم محتوا
پاسخ به  مهدی
3 سال قبل

بله