Хиперледгер тканина за лутке

Блоцкцхаин платформа за предузећа

Хиперледгер тканина за лутке

Добар дан, драги читаоци, моје име је Николај Нефедов, ја сам технички специјалиста у ИБМ-у, у овом чланку желим да вас упознам са блокчејн платформом - Хиперледгер Фабриц. Платформа је дизајнирана за изградњу пословних апликација пословне класе. Ниво чланка је за неспремне читаоце са основним познавањем ИТ технологија.

Хиперледгер Фабриц је пројекат отвореног кода, један од огранака Хиперледгер пројекта отвореног кода, конзорцијума Линук фондације. Хиперледгер Фабриц су првобитно покренули Дигитал Ассетс и ИБМ. Главна карактеристика Хиперледгер Фабриц платформе је њен фокус на употребу у предузећима. Због тога је платформа развијена узимајући у обзир велику брзину трансакција и њихову ниску цену, као и идентификацију свих учесника. Ове предности се постижу издвајањем услуге верификације трансакција и формирањем нових блокова дистрибуираног регистра, као и коришћењем сертификационог центра и ауторизацијом учесника.

Мој чланак је део серије чланака о Хиперледгер Фабриц-у, у оквиру којег описујемо системски пројекат за евидентирање студената који улазе на универзитет.

Општа архитектура Хиперледгер Фабриц-а

Хиперледгер Фабриц је дистрибуирана мрежа блокова која се састоји од различитих функционалних компоненти које су инсталиране на мрежним чворовима. Компоненте Хиперледгер Фабриц су Доцкер контејнери који се могу бесплатно преузети са ДоцкерХуб-а. Хиперледгер Фабриц се такође може покренути у Кубернетес окружењу.

За писање паметних уговора (ланчани код у контексту Хиперледгер Фабриц-а), користили смо Голанг (иако Хиперледгер Фабриц дозвољава употребу других језика). За развој прилагођене апликације, у нашем случају, користили смо Ноде.јс са одговарајућим Хиперледгер Фабриц СДК-ом.

Чворови извршавају пословну логику (паметни уговор) - ланчани код, чувају стање дистрибуираног регистра (подаци књиге) и извршавају друге системске услуге платформе. Чвор је само логичка јединица; различити чворови могу постојати на истом физичком серверу. Много је важније како су чворови груписани (поуздани домен) и са којим функцијама блокчејн мреже су повезани.

Генерална архитектура изгледа овако:

Хиперледгер тканина за лутке

Слика 1. Општа архитектура Хиперледгер тканине

Корисничка апликација (Субмиттинг Цлиент) је апликација са којом корисници раде са блокчејн мрежом. Да бисте радили, морате бити овлашћени и имати одговарајућа права за различите врсте радњи на мрежи.

Вршњаци долазе у неколико улога:

  • Ендорсинг Пеер је чвор који симулира извршење трансакције (извршава код паметног уговора). Након верификације и извршења паметног уговора, чвор враћа резултате извршења клијентској апликацији заједно са својим потписом.
  • Услуга наручивања је дистрибуирана услуга на неколико чворова, која се користи за генерисање нових блокова дистрибуираног регистра и креирање реда за извршење трансакција. Услуга наручивања не додаје нове блокове у регистар (ова функција је премештена у Цоммиттинг Пеерс ради побољшања перформанси).
  • Цоммиттинг Пеер је чвор који садржи дистрибуирани регистар и додаје нове блокове у регистар (које је генерисао Услуга наручивања). Сви вршњаци за обавезивање садрже локалну копију дистрибуиране књиге. Урезивање Пеер проверава ваљаност свих трансакција унутар блока пре локалног додавања новог блока.

Политика одобрења је политика за проверу валидности трансакције. Ове политике дефинишу потребан скуп чворова на којима се мора извршити паметни уговор да би трансакција била призната као важећа.

Дистрибуирани регистар - Лергер - састоји се од два дела: ВолрлдСтате (који се такође назива Државна база података) и БлоцкЦхаин.

БлоцкЦхаин је ланац блокова који чува записе о свим променама које су се десиле на дистрибуираним објектима регистра.

ВолрлдСтате је компонента дистрибуиране књиге која чува тренутне (најбоље) вредности свих објеката дистрибуиране књиге.

ВорлдСтате је база података, у основној верзији - ЛевелДБ или сложенијој - ЦоуцхДБ, која садржи парове кључ-вредност, на пример: Име - Иван, Презиме - Иванов, датум регистрације у систему - 12.12.21. , датум рођења - 17.12.1961, итд. ВорлдСтате и дистрибуирани регистар морају бити доследни међу свим учесницима на датом каналу.

