Консенсус
Транзакциялар Sumeragi уларҙы блокҡа тәҡдим иткәнгә тиклем сиратҡа инә. Валидаторҙар тәҡдимде үҙ аллы раҫлай һәм тормошҡа ашыра, һуңынан улар ҡабатлай алған дәүләттең күсеүенә генә ҡул ҡуя. Блок талап ителгән валидатор кворумы был һөҙөмтә буйынса килешелгәндән һуң һәм тейешле файҙалы йөкләнеш булғандан һуң йөкләмәне үтәй.
Iroha 3 селтәрҙәренең барыһы ла мәғлүмәт алыу һәм ышаныслы тапшырыу юлдарын ҡуллана. Улар үҙ-ара килешеп эш итеү талаптары булып тора, ә ирекле ҡулланыу функциялары түгел.
Sumeragi
Sumeragi - Iroha-ның византия хатаһын түҙемлек менән ҡабул итеүсе консенсус двигателе. Ул сираттан транзакцияларҙы ала, валидаторҙар бер үк тәртипле блокҡа килешергә мәжбүр итә һәм шул блокты тик шул уҡ һөҙөмтәне ҡабатлаған һәм йөкләмә сертификатына ҡул ҡуйғаннан һуң ғына тамамлай.
Тәҡдимдәр һәм йөкләмәләр юлы
Sumeragi иҫәп яҙмаһын бер-бер артлы бер блок бейеклеге менән алға сығара. Һәр бейеклектә бер раҫлаусы ағымдағы ҡарашҡа тәҡдим итеүсе булып эшләй. Тәҡдим биреүсе сираттан яраҡлы транзакцияларҙы арындыра, кандидат блогын төҙөй һәм тәҡдимде актив раҫлаусы йыйылмаһына иғлан итә.
Шул уҡ Sumeragi торбаһы рөхсәт ителгән һәм номиналь иҫбатлау (NPoS) урынлаштырыуҙарҙа ҡулланыла:
- Валидатор сираттағы транзакцияларҙан сикләү тәҡдим итә.
- Валидаторҙар тәҡдимде бер үк донъя дәүләте менән килешеүҙәр алып барыу аша раҫлай.
- Валидаторҙар тауыш һәм кворум сертификаттары менән ағымдағы бейеклек һәм ҡараш өсөн алмаштыра.
- Комитет кворумына өлгәшкәндән һуң, тиҫтерҙәр блокты төҙөй һәм үҙҙәренең донъя хәле тураһында мәғлүмәт бирә.
Валидаторҙар үҙҙәре урындарҙа ҡабатлай алған мәғлүмәттәрҙе генә ҡуллана. тауыш биреү алдынан, валидатор тәҡдимдең көтөлә торған сылбырға, бейеклеккә һәм ҡарауға бәйле булыуын тикшерә; транзакция ҡултамғалары һәм сикләүҙәрҙең ғәмәлдә булыуын; һуҡмаҡ маршруты һәм башҡарыусыны раҫлауҙың детерминистик булыуын тикшерә. һәм файҙалы йөкләмәне үтәү көтөлгән дәүләт күсеүен тыуҙыра. әгәр урындағы һөҙөмтә айырыла икән, валидиатор тәҡдимде хуплау урынына кире ҡаға.
Тауыштар - бәләкәй ҡул ҡуйылған консенсус хәбәрҙәре. Улар тәҡдим ителгән блокҡа, бейеклеккә, ҡарауға һәм раҫлаусы шәхесенә ҡағыла. Коллекторҙар был тауыштарҙы кворум сертификатына йә commit сертификатына туплай. Сертификат шул уҡ блок өсөн бер үк һөҙөмтәне күҙәтеүселәрҙең етерлек иҫбатлау булып тора.
Кворум, йыйыусылар һәм күҙәтеүселәр
Тауыш биреүселәрҙең иҫәбе n Византияның хаталар бюджетын билдәләй. Ниһайәт, дүрт validator менән селтәрҙәр өсөн бюджет f = floor((n - 1) / 3) һәм комиссия кворумы 2f + 1. Бер-өс раҫлаусы өсөн, бөтә раҫлаусыларға йөкләмә бирергә кәрәк. ул үҫеш өсөн файҙалы, әммә ғәмәли офлайн бушҡалыҡ юҡ.
Коллекторҙар - фанаут оптимизацияһы. Һәр раҫлаусы һәр тауышты башҡа раҫлаусыларға ебәреү урынына, Sumeragi бейеклек өсөн бер йәки бер нисә коллектор һайлай ала. Коллекторҙар тауыш йыя, кворумдың барышын иғлан итә һәм икеләтә тауыш биреү хәрәкәтен кәметә. һөҙөмтәле коллектор көйләүҙәр аша асыҡлана GET /v1/sumeragi/collectors; Рәсәй Федерацияһы CLI Ул - ops sumeragi telemetry Снапшот мәғлүмәттәре Коллекторҙар һаны.
Күҙәтеүсе тиңдәштәре йөкмәткеле блоктарҙы синхронизациялай ала, әммә улар тәҡдим итмәй, тауыш бирмәй, тауыштар йыя алмай һәм комитеттың кворумына иҫәп тотмай. Официальный сайт Күҙәтеүселәрҙе ҡулланыу, әгәр урынлаштырыу урындағы һорауҙар ҡеүәтенә, индексацияһына, мониторингҡа мохтаж йәки тауыш биреүҙе раҫлаусыларҙың һанын арттырмайынса төбәк блоктары репликацияһы.
Үҙгәрештәрҙе ҡарау һәм тергеҙеү
Күҙәтеү - Sumeragi тарафынан бер бейеклекте конкрет тәҡдим итеүсе һәм ваҡыт планы менән тамамларға тырышыу. Әгәр тәҡдим, файҙалы йөкләмә, тауыш биреү йәки алға барыу ҡаҡшамаһа, кардиометры бейеклекте һуңыраҡ ҡарауға күсерә ала. Күҙәтеү үҙгәреше commited блогын яңынан яҙып булмай . Ул раҫлаусыларҙың йөкләмәһеҙ бейеклекте тамамларға тырышыуын үҙгәртә, иң юғары билдәле кворумды алып бара йәки тиңдәштәре ҡаршылыҡлы блоктарҙы йомғаҡламаһын өсөн иҫбатланырға тырыша.
Файҙалы йөкләмәләрҙе ҡайтарыу ҡарарҙан айырылып тора. Блокҡа тулы файҙалы йөкләнеш булғанға тиклем бер коллега кворум йәки йөкләмә сертификатын ала ала. Был осраҡта коллега файҙалы йөкләмәне ҡайтарыу өсөн ышаныслы трансляция (RBC) йә блок синхронлаштырыуҙы ҡуллана, уны рекламаланған хэштегтар менән раҫлай, һәм һуң ғына блок донъя дәүләтенә һәм Kura ҡулланыла.
Консенсус режимы
Һайланған режимда валидатор йыйылмаһының нисек барлыҡҡа килеүен һәм эшләүен контролдә тоталар. Ул consensus_mode аша генезиста һәм sumeragi.consensus_mode аша тиңдәш конфигурацияла иғлан ителә. Уны бөтә селтәр дәүләте булараҡ ҡарағыҙ: валидаторҙарға бер үк ҡул ҡуйылған генез, топология, ышаныслы тиңдәш мәғлүмәттәр һәм һөҙөмтәле Sumeragi параметрҙары кәрәк.
| Режим | Иң яҡшыһы | Валидатор ҡуйылған | Оператив йүнәлеш |
|---|---|---|---|
| Ирекле | Шәхси, консорциум һәм операторҙар менән идара ителгән селтәрҙәр | Валидаторҙар урынлаштырыу менән килешелгән ышаныслы тиңдәш топологияһынан алынған | Бөтә валидаторҙарҙы бер үк ҡул ҡуйылған генез, ышаныслы тиҫтерҙәр, тиҫтер клавишалары һәм Sumeragi параметрҙары буйынса һаҡлағыҙ |
| НПОС | Йәмәғәт йәки Nexus йүнәлешендәге селтәрҙәрҙә валидация номинациялар һәм ставкалар сәйәсәтенә бәйле | Валидаторҙар NPoS профиле буйынса һайлана, ғәҙәттә эпохалар араһында һәм BLS ключтар менән эйәлек иҫбатлау талап ителә | Уйын фотоһүрәттәрен, эпоха параметрҙарын, validator PoPs, һәм NPoS фазаһы ваҡытын селтәр буйлап туранан-тура һаҡларға |
Рөхсәт ителгән режим
Валидаторҙар исемлеге асыҡтан-асыҡ оператив һайлау булғанда рөхсәт ителгән режимды ҡулланығыҙ. Был үҙ-үҙенә хостингланған Iroha селтәрҙәр өсөн ғәҙәти башланғыс пункт, сөнки ағзалыҡ үҙгәрештәрен аңлы рәүештә идара итеү йәки администратор эштәре булып тора. Мөһим оператив ҡағиҙә - һәр валидатор генез, ышаныслы тиңдәр, BLS Менәү иҫбатлауҙары һәм Sumeragi параметрҙарының бер үк ҡарашы менән эшләнелергә тейеш.
NPOS режимы
NPoS режимын ҡулланығыҙ, әгәр индереү профиле раҫлаусының ҡатнашыуы номинация һәм ставка торошо менән бәйле тип көтөлә. асыҡ SORA Nexus индереүҙәрҙә NPoS ҡулланыла, ә уларҙың барлыҡҡа килгән профилдәрендә BLS раҫлаусы шәхестәре, милек иҫбатламалары, эпоха көйләүҙәре инә, һәм Sumeragi NPoS параметрҙары старт ваҡытында кәрәк. Эпох үҙгәрештәрҙәре билдәләнгән бейеклектәрҙә ҡуйылған актив валидаторҙы алмаштыра ала, шуға күрә операторҙарға консенсус һаулығын да, киләһе реестры менән тәьмин итеүсе ставканы йәки номинация торошон күҙәтергә кәрәк.
Күп яҡлы консенсус
Iroha күп юллы консенсус юлы Nexus трассаһы һәм мәғлүмәт киңлеге конфигурацияһы аша ғәмәлгә ашырыла. Sumeragi һаман да бер бойомға ашырылған блок ағымды тамамлай; трассалар транзакцияларҙың был ағым эсендә нисек юнәлтелгәнен, планлаштырылған, иҫәпкә алынған һәм һаҡланғанлығын һүрәтләй.
Йүгереү ваҡыты конфигурацияһы юл торошоның өс өлөштәрен төҙөй:
lane_catalog: конфигурацияланған һыҙаттар, уларҙың һәр береһеLaneIdһанлы, псевдонимы, мәғлүмәт киңлеге, күренеүсәнлек, һаҡлау профиле, иҫбатлау схемаһы һәм метамәғлүмәт менән.dataspace_catalog: конфигурацияланған мәғлүмәт майҙансыҡтары, уларҙың һәр береһеDataSpaceIdһанлы һәм эстафета комитетын үлсәү өсөн файҙаланылған хаталарға ҡарата тотороҡлолоҡ баһаһы менән.routing_policy: иҫәбтәр йәки инструкция юлдары менән тап килеү мөмкин булған ҡағиҙәләр буйынса маршрутҡа йөрөү өсөн билдәләнгән юл/мәғлүмәт киңлеге параһы.
Транзакция сиратҡа ингәндә, юл маршрутизаторы уны а RoutingDecision { lane_id, dataspace_id }. Бер һыҙатлы режимда был һәр саҡ һыҙат 0 һәм универсаль мәғлүмәт киңлеге. Nexus режимында, конфигурацияланған маршрутизатор мәғлүмәт киңлеге буйынса ҡағиҙәләр ҡуллана, иҫәп-хисап ҡағиҙәләре, асыҡ маршрутизациялау ҡағиҙәләрен, һәм, ниһайәт, дефолт маршруты. хәл ителгән трасса һәм мәғлүмәттәр киңлеге уларҙың каталогтарында булырға тейеш, һәм трасса хәл ителгән мәғлүмәт киңлеге менән бәйләнергә тейеш; башҡаса транзакция сиратҡа баҫҡанға тиклем кире ҡағыла.
Сират был маршрутлау ҡарарын транзакция хеш менән һаҡлай, шуға күрә һуңыраҡ этаптарҙа уны ҡабатлап сығарырға кәрәкмәй. Артабан проект төҙөлөшө трассаның метамәғлүмәттәре менән ике төрлө файҙалана:
- Ул транзакцияларҙы трассаға алмаштыра, шуға күрә бер трасса блокҡа өҫтөнлөк итмәй, сөнки уның транзакциялары беренсе сиратта сиратта тора.
- Ул транзакцияларҙы үтәү берәмеге буйынса сикләүҙәр (TEU) ҡуллана. Транзакциялар, юл һыҙаттарының конфигурацияланған ҡеүәтенән артһалар, күсерелә һәм сиратҡа алына. тик беренсе артыҡ ауырлыҡлы транзакция өсөн юл хәрәкәте ҡамасауламау өсөн рөхсәт ителә.
Ышаныслы тапшырыу ваҡытында Sumeragi тәҡдим ителгән файҙалы йөкләмәне трасса һәм мәғлүмәт киңлеге буйынса туплай. теркәлгән дөйөм һандарға транзакциялар һанын, трансляция киҫәктәрен, файҙалы йөкләнеш байттарын һәм TEU инә. Көтөүҙән һуң был суммалар Sumeragi статусы аша күрһәтелгән трасса һәм мәғлүмәттәр киңлеге йөкләмәһе мгновенье булып китә. Әгәр блокта юлды иҫәпләү квитанциялары бар икән, блок эшкәртеү шулай уҡ юлды хәл итеү йөкләмәләрен һәм эстафета конверттарын булдыра, улар блок башлығын бәйләй, йөкләмә сертификаты, мәғлүмәттәр менән тәьмин итеү йөкләмәһе хэш, иҫәпләү иҫбатлау һәм юлды файҙалы йөкләмә күләме.
Ышаныслы тапшырыу (RBC)
Ышаныслы тапшырыу (RBC) - Sumeragi ның файҙалы йөкте таратыу һәм тергеҙеү юлы. Ул валидаторҙарға һәм күҙәтеүселәргә тәҡдимгә ҡараған блок корпусын алырға йәки сертификат бирергә ярҙам итә, бигерәк тә BlockCreated хәбәрен, блок-синхронлаштырыу яңыртыуын йәки тура файҙалы йөк күсереүҙе һуңға ҡалдырған йәки юғалтҡан осраҡта .
RBC файҙалы йөк кимәлендә эшләй. тәҡдим итеүсе блок бейеклеге, күренеше һәм файҙалы йөк өсөн RBC сессияһын иғлан итә, һуңынан commit топологияһы буйлап файҙалы йөк киҫәктәрен ебәрә. Тиҫтерҙәр өлөштәренең ҡабул ителеүен күҙәтә, кире ҡайтарылған файҙалы йөклөктө рекламаланған хэш менән раҫлай һәм шул уҡ файҙалы йөкләмәне күргәндән һуң READY һәм DELIVER сигналдарын алмаштыра. Сессиялар TTL, киҫәк, fanout, pending-stash һәм persistent-store сиктәре менән сикләнә, шуға күрә тергеҙеү трафикаһы сикһеҙ үҫә алмай.
RBC айырым консенсуслы ҡарар түгел һәм ул commit сертификатын алмаштырмай. Блок әле лә ғәмәлдә булған commit сертификаты һәм урындағы тап килгән файҙалы йөкләнеш булғанда ғына тамамлана. RBC мотлаҡ ҡулланыусанлыҡ иҫбатлауын һәм файҙалы йөкте тергеҙеүҙе тәьмин итә, ә commit прогрессын commit сертификаты плюс урындағы файҙалы йөк йөрөтә. Әгәр сертификат файҙалы йөккә тиклем килһә, peer RBC йәки block sync аша файҙалы йөкне тергеҙә ала һәм һуңынан commit итә ала.
Оператив яҡтан, RBC юғалған файҙалы йөкләмә һәм мәғлүмәттәр менән тәьмин итеү буйынса тотҡарлыҡтарҙы диагностикалау өсөн файҙалы:
iroha --output-format text ops sumeragi telemetryдөйөм тауыш биреү мөмкинлеге, ағымдағы коллекторҙар һанын һәм RBC ултырыштарын күрһәтә.GET /v1/sumeragi/rbcһәмGET /v1/sumeragi/rbc/sessionsTorii буйынса ентекле агрегат һәм актив сеанс мәғлүмәттәрен, шул иҫәптән өлөшлө прогресс, әҙерлек, тапшырыу торошон һәм трасса йәки мәғлүмәт киңлеге артта ҡалыуҙы асыҡлай; ҡарағыҙ Torii һуңғы пункттары .sumeragi_rbc_store_pressure,sumeragi_rbc_backpressure_deferrals_totalкеүек Prometheus сигналдары, һәм артта ҡалыуҙы иҫәпләү өсөн маршрутҡа йәки мәғлүмәт майҙансығына RBC өлгөһө ярҙамында селтәр юғалтыуҙары, киҫәктәрҙе тергеҙеү һәм һаҡлау баҫымы айырыла; ҡарағыҙ Эшмәкәрлек һәм күрһәткестәре.
Kura һаҡланыу планы өсөн сығарылған полоса конфигурацияһын ҡуллана. Һәр полоса blocks/lane_000_core һәм merge_ledger/lane_000_core_merge.log кеүек детерминистик һаҡлау исемдәрен ала; полосаның йәшәү циклы үҙгәрештәрен глобаль блок тәртибен үҙгәртмәйенсә, был сегменттарҙы тәьмин итергә, кисектерергә йәки яңынан билдәләргә мөмкин.