آربیتراژ گیری تحلیل کاربران مقایسه صرافی ها قیمت ارزها اخبار
لایت فارکس

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

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

برنامه نویسی بلاکچین با 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


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

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

23 دیدگاه دربارهٔ «آموزش برنامه نویسی بلاکچین با php;

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

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

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

      پاسخ

دیدگاهتان را بنویسید

آخرین مقالات منتشر شده