Пошто је Хиперледгер Фабриц мрежа у којој су сви учесници познати и аутентификовани, она користи наменски ауторитет за сертификацију – ЦА (Цертифицатион Аутхорити). ЦА ради на основу стандарда Кс.509 и инфраструктуре јавног кључа - ПКИ.

Услуга чланства је услуга преко које чланови верују да објекат припада одређеној организацији или каналу.

Трансакција – у већини случајева је уписивање нових података у дистрибуирани регистар.
Постоје и трансакције за креирање канала или паметних уговора. Трансакцију покреће корисничка апликација и завршава се записом у дистрибуираној књизи.

Канал је затворена подмрежа која се састоји од два или више учесника блоцкцхаин мреже, дизајнирана да спроводи поверљиве трансакције унутар ограниченог, али познатог круга учесника. Канал одређују учесници, његов дистрибуирани регистар, паметни уговори, сервис за наручивање, ВорлдСтате. Сваки учесник канала мора бити овлашћен да приступи каналу и има право да обавља различите врсте трансакција. Ауторизација се врши коришћењем услуге Чланство.

Типичан сценарио извршења трансакције

Затим бих желео да говорим о типичном сценарију извршења трансакције користећи наш пројекат као пример.

Као део нашег интерног пројекта, креирали смо Хиперледгер Фабриц мрежу, која је дизајнирана да региструје и обрачунава студенте који улазе на универзитете. Наша мрежа се састоји од две организације које припадају Универзитету А и Универзитету Б. Свака организација садржи клијентску апликацију, као и сопственог партнера за обавезу и подршку. Такође користимо заједничке услуге услуге наручивања, услуге чланства и ауторитета за сертификацију.

1) Покретање трансакције

Корисничка апликација, користећи Хиперледгер Фабриц СДК, покреће захтев за трансакцију и шаље захтев чворовима са паметним уговорима. Захтев може бити промена или читање из дистрибуираног регистра (Ледгер). Ако узмемо у обзир пример наше конфигурације тестног система за рачуноводство студената универзитета, клијентска апликација шаље захтев за трансакцију чворовима универзитета А и Б, који су укључени у Политику одобравања названог паметног уговора. Чвор А је чвор који се налази на универзитету који региструје долазног студента, а чвор Б је чвор који се налази на другом универзитету. Да би се трансакција сачувала у дистрибуираном регистру, потребно је да сви чворови који, по пословној логици, морају да одобре трансакцију, успешно изврше паметне уговоре са истим резултатом. Корисничка апликација чвора А, користећи Хиперледгер Фабриц СДК алате, добија смернице за одобравање и учи којим чворовима да пошаље захтев за трансакцију. Ово је захтев да се позове одређени паметни уговор (функција ланчаног кода) за читање или писање одређених података у дистрибуирани регистар. Технички, клијентски СДК користи одговарајућу функцију, чијем АПИ-ју се прослеђује одређени објекат са параметрима трансакције, а такође додаје потпис клијента и шаље ове податке преко бафера протокола преко гРПЦ-а до одговарајућих чворова (потврдјивање вршњака).

Хиперледгер тканина за лутке
Слика 2. Покретање трансакције

2) Извршење паметног уговора

Чворови (Ендорсинг Пеерс), након што добију захтев за обављање трансакције, проверавају потпис клијента и ако је све у реду, узимају објекат са подацима захтева и покрећу симулацију извршења паметног уговора (функција ланчаног кода) са ове податке. Паметни уговор је пословна логика трансакције, одређени скуп услова и упутстава (у нашем случају, ово је верификација студента, да ли је ово нови студент, или је већ регистрован, провера старости итд.). Да бисте извршили паметни уговор, биће вам потребни и подаци из ВорлдСтате-а. Као резултат симулације паметног уговора на Ендорсинг пеер-у, добијају се два скупа података – скуп за читање и скуп за писање. Реад Сет и Врите Сет су оригиналне и нове вредности ВорлдСтате. (ново – у смислу добијеном током симулације паметног уговора).

Хиперледгер тканина за лутке
Слика 3. Извршење паметног уговора

3) Враћање података клијентској апликацији

Након спровођења симулације паметног уговора, Ендорсинг Пеерс враћа оригиналне податке и резултат симулације, као и РВ сет, потписан њиховим сертификатом, клијентској апликацији. У овој фази не долази до промена у дистрибуираном регистру. Клијентска апликација проверава потпис Ендорсинг Пеер-а, а такође упоређује оригиналне податке о трансакцији који су послати и податке који су враћени (односно, проверава да ли су оригинални подаци на којима је симулирана трансакција изобличени). Ако је трансакција била само за читање података из регистра, онда клијентска апликација у складу са тим добија неопходан скуп за читање и то обично успешно завршава трансакцију без промене дистрибуираног регистра. У случају трансакције која мора да промени податке у регистру, клијентска апликација додатно проверава примену Политике одобравања. Могуће је да клијентска апликација не проверава резултат извршавања Политике подршке, али платформа Хиперледгер Фабриц у овом случају предвиђа проверу политика на чворовима (Цоммиттинг Пеерс) у фази додавања трансакције у регистар.

