قبل از اینکه برویم و راه اندازی بلاکچین را بررسی کنیم، اگر به خوبی از ماهیت بلاکچین مطلع نیستید، می توانید به این مقاله مراجعه کنید.
برای تهیه سرویس بلاکچین ابتدا نام کاربری و رمز ورود را وارد کنید و وارد پرتال شوید.
بعد از ورود، گزینه بلاکچین را انتخاب کنید و بر روی ایجاد پروژه کلیک کنید.
بعد از انتخاب نام پروژه در قسمت احتباس یا همان storage پلن دلخواه خود را انتخاب کنید.
منظور از فضای ذخیره سازی در این بخش یا همان storage مقدار فضایی است که می تواند سرویس شما داده داخل خود ذخیره کند و تعیین حدود برای پاک شدن داده ها هم می باشد. یعنی وقتی ۲ گیگ را انتخاب کنید، دیتای شما هر وقت به ۲ گیگ برسد، شروع به پاک شدن می کند. بعد به صفحه زیر منتقل خواهید شد.
در این قسمت با موارد بالا رو به رو می شوید. که در این قسمت روش پرداخت و بقیه موارد را انتخاب می کنید.
گزینه منطقه به معنای مکان فیزیکی و منابع محاسباتی است که سرویس بلاکچین اجرا می شود. موارد را انتخاب کنید و ارسال کنید.
به بخش زیر هدایت می شوید.
توپولوژی :
بر روی ایجاد سازمان که کلیک کنید شما را به صفحه زیر منتقل می کند، همانطور که مشاهده می کنید، می توانید نوع نودها را انتخاب کنید. برای سازمان خود اسم انتخاب کنید. حتما نیاز است ابتدا یک نود ca ایجاد کنید زیرا اگر خاطرتان باشد این نود مسئولیت مدیریت و صدور گواهی نامه های دیجیتال را دارد. پس ابتدا بر روی افزودن نود ca کلیک کنید و یک نود ca ایجاد کنید.
پس از انتخاب منطقه و طرح، افزودن را بزنید.
همانطور که مشاهده می کنید پس از انجام دستورات بالا شاهد آن خواهید بود که نود ca اضافه شده است. همانطور که مشاهده می کنید می توانید نود های دیگر را هم اضافه کنید. برای مثال در عکس زیر نود peer را اضافه می کنیم.
در سیستمهای بلاکچین مانند peer ,Hyperledger fabric ها نقش مهمی در نگهداری دادهها، تأیید تراکنشها و ایجاد بلاکها دارند. انتخاب موتور دیتابیس (Database Engine) برای ذخیره و مدیریت دادهها در Peer میتواند تأثیر زیادی بر عملکرد و ویژگیهای سیستم داشته باشد.
Couch DB:
- یک پایگاه داده اختیاری و جایگزین است که به شما این امکان را می دهد که دیتای خود را در hyperledger fabric بر اساس json مدل سازی کنید و پرس و جو های غنی را بر اساس مقادیر داده به جای کلید ها صادر کنید. همچنین پشتیبانی Couch DB به شما این امکان را می دهد ایندکس ها را با chaincode مستقر کنید تا بتوانید پرس و جو های کارآمد تری داشته باشید و شما را قادر سازد تا مجموعه داده های بزرگ را پرس و جو کنید.
LevelDB:
- LevelDB یک موتور دیتابیس متنباز و ساده است که توسط Google توسعه یافته است. LevelDB برای مواردی که نیاز به سادگی و عملکرد سریع دیتابیس دارند، مناسب است. این دیتابیس به عنوان یک کتابخانه توسعه داده شده و برای ذخیره سازی دادههای کلید-مقدار (Key-Value) به کار میرود.
پس از اینکه نود ها را ایجاد کردید بر روی ایجاد سازمان کلیک کنید. در منوی سمت چپ موارد دیگری مثل کانال ،chaincode و... قرار دارند، که هر کدام را بررسی خواهیم کرد.
کانالها (Channels):
در کانال ها ما انتخاب می کنیم که از بین نود هایی که داریم کدام نود ها باهم ارتباط داشته باشند. فقط در کانال ها، نود ها باهم ارتباط می گیرند اما این نوع ارتباط بین peer به ca برقرار نمی شود زیرا ca نود مدیریت می باشد.
برای ایجاد کانال بر روی گزینه آن کلیک کنید و بعد ابتدا بر روی افزودن peer و یا orderer کلیک کنید و سپس گزینه پیوستن به کانال را بزنید. هنگامی که می خواهید نود مورد نظر را انتخاب کنید برای مثال peer، گزینه ای به نام anchor peer وجود دارد.
بخشی از وظایف anchor peer :
- Anchor Peer به عنوان یک نقطه اصلی برای تأیید هماهنگی دادهها و بین نود ها عمل میکند. به این معنا که در صورت نیاز نود هایی که نیاز به ارتباط یا انتقال دیتا دارند را به یکدیگر معرفی می کند.
تبادل اطلاعات:
- Anchor Peer اطلاعات مربوط به کانال خود را با دیگر نودهای Peer در همان کانال به اشتراک میگذارد. این اطلاعات میتواند شامل اطلاعات دادهها و بلاکها باشد.
تعیین Peerهای معتبر:
- Anchor Peer به سایر نودها در همان کانال پیشنهاد میدهد که کدام Peer ها معتبر برای انجام وظایف خاصی هستند. این ممکن است شامل Peer های معتبر برای تأیید تراکنشها یا سرویسهای سفارش برای ایجاد بلاکها باشد.
Chaincode:
در بلاکچین، Chaincode به عنوان کدی تعبیه شده (برنامهای) است که در peer اجرا میشود و وظیفهٔ آن تایید تراکنش ها می باشد. به عبارت دیگر، Chaincode یک قطعه از کد منطق تجارت یا سرویس است که مشخص میکند چگونه تراکنشها در یک شبکه بلاکچین اجرا میشوند. به زبان راحت chaincode همان دسته اعمال و وظایفی است که ما تعیین می کنیم در کانال بین نود ها برقرار شود.
در اینجا بخش های مختلف را بررسی می کنیم.
مخزن ایمیج (Image Repository):
- مخزن ایمیج محل ذخیره و مدیریت ایمیج های Docker Host یا مخازن دیگر می باشد. در Docker Hub یا مخازن دیگر، تصاویری که شامل چینکدهای Hyperledger Fabric هستند، قرار داده میشوند. این مخزن ایمیج مشخص میکند که چینکد از کدام تصویر اجرایی بلاکچین استفاده کند.
تگ ایمیج (Image Tag):
- تصاویر ایمیج معمولاً با تگها مشخص میشوند تا نسخههای مختلف چینکدها را مشخص کنند. تگ میتواند شامل شماره نسخه، برچسب زمانی یا نام دلخواه دیگر باشد. به این تصویر با استفاده از تگ به عنوان یک ورژن خاص ارجاع داده میشود.
پروژه ریجستری (Registry Project):
- در محیطهایی که از چندین مخزن ایمیج استفاده میشود، پروژه ریجستری به عنوان یک محل مشخص مدیریت میشود. پروژه ریجستری ممکن است یک پروژه مشخص برای توسعه یا یک تیم خاص باشد که تصاویر مربوط به چینکدها را درون آن ذخیره میکند.
نسخه چینکد (Chaincode Version):
- نسخه چینکد مشخص میکند که چینکد در چه وضعیتی یا نسخهای از کد است. این نسخه معمولاً با استفاده از تگ ایمیج یا شماره نسخه تعیین میشود و این امکان را فراهم میکند که در یک زمان مشخص چندین نسخه از چینکد در حال اجرا باشد.
و بر روی گرینه انتخاب peer کلیک کنید و chaincode خود را بسازید.
Instantiate :
مرحله "Instantiate" در بلاکچین به لحظهای اشاره دارد که یک قرارداد هوشمند یا چینکد (یک برنامه کامپیوتری) را بر روی بلاکچین راهاندازی و اجرایی میکنیم. در این مرحله قرارداد هوشمند آماده میشود تا تراکنشها را در شبکه بلاکچین پردازش کند.
در اینجا انتخاب می کنیم کدام Chaincode بر روی کدام کانال با کدام نسخه، نصب و اجرا شود.
گزینه args به معنای تمام آرگومان های اولیه ای است که در توابع Chaincode اجرا شوند.
مشتریان :
منظور از مشتریان، همان کلاینت ها یا کاربرهایی است که می خواهند به شبکه شما متصل شوند.
برای ایجاد، بر روی اسم سازمان بزنید و سپس بر روی ایجاد مشتری کلیک کنید، با موارد زیر مواجه خواهید شد.
Affiliation :
در مفاهیم بلاکچین، Affiliation یک مفهوم است که به تعلق یا ارتباط یک عنصر (مثل یک مشتری یا شخص) با یک گروه یا انجمن خاص در یک سیستم بلاکچین اشاره دارد. نام "Affiliation" نشاندهندهٔ وابستگی یا عضویت است.
Own CSR:
Own CSR نیز به Certificate Signing Request (CSR) ارجاع دارد. یک CSR مستندی است که توسط یک شخص یا سازمان ایجاد میشود و معمولاً شامل اطلاعاتی مانند کلید عمومی (Public Key)، اطلاعات شخص یا سازمان و سایر اطلاعات مربوط به یک درخواست امضای گواهی SSL/TLS است.
بنابراین عنوان "Own CSR" در این سیاق ممکن است به معنای این باشد که مشتری یا شخص مرتبط با Affiliation خودش یک CSR را ایجاد کرده است. این CSR ممکن است برای درخواست امضای گواهی دیجیتال به منظور تأیید هویت و اطمینان از امنیت اطلاعات مورد استفاده قرار گیرد.
پس از انتخاب موارد بر روی افزودن مشتری کلیک کنید.
مانیتورینگ :
و در بخش آخر یعنی مانیتورینگ، ما میتوانیم وضعیت کلی شبکه خودمثل نود، لاگ ها و ... را بررسی کنیم.