Logo
Поділитися цією статтею

Рецензування коду приголомшує: запитання та відповіді з Ендрю Чоу, супроводжуючим Bitcoin

Він наткнувся на Bitcoin у середній школі, коли шукав способи оплати своїх улюблених відеоігор. Тепер він переглядає та вдосконалює код Bitcoin, щоб заробити на життя. Іноді це нудно і приголомшливо, але він все одно це робить. Хтось повинен.

Мало хто розуміє ключові технічні проблеми, з якими зараз стикається домінуюча у світі Криптовалюта. Ендрю Чоу – ONE із них.

Чоу є ONE із чотирьох «підтримувачів» для Bitcoin CORE (або просто CORE), найпопулярніше програмне забезпечення для підключення до мережі Bitcoin .

Продовження Нижче
Не пропустіть жодної історії.Підпишіться на розсилку The Protocol вже сьогодні. Переглянути Всі Розсилки

Супроводжувачі переглядають зміни в Bitcoin CORE , відомі як «коміти», які подаються колегами-розробниками Bitcoin як «запити на витягування» або «PR». Потім Чоу та інші супроводжувачі затверджують або «зливають» ці зміни у вихідний код Core. «Перегляд коду» має вирішальне значення для того, щоб уникнути об’єднання коду з помилками.

Процес прозорий, і коли Чоу прочісує, він фіксує транслює процес у прямому ефірі на Twitch.

Чоу в душі геймер, і він почав займатися Bitcoin лише в середній школі, щоб платити за відеоігри, які він інакше T міг собі дозволити. Його батьки T дали йому кредитну картку, не відкрили йому банківський рахунок і навіть не дали йому допомогу. Він вдався до фрілансу на Форум BitcoinTalk і почав писати код в обмін на Bitcoin (BTC).

Чоу, який каже, що зараз йому близько 20, отримує зарплату як інженер у фірмі Blockstream, що займається інфраструктурою Bitcoin , де, окрім кількох корпоративних завдань, його головним пріоритетом є робота над Bitcoin CORE.

Він каже, що перевірка коду є ONE з найбільших проблем, з якими сьогодні стикається Bitcoin . Більшість розробників CORE зацікавлені в написанні коду для нових функцій, але небагато отримують задоволення від більш приземленого завдання перегляду коду, наданого їхніми колегами. Чоу каже, що більше Автори повинні зосередитися на перевірці коду, щоб впоратися з більш ніж 300 PR-заявами в Core Репозиторій GitHub. Громада має а Bitcoin CORE PR Review Club який збирається щотижня, щоб допомогти Автори Навчання про процес перегляду.

Чоу погодився на інтерв'ю з CoinDesk у Просування Bitcoin конференції в Лондоні. Він детально розповів про те, чому перевірка коду є настільки важливою, пояснив, що Автори Bitcoin CORE роблять щодня, і висловив свою думку щодо поточних дебатів щодо op_vault і Speedy Trial. Ось часткова розшифровка цього інтерв’ю.

CoinDesk: Як ви дізналися про Bitcoin?

Ендрю Чоу: Коли я був молодшим, у старшій школі, у мене T було банківського рахунку, тому що мені було менше 18. Мої батьки T відкривали ONE для мене. У мене T було кредитної картки – навіть кредитної картки під наглядом – і я T мав надбавки. але пар продавав ігри за Bitcoin. Якщо ви граєте на комп’ютері, ви можете завантажити Steam, і в ньому є практично всі комп’ютерні ігри.

Крім того, на purse.io, ви можете продавати Bitcoin за будь-що. Ну, я хотів пограти в ігри. Я хотіла їх купити. Я маю на увазі, що я добре ставлюся до піратства, але, знаєте, піратство – це дещо схематично. Ви T знаєте, що ви завантажуєте. Це може бути зловмисне програмне забезпечення.

Тож я думав, що цей Bitcoin повністю електронний. Можливо, я можу використати це для покупки ігор, але як я можу отримати Bitcoin? Можливо, я зможу працювати й отримувати гроші в Bitcoin.

Я знаю кількох людей, які це зробили. Так я навчився програмувати. Я заходив на BitcoinTalk, і люди казали: «Я заплачу вам скільки завгодно, щоб написати мені сценарій, який це робить».

Ну, це здавалося досить простим. У мене також був друг у старших класах. Він сказав: "Гей, ти чув про цю штуку з Bitcoin ? Думаю, це тобі може сподобатися". Він напевно купував наркотики за Bitcoin.

Так я потрапив у Bitcoin. І врешті-решт я сказав: "Ну, я використовую цей гаманець і зіткнувся з такими проблемами. Я чітко знаю, як написати програму. Можливо, я зможу виправити цей гаманець". Так я почав займатися розвитком.

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

