Skip to content

Донъя

World - башҡа ойошмаларҙан торған глобаль берәмек. World түбәндәгеләрҙән тора:

Домендар, тиңдәштәре йәки ролдәр теркәлгәндә йәки теркәлмәгәндә World (un) register инструкцияһының маҡсаты булып тора.

Донъя хәле күренеше (WSV)

World State View - хәҙерге блокчейн дәүләтенең иҫтәлектәге сағылышы. Ул World, йөкмәтелгән блок хэштегтарын, транзакция индекстарын һәм ғәмәлдәге эпоха өсөн һайланған тиҫтерҙәрҙе үҙ эсенә ала. Блоктың тулы файҙалы йөкләмәләре үҙгәреүсән WSV мәғлүмәттәр булараҡ ҡабатланмайынса Kura тан хеҙмәтләндерелә.

Ҡоролтай WSV Һорауҙар уҡыла һәм блоктарҙы үтәү мутациялай. Даими тарихы һаҡлана . Kura, һәм WSV үҙгәртеп ҡорорға мөмкин Kura блоктар йәки загруженынан торошо фотоһүрәт һәм һуңынан тоташтырыу менән яңы Kura блоктар.

WSV эҙҙәре нимәлә

WSV объект World объектына ҡарағанда киңерәк, ғәмәлдә ул:

  • World: параметрҙар, тиҫтерҙәр, домендар, иҫәптәр, активтар, NFTs, ролдәр, рөхсәттәре, ҡуҙғатыуҙар, башҡарыусы мәғлүмәт һәм башҡа теркәлгән мәғлүмәттәр моделе объекттары.
  • Ҡатнашылған блок-хашистар һәм иң һуңғы йөкләмәле бейеклек
  • Һорауҙар һәм квитанциялар менән ҡулланылған транзакция-блок индекстары
  • консенсус буйынса ҡулланылған ағымдағы һәм элекке commit topology
  • Ҡатнашылған блоктарҙан алынған иҫтәлекле индекстар, мәҫәлән, мәғлүмәттәр менән тәьмин итеү буйынса йөкләмәләр, ҡабул итеү курсорҙары, пин-интенттар һәм һорау проекцияһы билдәләре
  • Дитерминистик блоктарҙы үтәү өсөн кәрәкле, криптография, идара итеү, торба линияһы, йөкмәтке, иҫәп-хисап һәм Nexus параметрҙары кеүек хәрәкәт ваҡыты конфигурацияһы һыҙаттары

Һорауҙар ғәҙәттә был структуралар өҫтөндә уҡырға ғына StateView ала. Күреү һорауҙы башҡарыу өсөн эҙмә-эҙлекле фотоһүрәт булып тора; ул WSV туранан-тура мутацияһын рөхсәт итмәй.

WSV нисек үҙгәрә?

WSV үҙгәрештәр башҡарылғанға тиклем этаплаштырыла. Блок үтәлеше блок масштабындағы дәүләт ҡатламын барлыҡҡа килтерә, һәм ҡабул ителгән һәр транзакция үҙ күрһәтмәләрен транзакция масштабындағы ҡатламда ҡуллана. Был транзакциялар шул уҡ блок контексында эшләй. Ваҡыт триггерҙары блок өсөн транзакция эффекттарынан һуң баһалана.

Консенсус блокты йөкмәткәндән һуң, коллега тәүҙә йөкләмәне үтәгән блокты Kura. Әгәр был сираттағы аҙым уңышһыҙ булһа, WSV үҫешмәгән һәм консенсус петляһы ҡабаттан блогы файҙалы йөкләнеште талап итә. блок ҡабул ителгәндә Kura сираттағылар, Iroha башҡарыуҙан һуң блок эффекттарын ҡуллана, сығарылған индекстарҙы яңырта һәм этаплаштырылған WSV Был уҡыусыларҙы өлөшләтә йөкмәтелгән блокты күҙәтеүҙән һаҡлай.

Консенсус-критик ҡағиҙә - тиҫтерҙәр бер үк WSV шул уҡ йөкмәтелгән блоктарҙан килеп етергә тейеш. WSV мәғлүмәттәрҙе ситләтеү күрһәтмәләренә урындағы төҙәтмәләр тура килтереү һәм тиҫтерҙәрҙе раҫлау йәки ҡабаттан уйнатыу ваҡытында ризаһыҙлыҡ тыуҙырасаҡ.

Старт һәм ҡабаттан уйнау

