Norito
Norito булып тора Iroha Каноник сериализация ҡатламы. Был байт форматы ҡулланылған ваҡытта тиҫтерҙәр, SDKs, CLI ҡорамалдар, Torii, Kura, һәм барлыҡҡа килгән артефакттарҙың тап шул уҡ файҙалы йөкләмә буйынса килешергә тейешлеге билдәле.
Norito данлыҡтың консенсус, ҡултамғалау, хэшинг, ныҡышмалылыҡ йәки SDK-ара хеҙмәттәшлек итеүсәнлек өлөшө булғанда ҡулланығыҙ. JSON һөҙөмтәле нөктә операторҙар өсөн кеше уҡый торған проекция тәҡдим иткәндә ҡулланығыҙ.
Norito ҡайҙа барлыҡҡа килә
| Йөҙөлөш | Norito нисек ҡулланыла? |
|---|---|
| Транзакциялар һәм һорауҙар | Torii аша ебәрелгән ҡул ҡуйылған транзакциялар һәм һорауҙар файҙалы йөкләмәләре Norito тип кодлана. |
| Башланмыш | kagami genesis sign ҡул ҡуйылған .nrt блогын сығара, ул стартапта йөкләнеү менән тиң. |
| Torii тип яуаптар | Типлы бинар яуаптар ярҙамында тамамлау пункттары Accept: application/x-norito ҡуллана. |
| SDKs | Rust, Python, JavaScript, Kotlin/Java, Swift, һәм Android клиенттар ҡуллана Norito ҡул менән йыйылған байттар урынына төҙөүселәр йәки бәйләүҙәр. |
| Kura һаҡлау | Блок файҙалы йөкләмәләре, тергеҙеү сираттағы машиналары, реестры һәм commit markers Norito‐ҡа рамкалы мәғлүмәт булараҡ һаҡлана. |
| Манифесттар | Nexus, мәғлүмәттәрҙең булыуы, SoraFS, трансляция һәм ҡушымтаға ҡараған манифестар ҡулланмаһын ҡулланалар Norito, әгәр манифестҡа ҡул ҡуйырға кәрәк. |
| Стримлау | Norito Стримингта Norito манифесттар, сегмент башлыҡтары, идара итеү кадрҙары һәм конфиденциаль фиксаторҙар ҡулланыла. |
Norito - был аҡыллы килешеү теле түгел, ә операцияларҙы, контракт саҡырыуҙарын, манифесттарҙы һәм API файҙалы йөкләмәләрен алып барған детерминистик конверт һәм кодек.
Хеҙмәт йөкләмәһе моделе
Һәр сымлы йәки дисктағы Norito файҙаланыу йөкләмәһе башлыҡ менән рамкалана, унан һуң кодланған файҙаланыу йөкләнеш байттары килә. Башлыҡһыҙ йәки яланғас файҙаланыу йөкмәткеләре эске хэшинг, эталондар һәм ярҙамсы APIs өсөн һаҡлана, улар һөҙөмтәне транспортҡа тиклем шунда уҡ башлыҡҡа төрөп ҡуялар.
| Баҫма | Оҙонлоғо | Маҡсат |
|---|---|---|
| Магия | 4 байт | ASCII NRT0, Norito булмаған мәғлүмәттәрҙе иртә кире ҡағыу өсөн ҡулланыла. |
| Майор | 1 байт | Төп версияны форматташтырыу. Хәҙерге файҙалы йөкләмәләр 0 ҡуллана. |
| Бәләкәй | 1 байт | V1 өсөн декодлау һылтанмаһы. Хәҙерге ҡиммәте 0x00. Байраҡтар төҙөлөшө һүрәтләй. |
| Схема hash | 16 байт | Тип идентификацияһы типлаулы декодерҙар көтөлмәгән файҙалы йөкләмәләрҙе кире ҡағыу өсөн ҡулланыла. |
| Компрессия | 1 байт | 0 = None, 1 = Zstd. Билдәһеҙ баһалар кире ҡағыла. |
| Яҡшы йөкләмә оҙонлоғо | 8 байт | Бәләкәй ендиан u64 булараҡ ҡыҫырыҡланмаған файҙалы йөк оҙонлоғо. |
| CRC64 | 8 байт | CRC64-XZ ҡыҫырыҡланмаған файҙалы йөктең контроле суммаһы. |
| Байраҡтар | 1 байт | Дөйөм оҙонлоҡтарҙа, пакетта яҙылған эҙмә-эҙлектәрҙә һәм пакетталған һуҡмаларҙа билдәләр ҡуйыу. |
Башлыҡ 40 байтҡа етә. Декодерҙар магияны, версияны, ярҙам күрһәтелгән флаг-масканы, файҙалы йөкләмә оҙонлоғон, чекс суммаһын һәм схема хешын тергеҙер алдынан ҡабатлай.
Ойоштороу флагтары
Norito финал башлыҡ байтында урынлаштырыу һайлағандарын һаҡлай. COMPACT_LEN (0x02Яуаплы даими киңлектәге оҙонлоҡтағы префикстар саҡырыусылар кодлағанда уҡырға мөмкин. flags = 0x00.
| Байраҡ | Хекс | Статусы | Һөҙөмтә |
|---|---|---|---|
PACKED_SEQ | 0x01 | Яҡлау | Күсереүсән күләмле коллекцияларҙы оффсет таблицаһы һәм бер-береһенә тура килгән мәғлүмәттәр блогы менән кодлай. |
COMPACT_LEN | 0x02 | Дефолт | Ҡиммәттәре буйынса оҙонлоҡтағы префикстар өсөн каноник ҡулланмаған варианттар ҡулланыла. |
PACKED_STRUCT | 0x04 | Яҡлау | Кодтар сығарылған-генерацияланған структуралар булараҡ һыйҙырылған баҫыу файҙалы йөкләмәләре. |
VARINT_OFFSETS | 0x08 | Ҡалған | V1 кире ҡаҡҡан; йыһазландырылған эҙмә-эҙләнештәрҙе ҡаплау даими киңлектәге u64. |
COMPACT_SEQ_LEN | 0x10 | Ҡалған | V1 кире ҡағылған; иң юғары кимәлдәге эҙмә-эҙлекле оҙонлоғо башлыҡтары даими киңлек менән u64. |
FIELD_BITSET | 0x20 | Талаптар ярҙамында | Баҫтырылған строктар өсөн биттер йыйынтығын өҫтәй, шуға күрә асыҡ үлсәмгә мохтаж булған ҡырҙар ғына ҙурлыҡ префикстарын йөрөтә. PACKED_STRUCT һәм COMPACT_LEN талап итә. |
Байраҡтар асыҡтан-асыҡ. Декодерҙар пластты файҙалы йөк формаһынан, бәләкәй версиянан йәки эвристиканан һығымта яһамай. Билдәһеҙ йәки ғәмәли булмаған комбинациялар кире ҡағыла, шуға күрә бөтә тиҫтерҙәр ҙә файҙалы йөкләмәне бер төрлө аңлай.
Кодировка ҡағиҙәләре
Norito Iroha мәғлүмәт моделендә күрһәтелгән дөйөм мәғлүмәттәр формалары өсөн детерминистик схемалар ҡуллана:
- Һылтанмалар
[len][utf8-bytes];lenҡулайлаштырылған осраҡтаCOMPACT_LENартынан килә. COMPACT_LENҡуйылғанда, бер баһаға тиклемге оҙонлоҡҡа компактлы варинт ҡулланыла.- Әгәр
COMPACT_LENюҡ икән, бер ҡиммәттәге оҙонлоғо 8 байтлыҡ бәләкәй эндианu64була. - Сиквенция оҙонлоғо башлыҡтары 8-байт аҙ ендиан
u64v1 фиксирован. Vec<u8>бер байтҡа бер оҙонлоҡҡа түгел, ә[len_u64][raw-bytes]тип кодлана.- Баҫтырылған эҙмә-эҙлектәре ҡулланыу
(len + 1)monotonicu64компенсацияһы, һуңынан конкатенат элементтар файҙалы йөкләнеүҙәр. - Карталар яҙма һанын
u64менән кодлай һәм детерминистик клавиша тәртибен ҡуллана.HashMapяҙыуҙар кодлауҙан алда клавиша буйынса sortлана;BTreeMapуның тәбиғи тәртибен ҡулланған. BigIntu32байт оҙонлоғо һәм 512-битлы япмаһы менән ҙур булмаған ике биттең тулыландырыу байттарын ҡуллана.Numeric(mantissa, scale)тип кодлана, унда мантисса бөтөн һандар ҡиммәтен һәм масштаб өлөшлө цифрҙар һанын һаҡлай.
Был ҡағиҙәләр ҡултамғалар һәм хештар өсөн мөһим. ике SDKs бер үк логик транзакция төҙөргә тейеш шул уҡ каноник байттар сығараһы.
Схема һештары
Norito тибындағы файҙалы йөкләмәләр баш биттә 16 байтлы схема хешын йөрөтә. Дефолт хэш тулыһынса квалификациялы тип атамаһынан алынған. Структураль схема һешерен тәьмин итеүсе конструкциялар урынына каноник схеманан хэште ала.
Типлы декодерҙар схема яраҡһыҙлыҡтарын кире ҡаға. Был клиенттарҙы дөрөҫ булмаған типҡа ярашлы Norito кадрҙы осраҡлы рәүештә декодлауҙан һаҡлай һәм SDK ҡоролмалар төркөмө узел мәғлүмәттәр моделенән тайпылағанда ғәҙәти уңышһыҙлыҡ режимы булып тора.
Йығыу һәм тиҙләтеү
Norito логик файҙалы йөкләмәне үҙгәртмәйенсә, асыҡ һәм адаптив сығыуҙы тәьмин итә:
| Функцияһы | Маҡсат |
|---|---|
to_bytes | Баҫманы шифрлау, һуңынан ҡыҫырыҡланмаған файҙалы йөкләмә. |
to_compressed_bytes | Zstd менән кодлағыҙ һәм баш биттә компрессия билдәһен яҙҙырығыҙ. |
to_bytes_auto | Компрессияның файҙалымы-юҡмы икәнлеген билдәләү өсөн детерминистик эвристика ҡулланырға кәрәк. |
| CRC64 тиҙләтеү | Һәр ерҙә портатив CRC64-XZ ҡуллана, әгәр бар икән, x86_64 йәки aarch64 буйынса PMULL менән CLMUL. |
| GPU CRC64 һәм компрессия | Һайланма металл йәки CUDA ярҙамсылары ҙур файҙалы йөкләмәләрҙе тиҙләтә ала, һуңынан CPU юлдарынан кире төшә. |
Хардвер тиҙләтеүе кодланған йөкмәткеһен бер ҡасан да үҙгәртмәй. CRC һәм JSON тиҙләтеүселәре портатив сығарылыш бит-бит менән тура килергә тейеш. Zstd кадр байттары CPU һәм GPU кодерҙары араһында айырмаланырға мөмкин, әммә кодланған файҙалы йөкләмә һәм Norito башлыҡ метамәғлүмәттәрен раҫлау өсөн билдәләү дауам итә.
JSON Ярҙам
Norito үҙ эсенә тыуған JSON кәрәкле һуңғы пункттар һәм ҡорамалдар өсөн туплау JSON ташламайынса Norito тип системаһы.
| JSON функцияһы | Ҡулланыу осрағы |
|---|---|
norito::json::{to_json, from_json} | Детерминистик типланған JSON коды/декоды. |
| Яҡшы һәм яҙыусы ярҙамсылары | CLI сығанағы, ҡушымталары һәм трансляция std::io интеграцияһы. |
| DOM ҡиммәттәр | Norito ның JSON ҡиммәт моделе аша программалы манипуляция. |
| Тиҙ яҙыу JSON | DTO эҫе юлдар өсөн структуралы таҫма нигеҙендә декодлау / кодлау. |
| нуль күсермә уҡыусыһы | Мөмкин булғанда инеүҙең ҡылдарын алған билдәләр сканерлауы. |
| Этап-1 тиҙләтеүсе | Факультатив AVX2, NEON, Металл йәки CUDA структура индексацияһы скаляр һынылыш менән. |
Iroha код өҫтөнлөк бирергә тейеш norito::json типлау өсөн ярҙамсы API файҙалы йөкләмәләр. serde_json етештереү юлдары өсөн схеманан һәм баҫыу менән идара итеү тәртибенән айырмау хәүеф SDKs һәм Torii экстракторҙар.
Дәрәжәле ярҙам
Rust мәғлүмәт төрҙәре, ғөмүмән, ҡулдан килгән кодек коды урынына сығарылыш макроларын ҡуллана. сығарылыш ҡатламы Norito бинар кодектарҙы, схемаларҙы һәм JSON ярҙамсыларын булдыра ала.
Ғәҙәттән тыш өлкә атрибуттары:
| Атрибуты | Һөҙөмтә |
|---|---|
#[norito(rename = "other")] | Схема һәм JSON яраҡлаштырыу өсөн тотороҡло сериаллы исем ҡуллана. |
#[norito(skip)] | Кодлаусы яланы ситләтә. Декодер уның Default баһаһын бирә. |
#[norito(default)] | Default ҡуллана, әгәр декодланған файҙалы йөк баҫыуҙы йөрөтә алмай. |
#[norito(skip_serializing_if = "...")] | Детерминистик декодлау ҡағиҙәләрен һаҡлап алып, predicate тап килгәс JSON майҙандарынан ситләтелә. |
Асылыштар шулай уҡ кодланған оҙонлоҡтағы күрһәткестәрҙе һәм мөмкин булған ерҙә теүәл оҙонлоҡҡа иҫәпләүҙәрҙе аса. Кодлаусылар был кәңәштәрҙе буферҙарҙы һаҡлап ҡалыу һәм өҫтәмә күсермәләрҙе булдырмау өсөн ҡуллана.
Ҡәҙналы ғаиләләр
Iroha йәки SDK бәйләнештәрен сығанаҡтан төҙөгәндә, Norito үҙенсәлектәре ярҙамсы һәм тиҙләтеүселәрҙең ниндәй булыуын һайлай:
| Ҡалыптар ғаиләһе | Ул нимәгә булышлыҡ итә ? |
|---|---|
derive | Банар, схема һәм JSON сығарылмалары өсөн ҡабаттан экспортланған процедура макроһы. |
compression | Zstd support for header-frameed payloads. |
packed-seq | Оффсет таблицалары ярҙамында йыйылмалар әҙерләү. |
packed-struct | Баҫмалы сығарылмалар менән барлыҡҡа килгән структуралар. |
compact-len | Varint оҙонлоғо буйынса prefixes. |
columnar | Norito Колонна блоктары, адаптив AoS/NCB сират кодэктары һәм сканерлыҡ ауыр юлдары өсөн алынған ҡараштар; default node-codec функциялар йыйылмаһына индерелгән. |
strict-safe | Паникаларҙы декодлау хаталы юлдары структуралаштырылған хаталарға әйләндерә. |
simd-accel | CPU тиҙләтеү, әгәр мөмкин булһа, детерминистик кире ҡайтыу менән. |
json | Туған JSON анализлаусы, яҙыусы, DOM, типланған сығарылмалар һәм тиҙ юлдары. |
json-std-io | Уҡыусы һәм яҙыусы ярҙамсылары JSON стекҡа ҡатламы менән ҡуйылған. |
metal-stage1, cuda-stage1 | Факультатив GPU JSON структура индексы битлектәре. |
metal-stage2 | JSON конструкция таҫмаһы өсөн металл метаданмалар классификацияһы. |
metal-crc64, cuda-crc64 | GPU CRC64 ярҙамсылары ҙур йөк өсөн. |
gpu-compression | Вариантлы металл йәки CUDA Zstd тиҙләтеү ҙур файҙалы йөк өсөн. |
stage1-validate | Тиҙерәкләштерелгән JSON структура индекстарын скаляр сығанаҡ менән сағыштырыусы дебаг раҫлау. |
SDKs һәм релиз профилдәре араһында үҙенсәлектәре булыуы мөмкин. Сел форматы урындағы төҙөлөш флагтары түгел, ә баш бит һәм схема менән идара ителә.
Torii һәм Norito RPC
Torii күп оператор маршруттары өсөн JSON асыра, әммә типланған бинар маршруттарҙа Norito ҡулланыла. ток типланған Norito HTTP корпустары өсөн медиа тибы application/x-norito.
Norito тип яҙылған йомғаҡлау пункты ҡабул иткәндә йәки кире ҡайтарғанда ошо башлыҡтарҙы ҡулланығыҙ:
Content-Type: application/x-norito
Accept: application/x-noritoӘгәр һуңғы пункт ике күрһәткесте лә хуплай икән, клиенттар асыҡ өҫтөнлөк исемлеген ебәрә ала:
Accept: application/x-norito, application/jsonДекодлау етешһеҙлектәре тип яҙылғанса барлыҡҡа килә . Torii хаталар һәм телеметрия буйынса иҫәпләнгән. ярҙамһыҙ версия, ярҙамһыҙ функциялар флагы, иҫкәртеү суммаһының тап килмәүе, хаталы формалаштырылған UTF-8, валид Enum билдәһе, һәм схема буйынса тап килмәй.
Norito RPC транспорты транспорт конфигурацияһы аша һайлана. Оператор панелдәрендә үтенестәрҙең кисектерелеүе, өҙлөгөүҙәр, актив бәйләнештәр, яуап байттары һәм torii_norito_decode_failures_total трафигы JSON трафигынан айырым күҙәтелә тейеш.
Norito Ағымлаштырыу
Norito Стриминг шул уҡ детерминистик алымды медиа һәм реаль ваҡыт транспорты өҫкө йөҙҙәренә киңәйтә. Уның төп өлөштәрендә:
| Стриминг функцияһы | Маҡсат |
|---|---|
| Манифесттар | Сегмент йөкләмәләрен, хосусилыҡ маршруттарын, мөмкинлектәрен, кодек профилен, шифрлау комплекттарын һәм контент төп метамәғлүмәттәрен белдерә. |
| Сегмент башлыҡтары | Бинд сегмент номеры, оҙайлығы, киҫәк һанын, ваҡытын, энтропия режимын, аудио йомғаҡлауҙы һәм Меркл тамырҙарын. |
| Ваҡытлы йөкләмәләр | Тамашасыларға һәм эстафеталарҙы хеҙмәтләндереүгә йәки декодлауға тиклем манифестҡа ҡарата файҙалы йөклөктө тикшерергә рөхсәт итегеҙ. |
| Контроль кадрҙары | Манифест иғлан, фекер алышыуҙар, төп яңыртыуҙар һәм мөмкинлектәре буйынса һөйләшеүҙәр алып барыу. |
| HPKE төп яңылыҡтар | Транспорт серҙәрен килешеүҙәр буйынса һәм монотонно арта торған счетчиктар ярҙамында әйҙәгеҙ. |
| Мөмкинлек буйынса һөйләшеү | Ҡатнашыусы функциялар биттәре, датаграмма сикләүҙәре, кире ҡайтыу циклы һәм хосусилыҡ талаптары. |
| FEC һәм фекер алышыу | Детерминистик ҡабул итеүсе отчеттары һәм юғалтыу реаль ваҡыт юлдары өсөн паритет ҡарарҙары ҡулланыла. |
| Тейешлек векторҙары | Телдәр араһындағы ҡушымталар SDKs шул уҡ манифесттарҙы, сегменттарҙы һәм энтропия ағымдарын декодлауын иҫбатлай. |
Стриминг-специфик кодектар һәм энтропия профилдәре төп Norito транзакция / һорау форматынан айырылып тора, әммә уларҙың манифесттары һәм идара итеү мәғлүмәттәре һаман да Norito ҡуллана, шуға күрә маршрутизация, иҫәпләү, ҡабаттан уйнатыу һәм аудит иҫбатлауҙары ҡабатланмаҫ булып ҡала .
Операция буйынса күрһәтмәләр
- SDK төҙөүселәрҙе һәм ҡул менән эшләнгән Norito байтҡа ҡарағанда барлыҡҡа килгән бәйләнештәрҙе өҫтөнлөк биреү.
- Схеманың тап килмәүен версия йәки ҡоролма проблемаһы булараҡ ҡарағыҙ, ваҡытлыса селтәр боҙолоуы тип түгел.
- Архив
.nrt,.norito, һәм уларҙы барлыҡҡа килтергән иреккә сығарыу йәки инцидент төрөндәге манифест артефакттары. - Ҡулланыу Norito ҡул ҡуйылған, һешланған йәки һаҡланған мәғлүмәттәр өсөн дөрөҫлөктөң сығанағы булараҡ. JSON Дашбордтар һәм ҡул менән тикшереү өсөн проекциялар.
- Яңы типланған Torii һуңғы нөктәһен өҫтәгәндә, ул JSON, Norito йәки икеһен дә ҡабул итәме-юҡмы икәнен документта ҡалдырығыҙ һәм
/openapiбуйынса ярҙам ителгән йөкмәтке төрҙәрен күрһәтегеҙ. - Акселераторҙы эшләтер алдынан, скаляр сығанаҡтарға ҡарата паритлыҡ һынауҙарын үткәрегеҙ. Әгәр акселератор уңышһыҙлыҡ кисерһә, детерминистик скаляр кире төшөүҙе ҡулланығыҙ. Яҡшы йөкләмә семантикаһы үҙгәрешһеҙ һаҡланырға тейеш.
Төрлө биттәр
- Torii сикләү пункттары
- Башланмыш шиғыры
- Мәғлүмәттәр моделе схемаһы
- JavaScript /TypeScript SDK
- Python SDK
- Swift һәм iOS SDK