На той час, коли я ним користувався, він був якийсь безлад, і він T завжди працював. Я виявив, що деякі проблеми, які відбувалися в Armory, були спричинені тим, що робив Bitcoin CORE . Тож я почав заходити в Bitcoin CORE і запитувати, що робить Bitcoin CORE ? О, Bitcoin CORE має цю помилку, через яку ми маємо помилку.

Armory робив щось нерекомендоване, а саме читав файли блоків безпосередньо з Bitcoin CORE – ви не повинні цього робити. Коли змінили формат, то зламалося все.

Я намагався примирити їх, а потім Armory просто випав з моєї карти. Ось так я перейшов на Bitcoin CORE. Зрештою я припинив працювати над Armory, тому що зробив більше над CORE.

Вчора ми говорили про співвідношення Автори Bitcoin , які переглядають код, і Автори, хто пише код. Чи можете ви поділитися своїми думками з цього приводу?

Наше основне вузьке місце в Bitcoin CORE переглянуто. У нас понад 300 PR відкриті, і їх потрібно переглянути. Чи просто для того, щоб переконатися, що код хороший, чи просто концептуально на кшталт: «Чи хочемо ми взагалі цих змін?»

Проблема будь-якого PR полягає в тому, що зазвичай його пише ONE людина, але нам потрібно кілька людей, щоб перевірити його, дати схвалення чи залишити коментарі. Тому рецензентів має бути більше, ніж людей, які пишуть, але це не так.

Особисто я вважаю перегляд коду BIT нудним. Це трохи дратує і може призвести до оглушення. Але я все одно це роблю. Я думаю, це як необхідне зло, і це тому, що я T вважаю це веселим. Якщо я роблю це достатньо, я починаю відчувати, що згорю, тому що це більше не приносить задоволення.

Тож вам потрібно знайти певний баланс між написанням коду та переглядом коду. Це BIT заковика-22. У нас має бути більше рецензентів, ніж кодувальників, але як стати достатньо компетентним, щоб перевіряти код, якщо ви не пишете код? Це головоломка.

Ми перебуваємо на ведмежому ринку, і такі організації, як Brink, які фінансують розробку Bitcoin , кажуть, що фінансування скоротилося приблизно на 50%. Чому ми повинні платити Bitcoin Автори і розробникам?

По суті, кожна частина програмного забезпечення має помилки. Завжди будуть помилки, які потрібно знайти, і помилки, які потрібно виправити. Це лише загальне технічне обслуговування програмного забезпечення, яке має відбуватися.

І навіть тоді програмне забезпечення, яке існує зараз, не може існувати вічно. Операційні системи розвиватимуться, а бібліотеки розвиватимуться та змінюватимуться. Згодом програмне забезпечення просто перестане компілюватися на комп’ютері; він може просто перестати працювати. Тому потрібна постійна робота, щоб KEEP його в актуальному стані.

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

Може бути DoS вектори, які ми хочемо виправити або змінити, які, можливо, ще T виявлені. Завжди щось є.

Якщо я новий учасник CORE , про які основні проблеми мені потрібно знати?

Зараз існує низка проблем, наприклад напади закріплення, які досить добре задокументовані. Здається, що їх ONE не використовує, але це не вагомий привід їх не виправляти.

Було багато роботи над mempool – як і які транзакції приймаються в mempool, які існують методи для гонорар натикаєтьсяі тому подібне. Це стосується Блискавка та інші мережі [рівня 2].

Що таке «атака закріплення»?

Якщо ми обидва разом відкриємо канал Lightning, я зможу зробити так, щоб ви ніколи не підвищували комісію за цю транзакцію. Тож я можу зробити його постійно низькою комісією, і він ніколи не буде майнити, а потім спробувати подвоїти його пізніше.

Існує купа атак, які ви можете зробити за допомогою існуючих правил Політика mempool. Це задокументовано в списку розсилки, і це безумовно проблеми. Якби хтось спробував їх використати, це було б неприємно, але я T думаю, що ми бачили, щоб хтось намагався ними скористатися.

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

Вчора ми також обговорювали op_vault і Speed ​​Trial. Навколо рекомендації Джеймса О’Бейрна щодо розгортання op_vault за допомогою Speedy Trial виникла певна напруга. Є коментарі?

З такою новою пропозицією розгортання має бути останнім, про що потрібно думати.

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

Тож я вважаю, що Джеймс, мабуть, помилився. The Стрижневий корінь Розділ розгортання T було визначено до появи Taproot. Самі зміни коду були об’єднані в Bitcoin CORE , але неактивні. Незвично просто сказати, що ми займемося розгортанням після того, як з’ясуємо, якими будуть зміни коду.

Speedy Trial був експериментом для Taproot. Протягом багатьох років ми пробували різні методи розгортання з різним ступенем успіху.

Frederick Munawa
[@portabletext/react] Unknown block type "undefined", specify a component for it in the `components.types` prop
Frederick Munawa