Іржа 2020

/
1 min read
                 
             

Що розробники в «Паритеті» хотіли б побачити, як це відбудеться в Расті в 2020 році.

На Паритеті ми дуже рано знаходилися на потязі «Іржа». Окрім кількох конкретних винятків, вся наша кодова база знаходиться в Rust – включаючи клієнт Parity Ethereum, комплект для розробки блокчейна субстрату та мережу Polkadot на основі субстрату. Ми, мабуть, один з найбільших користувачів Rust там і, безумовно, має одну з найбільших баз коду Rust, що дає нам унікальну перспективу в екосистемі. А чому б ми не розвивались у Русті? Іржа – приголомшлива. Ми не змогли би швидко та швидко розробити нові функції та блокчейн-експерименти, якби не система Rust, інструмент позики та наданий інструмент. Цикл швидкого вивільнення Руста також для нас дуже важливий. Наша кодова база субстратів вимагає останньої стабільної, оскільки ми часто зливаємо код, використовуючи останні стабілізовані функції в день, коли новий випуск вийшов, і багато хто з нас насправді розвиваються щоночі. Кудо всім людям, які роблять ці швидкі повороти! Це справді дивовижно.

Хоча деякі можуть подумати, що такий цикл швидкого вивільнення приносить стабільність або якість, у нас такого досвіду не було. Також ми не відчували, що це призводить до появи повзучості або інших поширених побічних ефектів. Зовсім навпаки: загалом, ми вважаємо, що Руст рухається в правильному напрямку. Наприклад, async / await, хоча і не є життєво важливим для нашої кодової бази, є чудовим доповненням, яке робить код набагато більш читабельним. Ми дуже раді бачити цю версію та бачити всю історію асинхронізації, яка продовжує рухатися.

З цього приводу, з великою кодовою базою, ми попереду бачимо деякі унікальні виклики, на які ми хотіли б звернути увагу: деякі помилки та запити щодо мовних функцій, деякі ергономіки та безпеки навколо компілятора та управління. загалом.

Запити про помилки та функції

Навіть невеликі помилки можуть досить швидко накопичуватися у величезній кодовій базі даних. Досить проблематичним для нас є особливість витоку вантажу: у нас багато ящиків, і щоб полегшити тестування інтеграції, ми часто включаємо більші налаштування в залежності від розробників – що найчастіше призводить до набридливих кругових залежностей. Так само ми будуємо (частину) наш проект для Wasm та native одночасно, але оскільки це просочиться через std, нам доведеться вдатися до якихось п … ifty хакерів, яких ми б краще не робили [ 19459008].

Аналогічно, з мовної сторони речей, Субстрат – це в основному загальна рамка розвитку блокчейну – загальна для шифрування та бази даних, яку ви використовуєте. Це стало можливим завдяки чудовим рамкам рис, які надає Раст. Однак і тут ми стикаємося з деякими обмеженнями, над багатьма з яких ми працюємо, але воліємо цього не робити.

Наприклад, додавання пункту “де” до декларації ознаки змушує нас повторювати це , де пов’язане, коли ми хочемо прив’язати тип до цієї ознаки . Або нам потрібно копіювати межі на пов’язаний тип через базу коду . Ми впевнені, що більшість цих проблем із вирішенням ознак буде вирішено шляхом переходу на крейду в rstc . Ми також з нетерпінням чекаємо на Спеціалізацію з Іржі. В даний час субстрат використовує безліч так званих “макро-магічних”, щоб не дозволяти користувачам писати один і той же код знову і знову. Однак багато користувачів не раді, що ми так багато покладаємось на макроси, як це приховує фактичну реалізацію. Ми вважаємо, що ми могли б зменшити використання макрокоманд, просто значно спростивши макроси, коли Rust передає спеціалізацію.

Ергономіка та безпека компілятора
Окрім певних помилок та особливостей, важливим аспектом є ергономіка та безпека компілятора. Ми визнаємо та високо цінуємо роботу, яка була вкладена в оптимізацію продуктивності та покращення часу, але тут теж доводиться вдаватися до досить потворних рішень між ними. З базою даних коду, яка зараз налічує понад 1000 ящиків і переходить на 160kLOC, навіть незначні зміни легко означають восьмихвилинний час компіляції на «звірі». Звір – це наш внутрішній сервер побудови, який ми віддалено завантажуємо для створення, тому що це буде легко взяти вдвічі довше на нашому інакше дійсно приємному обладнання для ноутбуків. Навіть при інкрементальному нарощуванні та зменшенні шкали цикл коду – спробуйте повторити – це просто хвилини за ітерацію. Інші інструменти, призначені для полегшення життя розробників, як-от Аналізатор іржі та RLS, постійно задихаються від нашого проекту.

Ця ситуація ще більше погіршується, коли ми намагаємось змусити людей використовувати субстрат. Субстрат – це набір для розвитку. Замість того, щоб діліб чи двійковий файл, ми повинні доставити весь вихідний код і створити все це на комп’ютері користувача, щоб вони змогли створити свою бібліотеку. Оскільки Rust поки не є широко доступним середовищем розробки, наш головний посібник для роботи містить сценарій, щоб все це налаштувати – що самому займає 45 хвилин у сучасній системі. Хоча оптимізація в минулому в основному була зосереджена на наступних побудовах, час першого налаштування та збірки все ще дуже високий і справжня больова точка змушує людей навіть почати дивитися на Руста. Коли нарешті ми змусили людей завершити налаштування, вони говорять нам, що Іржа – це ДУЖЕ і ідеально підходить саме для того, що ми будуємо.

