این بخش ویژگیهای طراحی کلیدی بافته شده در Hyperledger Fabric را نشان میدهد که به قول خود مبنی بر یک راهحل بلاک چین سازمانی جامع و در عین حال قابل سفارشیسازی عمل میکند:
assets
تعاریف دارایی امکان مبادله تقریباً هر چیزی با ارزش پولی را در شبکه فراهم می کند، از غذاهای کامل گرفته تا اتومبیل های عتیقه و معاملات آتی ارز.
Chaincode
اجرای کد زنجیره ای از ترتیب تراکنش تقسیم می شود، سطوح مورد نیاز اعتماد و تأیید را در انواع گره ها محدود می کند و مقیاس پذیری و عملکرد شبکه را بهینه می کند.
ویژگیهای لجر
دفتر کل غیرقابل تغییر و مشترک، کل تاریخچه تراکنش را برای هر کانال رمزگذاری میکند و شامل قابلیت جستجوی SQL مانند برای حسابرسی کارآمد و حل اختلاف است.
حریم خصوصی
کانالها و مجموعههای دادههای خصوصی، تراکنشهای چندجانبه خصوصی و محرمانه را امکانپذیر میکنند که معمولاً توسط مشاغل رقیب و صنایع تحت نظارت که داراییها را در یک شبکه مشترک مبادله میکنند، مورد نیاز است.
خدمات امنیت و عضویت
عضویت مجاز یک شبکه بلاک چین قابل اعتماد را فراهم می کند، که در آن شرکت کنندگان می دانند که همه تراکنش ها می توانند توسط تنظیم کننده ها و حسابرسان مجاز شناسایی و ردیابی شوند.
اجماع
یک رویکرد منحصر به فرد برای اجماع، انعطاف پذیری و مقیاس پذیری مورد نیاز برای شرکت را امکان پذیر می کند.
دارایی ها
دارایی ها می توانند از دارایی های ملموس (املاک و سخت افزار) تا نامشهود (قراردادها و مالکیت معنوی) متغیر باشند. Hyperledger Fabric توانایی اصلاح دارایی ها را با استفاده از تراکنش های کد زنجیره ای فراهم می کند.
داراییها در Hyperledger Fabric بهعنوان مجموعهای از جفتهای کلید-مقدار نشان داده میشوند که تغییرات وضعیت بهعنوان تراکنشها در دفتر کل کانال ثبت میشود. دارایی ها را می توان به صورت باینری و/یا JSON نشان داد.
کد زنجیره ای
Chaincode نرمافزاری است که یک دارایی یا داراییها را تعریف میکند و دستورالعملهای تراکنش را برای اصلاح دارایی (ها) تعریف میکند. به عبارت دیگر، این منطق تجارت است. Chaincode قوانینی را برای خواندن یا تغییر جفتهای کلید-مقدار یا سایر اطلاعات پایگاه داده وضعیت اعمال میکند. توابع Chaincode در برابر پایگاه داده وضعیت فعلی دفتر اجرا می شوند و از طریق یک پیشنهاد تراکنش آغاز می شوند. اجرای کد زنجیرهای منجر به مجموعهای از نوشتههای کلید-مقدار (مجموعه نوشتن) میشود که میتواند به شبکه ارسال شود و در دفتر کل در همه همتایان اعمال شود.
می توانید دوره آموزش هایپرلجر فابریک را تهیه کنید.
ویژگی های لجر
دفتر کل رکورد متوالی و مقاوم در برابر دستکاری تمام انتقالات حالت در پارچه است. انتقال حالت نتیجه فراخوانی کد زنجیره ای (“معاملات”) ارائه شده توسط طرف های شرکت کننده است. هر تراکنش منجر به مجموعهای از جفتهای کلید-مقدار دارایی میشود که به عنوان ایجاد، بهروزرسانی یا حذف به دفتر کل متعهد میشوند.
دفتر کل از یک زنجیره بلوکی (“زنجیره”) برای ذخیره رکورد تغییرناپذیر و توالی شده در بلوک ها و همچنین یک پایگاه داده وضعیت برای حفظ وضعیت فعلی بافت تشکیل شده است. در هر کانال یک دفتر کل وجود دارد. هر همتا یک کپی از دفتر کل را برای هر کانالی که عضو آن است نگهداری می کند.
برخی از ویژگی های دفتر کل فابریک:
- پرس و جو و به روز رسانی دفتر کل با استفاده از جستجوهای مبتنی بر کلید، پرس و جوهای محدوده، و جستارهای کلید ترکیبی
- جستارهای فقط خواندنی با استفاده از یک زبان جستجوی غنی (در صورت استفاده از CouchDB به عنوان پایگاه داده ایالتی)
- جستارهای تاریخچه فقط خواندنی – تاریخچه دفتر کل پرس و جو برای یک کلید، سناریوهای منشأ داده را فعال می کند
- تراکنشها شامل نسخههایی از کلیدها/مقدارهایی است که با کد زنجیرهای (مجموعه خواندنی) خوانده میشوند و کلیدها/مقدارهایی که با کد زنجیرهای (مجموعه نوشتن) نوشته شدهاند.
- تراکنش ها حاوی امضای هر همتای تایید کننده هستند و به سرویس سفارش ارائه می شوند
- تراکنشها به صورت بلوکها مرتب میشوند و از یک سرویس سفارشدهنده به همتایان در یک کانال «تحویل میشوند».
- همتایان، تراکنشها را در مقابل خطمشیهای تأیید اعتبار تأیید میکنند و خطمشیها را اجرا میکنند
- قبل از الحاق یک بلوک، یک بررسی نسخهسازی انجام میشود تا اطمینان حاصل شود که وضعیت داراییهای خوانده شده از زمان اجرای کد زنجیرهای تغییر نکرده است.
- زمانی که یک تراکنش معتبر و متعهد شد تغییر ناپذیری وجود دارد
- دفتر کل کانال حاوی یک بلوک پیکربندی است که خطمشیها، فهرستهای کنترل دسترسی و سایر اطلاعات مربوطه را تعریف میکند.
- کانالها حاوی نمونههای ارائهدهنده خدمات عضویت هستند که به مواد رمزنگاری اجازه میدهند از مقامات گواهیهای مختلف مشتق شوند
- برای بررسی عمیقتر پایگاههای داده، ساختار ذخیرهسازی و «توانایی پرس و جو»، به موضوع لجر مراجعه کنید.
حریم خصوصی
Hyperledger Fabric از یک دفتر کل غیرقابل تغییر بر اساس هر کانال و همچنین کد زنجیره ای استفاده می کند که می تواند وضعیت فعلی دارایی ها را دستکاری و تغییر دهد (یعنی به روز رسانی جفت های کلید-مقدار). یک دفتر کل در محدوده یک کانال وجود دارد – می توان آن را در کل شبکه به اشتراک گذاشت (با فرض اینکه هر شرکت کننده در یک کانال مشترک فعالیت می کند) – یا می تواند خصوصی شود تا فقط مجموعه خاصی از شرکت کنندگان را شامل شود.
در سناریوی دوم، این شرکت کنندگان یک کانال مجزا ایجاد می کنند و در نتیجه معاملات و دفتر خود را جدا/تفکیک می کنند. به منظور حل سناریوهایی که میخواهند شکاف بین شفافیت کامل و حریم خصوصی را پر کنند، کد زنجیرهای را میتوان فقط روی همتاهایی نصب کرد که برای انجام خواندن و نوشتن نیاز به دسترسی به حالتهای دارایی دارند (به عبارت دیگر، اگر یک کد زنجیرهای روی همتا نصب نشده باشد. ، نمی تواند به درستی با دفتر کل ارتباط برقرار کند).
هنگامی که زیرمجموعهای از سازمانها در آن کانال باید دادههای تراکنش خود را محرمانه نگه دارند، از مجموعه دادههای خصوصی (مجموعه) برای جداسازی این دادهها در یک پایگاه داده خصوصی استفاده میشود که منطقاً جدا از دفتر کل کانال است که فقط برای زیرمجموعه مجاز سازمانها قابل دسترسی است.
بنابراین، کانالها تراکنشها را از شبکه گستردهتر خصوصی نگه میدارند در حالی که مجموعهها دادهها را بین زیر مجموعههای سازمانها در کانال خصوصی نگه میدارند.
برای مبهم کردن بیشتر داده ها، مقادیر درون کد زنجیره ای را می توان با استفاده از الگوریتم های رمزنگاری رایج مانند AES قبل از ارسال تراکنش ها به سرویس سفارش و الحاق بلوک ها به دفتر کل رمزگذاری کرد (قسمتی یا کلی). هنگامی که داده های رمزگذاری شده در دفتر کل نوشته شد، تنها توسط کاربری که کلید مربوطه را در اختیار دارد که برای تولید متن رمز استفاده شده است، می تواند رمزگشایی شود.
برای جزئیات بیشتر در مورد چگونگی دستیابی به حریم خصوصی در شبکه بلاک چین، به مبحث Private Data مراجعه کنید.
امنیت و خدمات عضویت
Hyperledger Fabric زیربنای یک شبکه تراکنشی است که در آن همه شرکت کنندگان دارای هویت شناخته شده هستند. زیرساخت کلید عمومی برای تولید گواهیهای رمزنگاری که به سازمانها، اجزای شبکه، و کاربران نهایی یا برنامههای مشتری مرتبط هستند، استفاده میشود. در نتیجه، کنترل دسترسی به داده ها را می توان در شبکه گسترده تر و در سطوح کانال دستکاری و کنترل کرد. این مفهوم “مجاز” از Hyperledger Fabric، همراه با وجود و قابلیتهای کانالها، به رسیدگی به سناریوهایی که حفظ حریم خصوصی و محرمانه بودن نگرانیهای اساسی است کمک میکند.
برای اطلاعات بیشتر به مبحث مدل امنیتی مراجعه کنید.
اجماع
در فناوری دفتر کل توزیع شده، اجماع اخیراً مترادف با یک الگوریتم خاص، در یک تابع واحد شده است. با این حال، اجماع فراتر از توافق صرف بر سر ترتیب تراکنشها را شامل میشود، و این تمایز در Hyperledger Fabric از طریق نقش اساسی آن در کل جریان تراکنش، از پیشنهاد و تایید، تا سفارش، اعتبارسنجی و تعهد، برجسته میشود. به طور خلاصه، اجماع به عنوان تأیید دایره کامل صحت مجموعه ای از تراکنش های متشکل از یک بلوک تعریف می شود.
اجماع در نهایت زمانی حاصل می شود که ترتیب و نتایج تراکنش های یک بلوک با بررسی معیارهای خط مشی صریح مطابقت داشته باشد. این بررسیها و توازنها در طول چرخه حیات یک تراکنش انجام میشوند و شامل استفاده از سیاستهای تأیید برای تعیین اینکه کدام اعضای خاص باید یک کلاس تراکنش خاص را تأیید کنند، و همچنین کدهای زنجیرهای سیستم برای اطمینان از اجرا و حفظ این خطمشیها است. قبل از تعهد، همتایان از این کدهای زنجیرهای سیستم استفاده میکنند تا مطمئن شوند که تأییدیههای کافی وجود دارد و از موجودیتهای مناسب مشتق شدهاند. علاوه بر این، قبل از الحاق هر بلوک حاوی تراکنش به دفتر کل، یک بررسی نسخهسازی انجام میشود که طی آن با وضعیت فعلی دفتر موافقت یا موافقت میشود. این بررسی نهایی در برابر عملیات خرج مضاعف و سایر تهدیداتی که ممکن است یکپارچگی دادهها را به خطر بیندازند، محافظت میکند و اجازه میدهد تا توابع در برابر متغیرهای غیراستاتیک اجرا شوند.
علاوه بر انبوهی از تأیید، اعتبار و بررسی نسخهسازی که انجام میشود، تأیید هویت مداوم نیز در همه جهات جریان تراکنش انجام میشود. لیستهای کنترل دسترسی بر روی لایههای سلسله مراتبی شبکه پیادهسازی میشوند (سرویس سفارش به کانالها)، و بارها بهطور مکرر امضا، تأیید و احراز هویت میشوند که یک پیشنهاد تراکنش از اجزای مختلف معماری عبور میکند. در نتیجه، اجماع صرفاً محدود به ترتیب توافق شده مجموعه ای از معاملات نیست. بلکه یک توصیف کلی است که به عنوان یک محصول جانبی از راستیآزماییهای مداومی که در طول سفر معامله از پیشنهاد به تعهد صورت میگیرد، به دست میآید.