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

برنامه نویسی بلاکچین با php ، در مقاله زیر قصد داریم درباره برنامه نویسی بلاکچین با زبان php با شما سخن بگوییم . برای این کار نیاز است ابتدا شما دانش php را تا حدودی داشته باشید همچنین برای اینکار شما با ساختار بلاکچین آشنایی اشته باشید . پس در ابتدا ما درباره ساختار بلاکچین با شما سخن میگوییم . سپس به شما آموزش میدهیم که چگونه دیتایی را از بلاکچین بخوانید و همچنین چگونه داده ای را در بلاکچین بنویسید .
نگاهی به ساختار بلاکچین
در ابتا باید بگویم بلاکچین یک سیستم برای ذخیره اطلاعات است . دقیقا مانند یک دیتا بیس است. اما تفاوت اصلی بلاکچین با دیتابیس این است که اطلاعات ذخیره شده میان همه اعضای یک شبکه به اشتراک گذاشته میشود .
اگر بخواهیم درباره ساختار بلاکچین بگوییم ، باید بگوییم بلاکها در بلاکچین به صورت زنجیره وار به هم متصل هستند . که مجموعه ای از این زنجیرهها بلاکچین را تشکیل میدهند . همچنین شایان ذکر است که این بلاکها بری جلوگیری از تغییر اطلاعات ، دادههای آن رمز نگاری میشوند. که به این رمز نگاری هش میگویند . هر بلاک دارای یک هش است و هر بلاک هش بلاک قبل را در خود ذخیره میکند .البته نکته بسیار مهم این است که بلاک اول چون بلاک قبلی ندارد پس هش بلاک قبلی را نیز ندارد . و اصولا به بلاک اول جنسیس نیز میگویند .
باید در این قسمت این مطلب را بازگو کرد که با تغییر کوچک در هر بلاک حتما هش آن بلاک تغییر میکند در نتیجه با تغییر هش بلاک ، بلاکهای بعدی نیز بی اعتبار میشوند . البته میتوان دادههای داخل یک بلاک را بروزرسانی کرد . اگر اکثریت با آن موافق باشند .
حال به سراغ برنامه نویسی میرویم . ما در این قسمت از json بنیز استفاده میکنیم.همانطور که در بالا گفته شد ما در این مطلب سه گام را به شما آموزش میدهیم .
- ساخت یک بلاک چین
- خواندن از یک بلاکچین
- نوشتن در بلاکچین
آموزش ساخت یک بلاکچین با زبان php
ابتدا نیاز است به ساخت اولین بلوک بپردازیم و داخل بلوک خود یک فایل جدید بنام block1 ایجاد میکنیم .برای ایجاد فایل از کد زیر استفاده میکنیم .

حال میخواهیم خطوط کد بالا را برای شما شرح دهیم .
index : منظور از index یک id است که هر بار یک عدد به آن اضافه میشه . و اصولا از صفر شروع میشود .
hashid : همانطور که در بالا بیان شد ما به بلاک اول هیچ هشی اختصاص نمیدهیم . چون بلاک اول هیچ بلوکی قبل از خود ندارد که بخواهد هش آن را بردارد. اصطلاحا به بلاک اول جنسیس گفته میشود .
Timestamp: اگر شما تا حدی با برنامه نویسی آشنایی داشته باشید . متوجه میشوید که از Timestamp برای نگهداری تاریخ و ساعت استفاده میشود . پس قائدتا در اینجا نیز برای ذخیره تاریخ زمان ایجاد هر بلوک نیز از این متغیر استفاده میکنیم .
Proof-of-work : الگوریتم pow یا همان proof of stack یک الگوریتم اجماع است ، که اصطلاحا به آن اثبات کار نیز میگویند که در این روش برای تایید تراکنشها از pow استفاده میشود .که برای ارزهایی استفاده میشود که میتوانیم آنها را استخراج کنیم . ما در بحث رمز ارزها میتوانیم از الگوریتمهای متفاوتی مانند pos نیز استفاده کینم . که هر کدام ساختار خود را دارند .
شایان ذکر است که بگوییم کوینهایی که از الگوریتم pow استفاده میکنند . قابلیت استخراج نیز دارند .
Content : در این قسمت ما موارد ساختار یافته ای را وارد میکنیم مثلا ما در این محتوا اطلاعات یک تراکنش را وارد کردیم که مثلا از یک ارسال کننده به یک گیرنده به تعداد x ارز ارسال شده است .مثلا در کد بالا گفتیم که از زوم ارز به علی تعداد 1 ارز ارسال شده است .
حال در قسمت بالا شما با یک کد ساده آشنا شدید که بتوانید یک بلوک را ایجاد کنید و داخل آن یک فایل قرار دهید . در ادامه میخواهیم به شما بگوییم چگونه اطلاعات داخل فایل را میتوانید بخوانید .
خواندن اطلاعات از بلاکچین با زبان php
در بالا ما ساختار یک بلاکچین را در سادهترین حالت نوشتیم. حال نیاز داریم کمی به دانش شی گرایی برای این کارنیاز داریم یک کلاس تعریف کنیم بنام DAO سپس داخل آن 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 استفاده میکنیم .و این هش ای دی از طریق 4 رشته زی محاسبه میشود :
- hashid بلوک قبل
- timestamp
- index
- و محتوای داخل بلاک
ودر نهایت از یک تابع استفاده کردیم به نام (read_content) با استفاده از این تابع قصد داریم محتوای یک بلوک را رمز گشایی کند سپس دیتا را در یک آرایه قرار دهد.



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

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