Хиперледгер тканина за лутке
Слика 4. Враћање података у клијентску апликацију

4) Слање РВ сета на Ордеринг Пеерс

Клијентска апликација шаље трансакцију заједно са пратећим подацима сервису наручивања. Ово укључује РВ сет, потписе партнера за одобравање и ИД канала.

Услуга наручивања – на основу назива, главна функција ове услуге је да распореди долазне трансакције у исправном редоследу. Као и формирање новог блока дистрибуираног регистра и гарантована испорука нових генерисаних блокова свим урезујућим чворовима, чиме се обезбеђује конзистентност података на свим чворовима који садрже дистрибуирани регистар (Цоммиттинг пеерс). Истовремено, сама услуга наручивања ни на који начин не мења регистар. Услуга наручивања је витална компонента система, тако да је кластер од неколико чворова. Сервис наручивања не проверава трансакцију на валидност, већ само прихвата трансакцију са одређеним идентификатором канала, распоређује долазне трансакције одређеним редоследом и од њих формира нове блокове дистрибуираног регистра. Једна услуга наручивања може истовремено да опслужује неколико канала. Услуга наручивања укључује Кафка кластер, који одржава исправан (непроменљив) ред трансакција (види тачку 7).

Хиперледгер тканина за лутке
Слика 5. Слање РВ се поставља на Ордеринг Пеерс

5) Слање генерисаних блокова у Цоммиттинг Пеер

Блокови генерисани у Сервису наручивања се преносе (емитују) на све чворове мреже. Сваки чвор, након што је примио нови блок, проверава га да ли је усклађен са Политиком одобравања, проверава да ли су сви партнери који подржавају добили исти резултат (Врите Сет) као резултат симулације паметног уговора, а такође проверава да ли су оригиналне вредности промењено (то јест, Реад Сет - подаци које је прочитао паметни уговор из ВорлдСтате-а) од тренутка када је трансакција покренута. Ако су испуњени сви услови, трансакција је означена као важећа, у супротном трансакција добија статус неважеће.

Хиперледгер тканина за лутке
Слика 6. Слање генерисаних блокова у Цоммиттинг Пеер

6) Додавање блока у регистар

Сваки чвор додаје трансакцију у своју локалну копију дистрибуираног регистра, а ако је трансакција важећа, тада се скуп за писање примењује на ВорлдСтате (тренутно стање), и сходно томе, нове вредности објеката на које је утицао трансакције су написане. Ако је трансакција примила токен који није важећи (на пример, две трансакције су се десиле са истим објектима у истом блоку, онда ће се једна од трансакција испоставити неважећом, пошто су оригиналне вредности већ промењене од стране друге трансакција). Ова трансакција се такође додаје у дистрибуирану књигу са неважећим токеном, али скуп за писање ове трансакције се не примењује на тренутни ВорлдСтате и, сходно томе, не мења објекте који учествују у трансакцији. Након овога, корисничкој апликацији се шаље обавештење да је трансакција трајно додата у дистрибуирани регистар, као и статус трансакције, односно да ли је важећа или не...

Хиперледгер тканина за лутке
Слика 7. Додавање блока у регистар

НАРУЧИВАЊЕ УСЛУГЕ

Услуга наручивања се састоји од Кафка кластера са одговарајућим ЗооКеепер чворовима и чворовима услуге наручивања (ОСН), који стоје између клијената услуге наручивања и Кафка кластера. Кафка кластер је дистрибуирана платформа за управљање протоком (порука) отпорном на грешке. Сваки канал (тема) у Кафки је непроменљиви низ записа који подржава само додавање новог записа (брисање постојећег није могуће). Илустрација структуре теме је приказана у наставку. Управо ово Кафкино својство се користи за изградњу блокчејн платформе.

Хиперледгер тканина за лутке
преузето са кафка.апацхе.орг

  • Слика 8. Структура теме наручивања услуге*

Корисни линкови

Иоутубе – Изградња блокчејна за пословање помоћу пројекта Хиперледгер
Хиперледгер Фабриц Доцс
Хиперледгер тканина: дистрибуирани оперативни систем за дозвољене блокчејнове

Захвалнице

Желео бих да изразим дубоку захвалност својим колегама на помоћи у припреми овог чланка:
Николај Марин
Игор Кхапов
Дмитриј Горбачов
Александар Земцов
Екатерина Гусева

Извор: ввв.хабр.цом

Додај коментар