Крім ергономіки компілятора, безпека для нас є надзвичайно важливою. У нашому проекті працює децентралізована однорангова мережа у ненадійному середовищі. Однією з головних особливостей є надання дозволу властям зазначеної мережі модернізувати свою ділову логіку шляхом надання нового бінарного файлу, складеного Wasm. Ми високо цінуємо зусилля, які доклали для отримання сертифікованого компілятора . Однак те, що викликає більший стурбованість у нашому випадку використання, – це детерміновані побудови. Зрозуміло, ви не можете розраховувати, що всі зможуть самоаналізувати краплі Wasm і зрозуміти, чи буде він робити те, що повинен робити. Однак, якщо ви могли б надати вихідний код і коли хтось створить його (з тією ж версією компілятора), вони придумали бинарну точно таку ж копію, тоді вони могли просто переглянути вихідний код і довіряти цьому. На жаль, наразі це не так, навіть не для std-wasm.

Ми вважаємо, що це також може бути частковим рішенням нашої проблеми першої збірки: якби у нас були детерміновані побудови, ми могли б ділитися кешами збірок по всій системі і, можливо, навіть надсилати заздалегідь заповнені активи, а не завжди потрібно будувати локально – принаймні для всього чистого іржі. Ми були схвильовані, помітивши, що люди відновили роботу над детермінованими будівлями , і ми нетерпляче бачимо, що дає їхня робота в 2020 році.

Управління: управління проектами та очікуваннями [ 19459012]
Для багатьох питань, порушених вище, ми також раді заскочити і допомогти – і в інших питаннях. Зрештою, ми компанія Rust – ми віримо в мову, її екосистему та спільноту і хочемо бути цінним її учасником. Крім того, стабільність та її постійний прогрес є життєво важливими для нашого бізнесу. Таким чином, всі внески в Rust core, std та його прямий інструмент підтримують у Parity, хоча це не дуже просто, коли ви не працюєте на повний робочий день.

У нас теж є члени команди, які зацікавлені допомогти у спеціалізації чи виправленні вищезгаданих помилок. Однак часто незрозуміло, чи варта робота. Для бізнесу важко стверджувати, що можна витратити місяць чи два, працюючи над новою функцією, не маючи жодної впевненості, що прийнятий підхід буде прийнятий. Особисто я вважаю, що це може бути навіть більш засмучуючим, якщо хтось із волонтерських робіт на неповний робочий день може бути викинутий, оскільки це було неприпустимо для початку. Тим не менш, досі немає чіткого шляху до отримання офіційної згоди, лише особистих гарантій – але, як компанія, яка виступає за прозоре управління, ми вважаємо, що повинен бути кращий шлях.

Одним із прикладів того, як цей незрозумілий процес прийняття рішень сприймає своє значення, є дискусія про асинхрон-очікування. Хоча це врешті-решт було вирішено елегантно та задоволенням, емоційна ситуація, яку обговорювали учасники дискусії, припускає, що може бути кращий спосіб. Існує також ефект, що спостерігає: потенціал стикатися з такою напруженою та важкою юрбою може змусити колективів вагатися. Зокрема, люди, які не є носіями англійської мови, можуть не відчувати вміння вільно відстоювати свої позиції, або дописувачі можуть не мати часу проводити участь у дискусіях.

Звичайно, це проблема, яку поділяють багато волонтерських проектів: зі зростаючим внеском зростає зростаюча комунікація, і в якийсь момент, здається, вся основна команда робить спілкування та координацію, що може бути не тим, що ця команда насолоджується. Ми стурбовані тим, що люди залишають громаду через це та пов’язані з цим проблеми. Ми не можемо створити стійку громаду, якщо вона прогоріє через людей!

Якщо виникає питання про те, як ми, як компанія, можемо допомогти або внести ресурси для вирішення деяких структурних та великих питань, то це зводиться до розмови з окремими людьми та конкретними командами, а не прозоро під відкритим небом. . Паритет у розподіленому управлінському бізнесі; ми цінуємо прозорість та прагматизм. Ми не хочемо, щоб жодна сутність мала повний контроль над Іржею (включаючи нас), але хотіла б, щоб це був процес, що охоплює участь, прозорий і демократичний за участю.

Ми вважаємо, що 2020 рік виявить підвищений інтерес (великих) компаній до участі в Rust і, таким чином, стурбований тим, що відсутність офіційного способу участі може спонукати компанії використовувати особисті стосунки та “купувати” місця у за допомогою найму дуже впливових людей. Ми високо цінуємо формування робочих груп з питань партнерства та управління (основний автор цієї статті є поза роботою, є неповним членом робочої групи з управління) і прагнемо дізнатися, що відбувається з цими групами та як ми можемо бути допомогу.

Загалом, ми з нетерпінням чекаємо іржі в 2020 році. Ми більше захоплені Рустом, ніж будь-коли, і цінуємо відкриті дискусії в громаді Іржі. Ми, безумовно, вибрали правильну мову та громаду, на які можна зробити ставку.

            
            
           

Leave a Reply

Your email address will not be published.

Previous Story

Power Ledger’s second commercial deal in Australia, pilots energy trading in India

Next Story

China using blockchain evidence for copyright infringement