Башланғанда, Iroha башланғыстар Kura тәүҙә һәм һаҡланған блок бейеклеген өйрәнә. Һуңынан ул дәүләт фотоһүрәттәрен йөкләргә тырыша. Әгәр ҙә фотоһүрәт юҡ, йәки әгәр фотоһүрәттәр кире ҡайтарылырға мөмкин тип кире ҡағылған икән, Iroha башланғыс дәүләтте булдыра һәм commited блоктарҙы ҡабаттан Kura. Әгәр мизгелле фотоһүрәт ғәмәлдә, әммә артта Kura, Юҡ булған бейеклек диапазоны ғына ҡабатлана.

Реплей һәр һаҡланған блокты раҫлай, шул бейеклек өсөн commit реестрын реконструкциялай, блок эффекттарын WSV-ға ҡуллана һәм һөҙөмтәле торошто commit итә. Был Kura - WSV өсөн тергеҙеү юлы, ә мгновенные снимки бөтә сылбырҙы ҡабаттан уйнауҙан ҡаса торған оптимизация булып тора.

Kura Һаҡланыу

Kura - Iroha-ның даими блок һаҡлауы. Ул ҡул ҡуйылған блоктарҙы һәм тергеҙеү метамәғлүмәттәрен һаҡлай. WSV-нең икенсе үҙгәреүсән күсермәһен һаҡламай

Kura һаҡлағысы kura.store_dir адресында тамырлана. Был тамыр эсендә блок мәғлүмәттәре трасса йәки сегментҡа бүленә.

ЮлМаҡсат
blocks/<segment>/blocks.dataNorito менән бер рәттән төҙөлгән ҡул ҡуйылған блок йөкләмәләре.
blocks/<segment>/blocks.indexБилдәле ҙурлыҡтағы (start, length) яҙмалары карта блогы бейеклеге менән байттарҙа blocks.data.
blocks/<segment>/blocks.hashesТиҙ эҙләү һәм старт раҫлау өсөн бейеклеге буйынса хэштегтарҙы блокировкалау.
blocks/<segment>/blocks.count.noritoКүп кенә блоктар индексы яҙмалары ҡулланыу өсөн хәүефһеҙ икәнен теркәгән һаҡсыл commit marker.
blocks/<segment>/da_blocks/Диск-бюджет үтәү иҫке кәүҙәләрҙе эҫе файлдан сығара торған ваҡытта blocks.data ситтә тотолған блок файҙалы йөкләмәләр.
blocks/<segment>/pipeline/sidecars.norito һәм sidecars.indexБлок бейеклеге буйынса клавиатуралы торбаларҙы тергеҙеү машиналары.
blocks/<segment>/pipeline/roster_sidecars.norito һәм roster_sidecars.indexБлок синхронлаштырыу һәм ҡабаттан уйнатыу өсөн ҡулланылған яңы commit-roster sidecars.
merge_ledger/<segment>.logҠатнашылған блоктар менән һыҙыҡ өҫтөнә алынған берләшмә иҫәп-хисап яҙмалары.
commit-rosters.noritoҺуңғы блоктар өсөн йөкләмә сертификаттары һәм раҫлаусы контроль пункттары һаҡлана.

Kura сылбыр өсөн ваҡ хәтер векторын һаҡлай: һәр бейеклектә блок хэшиғы һәм, мөмкин булһа, блок корпусы бар. Генезис блогы кэш булып ҡала, ә һуңғы kura.blocks_in_memory генезис булмаған блоктары үҙҙәренең органдарын хәтерҙә тоталар. Иҫке блоктарҙың кәүҙәләре хәтерҙән төшөрөлгән һәм кәрәк саҡта Kura файлдарынан ҡабаттан тултырылған.

Инициализация ваҡытында strict режимы блоктарҙан һаҡланған блоктарҙы раҫлай һәм кәрәк булһа хэш файлын яңынан яҙа. fast режимы һаҡланған хэш/индекс метамәғлүмәтенән башлана һәм, әгәр был метамәғлимәттәр эҙмә-эҙлекле икән, ҡаты инициализацияға кире төшә. Әгәр Kura боҙолған ҡойроҡто асыҡлаһа, ул һаҡлауҙы һуңғы раҫланған блокҡа тиклем һөртә.

Kura яңы блоктарҙы фоновый яҙыусы аша яҙа. Яҙыусы блоктарҙың файҙалы йөкләмәләрен, хэштегтарын һәм индекс яҙмаларын ҡуша, һуңынан конфигурацияланған fsync сәйәсәте буйынса оҙайлы иҫәп билдәһен алға сығара. Диск-бюджет үтәлеше әүҙем булғанда, Kura пенсияға сыҡҡан сегменттарҙы таҙарта йәки иҫке блоктарҙы da_blocks/ эсенә ҡыуып сығара ала, шул уҡ ваҡытта хэштегтар һәм индекс яҙмалары раҫлау һәм эҙләү өсөн ҡулланыла.