در این مقاله و مقالات بعد از این ما ادغام Hyperledger Fabric با Spring Boot را بررسی خواهیم کرد. در این مقاله، به معرفی Spring Boot Hlf Starter، معرفی برنامه انتقال دارایی، مفهوم بلاک چین و Hyperledger Fabric خواهیم پرداخت.
در مقالات دیگر Asset Transfer را مورد بررسی قرار خواهیم داد. گام به گام اپلیکیشن و استقرار این اپلیکیشن در Kubernetes در مقالات بعدی Hyperledger explorer, grafana integration در Kubernetes را نیز توضیح خواهیم داد.
سایر مقالات در مورد ادغام Hyperledger Fabric با Spring Boot از لینک های زیر قابل دسترسی هستند.
قسمت 1 – مقدمه
قسمت 2 – راه اندازی خوشه Kubernetes
قسمت 4 – تولید گواهینامه ها و مصنوعات
اپلیکیشن (Asset Transfer)انتقال دارایی چیست؟
برنامه انتقال دارایی یک برنامه فول استک مبتنی بر بلاک چین است که به شما امکان می دهد با قرار دادن داده ها در دفتر کل و بازیابی آن دارایی ایجاد و انتقال دهید. قسمت زنجیره کد برنامه در Go نوشته شده است ، قسمت باطن با boot Spring نوشته می شود و قسمت frontend به زبان Angular نوشته شده است.
Spring Boot Hlf Starter چیست؟
کتابخانه Spring Boot Hlf Starter یک کتابخانه راهانداز است. این کتابخانه یک راه آسان برای راهاندازی سریع برنامه boot Spring شما با استفاده از Hyperledger Fabric Gateway SDK v2.2 را ارائه میکند.
Spring Native از کامپایل برنامه های Spring به فایل های اجرایی بومی با استفاده از کامپایلر مادری GraalVM پشتیبانی می کند.
بلاک چین چیست؟
این برنامه با کار استوارت هابر و اسکات استورنتتا ساخته شد که در دهه 1990 در مرحله توسعه رمزنگاری فناوری بلاک چین بودند. با شروع از مفهوم “درخت هش” که به نوعی در دهه 1970 طبقه بندی شد، دو متخصص توانسته اند به تعریف آن با بلاک چین مدرن به طور کامل نزدیک شوند.
اولین بلاک چین به قدمت بیت کوین، اولین ارز رمزنگاری شده در تاریخ است. زمانی که تقویمها 31 اکتبر 2008 را نشان دادند، وایت پیپر به نام «Bitcoin: Peer-to-Peer Electronic Cash System» که توسط شخص یا گروهی به نام ساتوشی ناکاموتو منتشر شد، بیان کرد که زیرساخت BTC کاملاً مبتنی بر فناوری بلاک چین است.
در صورت تمایل به آموزش برنامه نویسی بلاکچین، پکیج آموزش برنامه نویسی بلاکچین را ملاحظه نمایید.
بلاک چین چگونه کار می کند؟
بیت کوین از بلاک چین که حوزه کاری بسیار وسیعی دارد استفاده می شود.
مهمترین ویژگی های زیربنای اصل کار فناوری بلاک چین؛ ناشناس، توزیع شده، غیرمتمرکز و عمومی بودن آن است، در عین حال غیرقابل شکست و غیرقابل هک است. این واقعیت که یک زنجیره ثبت اطلاعات برای همه قابل دسترس و ناگسستنی است، باعث می شود همه، به ویژه دانشمندان کامپیوتر، با تحسین به این فناوری نزدیک شوند. یک منطق ساده پشت این واقعیت وجود دارد که رکوردها بلوکی غیرقابل شکست و تغییرناپذیر هستند: تمام بلوک های این رجیستری که میلیاردها نسخه دارد باید تغییر کنند تا بلاک ها خراب شوند. انجام چنین مداخله ای تقریبا غیرممکن است.
اتریوم چیست؟
اتریوم یک شبکه بلاک چین عمومی توزیع شده منبع باز است. این اجازه می دهد تا برنامه های غیرمتمرکز بر روی آن با کمک عملکرد قرارداد هوشمند ساخته شوند.
Vitalik Buterin اتریوم را به عنوان یک بسط مفهوم اصلی بلاک چین توسعه داد. او پروتکل های بیت کوین را برای پشتیبانی از برنامه های کاربردی فراتر از صدور ارز، ساخت. پیشرفت اصلی آن توانایی نوشتن و استقرار آسان قراردادهای هوشمند است. اینها در واقع بیت کدهایی هستند که در شبکه اجرا می شوند. از این رو، این پلتفرم می تواند به توسعه دهندگان کمک کند تا برنامه هایی برای ایجاد سازمان های غیرمتمرکز بنویسند.
Hyperledger Fabric چیست؟
Hyperledger Fabric چارچوبی برای توسعه راه حل های مبتنی بر بلاک چین برای شرکت ها است. این منبع باز و تحت نظر بنیاد لینوکس است. این یک زنجیره خصوصی است، بنابراین برای شرکت ها بسیار مفید است زیرا نمی خواهند تراکنش های خود را برای نمایش عمومی قرار دهند. این چارچوب دارای یک معماری ماژول بسیار پیچیده است که به شما این امکان را می دهد که توسعه دهنده برای طراحی شبکه بلاک چین با امنیت، مقیاس پذیری، محرمانه بودن و با کارایی بالا کار کند.
جهت تهیه دوره آموزش هایپرلجر فابریک می توانید همین الان اقدام کنید.
DLT چیست؟
هر بلاک چین بر روی یک DLT یا فناوری دفتر کل توزیع شده کار می کند. DLT ها پروتکل هایی برای ذخیره تمام تراکنش هایی هستند که در یک شبکه انجام می شود. در پروتکل بلاک چین، شبکه غیرمتمرکز است، به این معنی که تاریخچه تراکنش در تمام گره های شرکت کننده تکرار می شود.
معماری Hyperledger Fabric
Fabric یک بلاک چین مجاز است، پروتکل های خاصی دارد که ممکن است قبلاً در مورد آنها نشنیده باشید، وقت آن است که به آنها نگاهی بیندازید.
دفتر کل
دفتر کل Hyperledger Fabric یک گزارش تاریخچه تراکنش است که شامل وضعیت هر تراکنش تعهد شده به دفتر است. دفتر کل از دو بخش دولت جهانی، بلاک چین تشکیل شده است.
World State
این یک پایگاه داده است که حاوی رکوردهای به روز شده برای یک تراکنش است. وضعیت جهانی برای برنامهنویس راحتتر میشود تا بررسی کند رکورد به دقت در دفتر کل ذخیره میشود یا خیر. hyperledger fabric از LevelDB و CouchDB به عنوان پایگاه داده وضعیت پشتیبانی میکند. من از CouchDB در برنامه انتقال دارایی استفاده کردم.
Blockchain
مجموعه ای از بلوک های متوالی است که شامل توالی تراکنش های انجام شده در حالت جهانی است. Hyperledger Fabric از یک سرویس سفارش برای توالی تراکنش ها در بلوک ها استفاده می کند.
معامله
نقش یک تراکنش ذخیره کردن وضعیت یک شی است.
بلوک ها
بلوک ها در بلاک چین اولین بلوک بلوک پیدایش نامیده می شود. این بلوک اولیه شامل هیچ تراکنش کاربر نیست اما پیکربندی کانال را در شبکه ذخیره می کند.
همتایان
همتایان واحد اساسی هر مدل توزیع شده هستند. همتایان در اصل گره هستند، اما در شبکه های بلاک چین عمومی مانند بیت کوین یا اتریوم، همه همتایان برابر هستند. در یک بلاک چین خصوصی، همه همتایان با هم برابر نیستند.
در برنامه انتقال دارایی، هر سازمان فقط 1 همتا دارد.
مکانیسم اجماع
نکته اجماع تأیید صحت یک بلوک و پایبندی آن به سیاست های تعیین شده توسط Chaincode است. 2 نوع مکانیسم اجماع در فابریک وجود دارد: رای گیری و قرعه کشی. رای دادن در حال حاضر روش پذیرفته شده تر در سازمان ها است.
شما بهعنوان یک توسعهدهنده، باید اپلیکیشن شرکتی مبتنی بر Fabric خود را با این ایده که اعتماد جزئی به یک شبکه وجود دارد، توسعه دهید.
اجماع در هایپرلجر فابریک به سه مرحله تقسیم می شود:
تایید: شرکت کنندگان باید یک معامله را تایید کنند.
ترتیب: این مرحله با ترتیب تعهد به دفتر کل موافقت می کند.
اعتبار سنجی: ساختار و نظم را تایید می کند.
Chaincode
Chaincode نرم افزاری است که دارایی را شناسایی می کند. دارایی ها اساساً یک جفت کلید-مقدار هستند، که در آن تعاریف دارایی امکان مبادله تقریباً هر چیزی با ارزش پولی را در شبکه فراهم می کند. Chaincode برنامه ای است که در مخزن داکر ایمن اجرا می شود. Chaincode قرارداد هوشمند فابریک است به این معنا که منطق تجاری شبکه را اجرا می کند. می توانید ChainCodes را در Go، NodeJS یا Java بنویسید.
قسمت Chaincode برنامه انتقال دارایی در Go نوشته شده است.
برنامه انتقال دارایی دارای یک کد زنجیره ای به نام base است.
سازمان
این مجموعه ای از گروه هایی از اعضا تحت یک MSP واحد است. یک سازمان می تواند به یک گروه بزرگ چند شرکتی یا یک کافی شاپ کوچک مرتبط باشد.
قرارداد نامگذاری برای سازمان MSP را می توان به عنوان Org1.MSP مشتق کرد، در اینجا سازمان “Org1” است. و همچنین یک سازمان بر اساس نیاز خود می تواند MSP های زیادی داشته باشد.
اپلیکیشن انتقال دارایی دارای 3 سازمان Org1، Org2، Org3 می باشد.
ارائه دهنده خدمات عضویت (MSP)
برای اینکه مشتریان بتوانند در یک شبکه خصوصی شرکت کنند، آنها به اعتبار نیاز دارند تا معتبر باشند. MSP ها یک جزء انتزاعی هستند که اعتبارنامه ها را در اختیار مشتریان قرار می دهند.
مشتریان از این اعتبارنامه ها برای احراز هویت تراکنش های خود استفاده می کنند و همتایان از این اعتبارنامه ها برای احراز هویت نتایج پردازش تراکنش (تصویب ها) استفاده می کنند.
کانال ها
Hyperledger Fabric تکنیکی دارد که به سازمان اجازه می دهد از طریق یک کانال به چندین شبکه بلاک چین بپیوندد. بنابراین، چندین سازمان می توانند با اجرای کانال های مختلف با شبکه های زیادی ارتباط برقرار کنند یا در آن شرکت کنند.برنامه انتقال دارایی دارای یک کانال واحد به نام mychannel است.
Hyperledger Explorer چیست؟
Hyperledger Explorer یک ابزار ساده، قدرتمند، آسان برای استفاده، به خوبی نگهداری شده و منبع باز برای مرور فعالیت ها در شبکه بلاک چین است. کاربران توانایی پیکربندی و ساخت Hyperledger Explorer را در MacOS و Ubuntu دارند.
کلمات کلیدی :
“Spring Boot”: این یک فریمورک توسعه نرمافزار است که برای ساخت برنامههای وب و سرویسهای تحت وب با زبان برنامهنویسی جاوا (Java) استفاده میشود. این فریمورک به توسعه سریع و آسان برنامههای وب کمک میکند.
“Fullstack”: این واژه به معنای توانایی برنامهنویس در توسعه قسمتهای مختلف یک برنامه است، از پشتیبانی از سمت سرور تا رابط کاربری (UI) که توسط کاربران دیده میشود.
“Blockchain”: این فناوری مرتبط با ذخیرهسازی امن و تایید تراکنشها است. اطلاعات در قالب بلوکها ذخیره میشوند و تغییرات در بلوکها به راحتی تشخیص داده نمیشوند. این تکنولوژی به خصوص در زمینه معاملات مالی و قراردادهای هوش مصنوعی مورد استفاده قرار میگیرد.
“Hyperledger Fabric”: این یک پلتفرم متنباز است که برای پیادهسازی حلقههای Blockchain و شبکههای دستیابی بالا استفاده میشود. این به توسعه برنامههای مختلف مبتنی بر Blockchain کمک میکند.
“Kubernetes”: این یک سیستم مدیریت کانتینرها (مثل Docker) است که به شما امکان میدهد برنامههای کانتینری را به طور مؤثر و مقیاسپذیر مدیریت کنید. اینکار به اجرای برنامهها در محیطهای متنوع و متغیر کمک میکند.