حال ما توانستیم مشخصات مربوط به بلوک جدید را محاسبه کنیم .سپس نیاز است بتوانیم hashid جدید را محاسبه کنیم.و برای اینکار نیاز به 4 متغیر داریم که این متغیرها به شرح زیر است .
($previous_hashid,$next_index,$timestamp,$content)
ما در باره تک تک متغیرها ر بالا شرح دهیم .

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

شما میتوانید کل کد را از داخل گیت هاب بردارید و برای تست نهایی از آن کدها استفاده نماید.
سخن پایانی برنامه نویسی بلاکچین با php
ما در قسمت بالا به شما آموزش دادیم که چگونه میتوانید با زبان برنامه نویسی بلاکچین یک بلاک را در بلاکچین ایجاد کنید و همچنین اطلاعات آن بلاک را بخوانید و اطلاعاتی را در یک بلوک از بلاکچین بنویسید .صرفا برای مطالعه این مقاله نیاز بود یک اطلاعات اندکی دربارذه زبان برنامه نویسی بلاکچین و php داشتید .
ممنون از اینکه تا پایان ” برنامه نویسی بلاکچین با php ” همراه ما بودید.
منبع : زوم ارز
لینک مطلب : http://bit.do/fLYhk
بیشتر بخوانید
عاطفه قاضی حصاری
عاطفه قاضی حصاری دارای مدرک دکتری معماری کامپیوتر، مدرس دانشگاه، مؤلف حوزه آموزش و پژوهشگر فناوریهای بلاکچین و ارزهای دیجیتال است. فعالیت حرفهای او بر آموزش ساختارهای فنی بلاکچین، مفاهیم زیرساختی ارزهای دیجیتال، برنامه نویسی بلاکچین و تحلیل ساز و کار پروژههای رمزارزی متمرکز است.او در تولید محتوای تخصصی، رویکردی مبتنی بر تحلیل ساختاری، شفاف سازی مفاهیم پیچیده و تبیین ریسکهای فنی و سرمایه گذاری اتخاذ میکند. ترکیب دانش آکادمیک در حوزه معماری سیستمهای کامپیوتری با پژوهش در فناوریهای غیرمتمرکز، به او این امکان را داده است که مفاهیم فنی بلاکچین را به زبانی دقیق و در عین حال قابل فهم برای کاربران فارسی زبان ارائه کند.مقالات منتشر شده توسط عاطفه قاضی حصاری در زوم ارز شامل آموزش مفاهیم پایه و پیشرفته بلاکچین، معرفی و تحلیل پروژههای ارز دیجیتال، آموزش خرید و نگهداری داراییهای دیجیتال و بررسی ابزارهای تحلیلی بازار است. این محتواها در چارچوب استانداردهای تحریریه زوم ارز و با تأکید بر دقت علمی، بی طرفی و مسئولیت پذیری در حوزه محتوای مالی منتشر میشوند.محتوای تولید یا بررسی شده توسط ایشان صرفا با هدف آموزش و افزایش آگاهی کاربران ارائه میشود و توصیه سرمایه گذاری محسوب نمیشود.
برای یادگیری برنامه نویسی بلاکچین با php باید دانش پایه ای چه چیزهایی را داشته باشیم؟
آیا یادگیری برنامه نویسی بلاکچین php می توان یک کوین یا توکن ایجاد کرد
در پاسخ به جواد
اره داخل منابع خارجی مطالب و ویدیو های زیادی در این باره هست
چگونه می توانم یک مرجع خوب جهت یاد گیری برنامه نویسی بلاکچین با php پیدا کنم
تفاوت برنامه نویسی بلاکچین از طریق زبان php با برنامه نویسی بلاکچین از طریق پایتون مبیت و کدامیک سرعت عمل بیشتری باحلا است؟
جهت برنامه نویسی بلاکچین میشه از زبان غیر از php استفاده کرد؟
لطفا آموزش برنامه نویسی بلاکچین با php را در سایت خود قرار دهید؟
برنامه نویسی بلاکچین را از کجا یادبگیرم؟
در پاسخ به نسترن
مقاله های آموزش برنامه نویسی مارا دنبال کنید
برنامه نویسی بلاک چین با php منطقی تراست یا با یایتون
در پاسخ به ناصر
پایتون
منظور از برنامه نویسی بلاک چین چیه؟
برنامه نویسی php از چه محیطی استفاده کنم؟
در پاسخ به متین
Sublime
Phpstorm
البته از notepad هم میشود استفاده کرد
برنامه نویسی php برای بلاکچین منطقی است؟
در پاسخ به حمید
زبان های برنامه نویسی قدرتمندتری مانند پایتون نیز هستند که برای برنامه نویسی بلاکچین استفاده می شود اما هدف از این مقاله آموزش برنامه نویسی با php بوده چراکه افراد زیادی علاقمند به یادگیری این اموزش هستند
در پاسخ به حمید
بله, بسیاری از پروژه هایی که بر پایه بلاکچین هستن با PHP نوشته شدن. حتی خیلی از صرافی های انلاین ارز دیجیتال هم برپایه PHP هستن که کیف پئل بلاکچین شون با PHP نوشته شده
برنامه نویسی بلاک چین ساده است یا سخت؟
در پاسخ به سیامک
نیازمند دانش برنامه نویسی پایه هست
در پاسخ به تیم محتوا
سلام یه سوالمن قبلا برنامه نوسی انجام میدادم الان میخوام یه فیلتر برای ارز های دیجیتال درست کنم امکان داره کتاب یا سایت هست کمک کنه
ممنون از مطلب کامل شما
با پایتون هم می توان به برنامه نویسی بلاک چین ورود پیدا کرد؟
در پاسخ به مهدی
بله