Нахустин нашри устувори Arti, татбиқи расмии Tor in Rust

Таҳиягарони шабакаи беном Tor аввалин версияи устувори (1.0.0) лоиҳаи Arti-ро таҳия карданд, ки муштарии Tor-ро бо Rust навишта шудааст. Нашри 1.0 барои истифода аз ҷониби корбарони умумӣ мувофиқ қайд карда шудааст ва ҳамон сатҳи махфият, қобили истифода ва устувориро ҳамчун татбиқи асосии C таъмин мекунад. API-и пешниҳодшуда барои истифодаи функсияҳои Arti дар дигар замимаҳо низ устувор карда шудааст. Рамз дар доираи иҷозатномаҳои Apache 2.0 ва MIT паҳн карда мешавад.

Баръакси татбиқи C, ки аввал ҳамчун прокси SOCKS тарҳрезӣ шуда, сипас ба ниёзҳои дигар мутобиқ карда шудааст, Arti дар аввал дар шакли китобхонаи модулии дохилшаванда таҳия шудааст, ки онро барномаҳои гуногун истифода бурдан мумкин аст. Илова бар ин, ҳангоми таҳияи лоиҳаи нав, тамоми таҷрибаи қаблии таҳияи Tor ба инобат гирифта мешавад, ки аз мушкилоти маълуми меъморӣ канорагирӣ мекунад ва лоиҳаро модулӣ ва самараноктар мекунад.

Сабаби дубора навиштани Tor дар Rust ин хоҳиши ба даст овардани сатҳи баландтари амнияти код тавассути истифодаи забони аз хотираи бехатар буд. Ба гуфтаи таҳиягарони Tor, ҳадди аққал нисфи тамоми осебпазириҳои аз ҷониби лоиҳа назоратшаванда ҳангоми татбиқи Rust бартараф карда мешаванд, агар код блокҳои "хавфнок" -ро истифода набарад. Rust инчунин имкон медиҳад, ки нисбат ба истифодаи C суръати тезтар рушдро ба даст орем, аз сабаби ифодаи забон ва кафолатҳои қатъӣ, ки ба шумо имкон медиҳанд, ки вақтро барои тафтиши дукарата ва навиштани коди нолозим сарф накунед.

Дар асоси натиљањои тањияи нусхаи аввал, корбурди забони русї худро сафед кард. Масалан, мушоҳида карда шуд, ки дар ҳар як марҳила нисбат ба коркарди муқоисашаванда дар C дар коди Rust камтар хатогиҳо содир карда мешаванд - хатогиҳое, ки дар ҷараёни таҳия ба миён омадаанд, асосан ба мантиқ ва семантика алоқаманд буданд. Компилятори аз ҳад зиёд серталаб rustc, ки аз ҷониби баъзеҳо камбудӣ қайд карда шудааст, воқеан баракат шуд, зеро агар код тартиб дода, аз санҷишҳо гузарад, эҳтимолияти дурустии он ба таври назаррас меафзояд.

Кор дар болои варианти нав инчунин афзоиши суръати рушдро тасдиқ кард, ки ин на танҳо ба он вобаста аст, ки функсияҳо дар асоси қолаби мавҷуда дубора эҳё карда шудаанд, балки ба семантикаи бештар ифодаёфтаи Rust, китобхонаҳои функсияҳои қулай ва истифодаи амнияти коди Rust вобаста аст. қобилиятҳо. Яке аз нуқсонҳо андозаи калони анҷуманҳои натиҷавӣ мебошад - азбаски китобхонаи стандартии Rust дар системаҳо ба таври нобаёнӣ таъмин карда намешавад, он бояд ба бастаҳои барои зеркашӣ пешниҳодшуда дохил карда шавад.

Нашри 1.0 асосан ба кори асосӣ дар нақши муштарӣ тамаркуз мекунад. Дар версияи 1.1 ба нақша гирифта шудааст, ки дастгирии нақлиёти плагин ва пулҳо барои гузаштан аз блоккунӣ амалӣ карда шавад. Интизор меравад, ки версияи 1.2 хидматҳои пиёзӣ ва хусусиятҳои алоқамандро, аз қабили протоколи назорати консессия (RTT Congestion Control) ва муҳофизат аз ҳамлаҳои DDoS -ро дастгирӣ кунад. Барои филиали 2.0 ноил шудан ба баробарӣ бо муштарии C ба нақша гирифта шудааст, ки он инчунин барои истифодаи Arti дар код бо забонҳои гуногуни барномасозӣ пайвандҳоро пешниҳод мекунад.

Дар тӯли чанд соли оянда, кор ба татбиқи функсияҳое равона карда мешавад, ки барои идора кардани релеҳо ва серверҳои директория заруранд. Вақте ки рамзи Rust ба дараҷае мерасад, ки метавонад версияи C-ро комилан иваз кунад, таҳиягарон ният доранд ба Arti мақоми татбиқи асосии Tor диҳанд ва нигоҳ доштани татбиқи C-ро қатъ кунанд. Версияи C тадриҷан аз байн бурда мешавад, то ба муҳоҷирати осон иҷозат диҳад.

Манбаъ: opennet.ru

Илова Эзоҳ