- Повернутися до менюЦіни
- Повернутися до менюдослідження
- Повернутися до менюКонсенсус
- Повернутися до менюСпонсорський матеріал
- Повернутися до меню
- Повернутися до меню
- Повернутися до меню
- Повернутися до менюВебінари та Заходи
Як P2P-рівень біткойна прискорився в останньому випуску CORE
Розробник Корі Філдс, який фінансується Массачусетським технологічним інститутом, розповідає про свою роботу над переробкою коду однорангового рівня Bitcoin Core – завдання, яке було зовсім не простим.

«Satoshi залишив нам монолітну краплю кодової бази».
Таким чином розробник Bitcoin Корі Філдс сказав, що, незважаючи на інновації, які йому часто приписують, код Bitcoin Core — це певний безлад за лаштунками.
Це проблема, з якою Філдс та інші борються щонайменше з 2015 року, коли він представив свої плани для переміщення навколо ONE частини коду: однорангового рівня.
Проблема, з якою часто стикаються розробники, полягає в тому, що компоненти не розділені чітко. Отже, якщо розробники змінять щось, що має вплинути лише на ONE частину Bitcoin та його функціонування, сказав Філдс, це може ненавмисно вплинути на іншу, скажімо, перевірку, mempool, гаманець або p2p. По ONE , це ускладнює Навчання мотузок новими Автори Bitcoin .
Так, у таких проектах, як Fields' і libconsensus (проект, що триває, щоб дозволити альтернативним реалізаціям залишатися в консенсусі з мережею Bitcoin ), мета полягає в тому, щоб розділити код на більш чіткі частини, щоб розробникам було легше та менш необхідно зрозуміти, як частини поєднуються разом.
Філдс, чия робота фінансується Ініціативою цифрової валюти Массачусетського технологічного інституту, працював, зокрема, над створенням однорангової кодової бази.
Значна частина його робіт вперше з’являється в Bitcoin Core останній випуск програмного забезпечення.
Філдс сказав CoinDesk:
«Наскільки мені відомо, це перший масштабний ремонт однорангового коду».
Однак він зазначив, що з часом багато розробників, як-от Йонас Шнеллі та Метт Коралло, долучилися до рівня, і, що важливо, багато інших долучилися до перегляду та тестування змін.
Одноранговий рівень має справу зі з’єднаннями між тисячами Bitcoin вузлів у мережі (можливо понад 50 тис, однак точні підрахунки отримати важко), які постійно «розмовляють» один з одним, передаючи інформацію, коли користувачі надсилають біткойни або майнери створюють нові блоки.
Цікаве помилок
ONE складна частина полягає в тому, що мережа Bitcoin оцінюється приблизно в 19 мільярдів доларів, а це означає, що зміни в базовому коді потрібно вносити дуже обережно.
З цієї та інших причин рефакторинг T непростим процесом. Навіть не для Філдса, який є ONE із багатьох активний Автори Bitcoin CORE. («Я проводжу майже весь свій час неспання за Bitcoin», — сказав він.)
Спочатку він спробував відокремити шар з нуля. Ця спроба "з тріском провалилася".
Його пізніший підхід до роботи над покращенням існуючої кодової бази, мабуть, спрацював краще, ніж очікувалося, що призвело до Цікаве помилки «епохи Сатоші».
«Коли я почав розбиратися, я помітив щось дивне у використанні пропускної здатності Core під час початкового завантаження блоку», — сказав Філдс.
Проблема полягала в тому, що коли вузол завантажував блоки з іншого вузла, швидкість, з якою блоки передавалися, іноді була високою, іноді повільною – і на неочікуваних рівнях.
Копаючи далі, він та інші розробники визначили, що вузли вперто відмовлятимуться надсилати дані та обробляти дані одночасно (хоча це надмірне спрощення). Вузол виконуватиме лише ONE процес за раз.
Виправлення швидкості
Виправлення, до якого нарешті дійшла команда, дебютувало в нещодавньому випуску коду Bitcoin CORE , змінюючи швидкість передачі інформації вузлами ONE одному.
«Зокрема, рівень p2p отримує величезне прискорення», — сказав Філдс.
Він провів кілька тестів, щоб порівняти останню версію Bitcoin (0.13.2) з новою версією з удосконаленнями (0.14.0), розглядаючи вузли, які були розгорнуті в хмарі на екземплярах Amazon EC2 з двома ЦП і 4 ГБ оперативної пам’яті.
Тести показали подвоєння швидкості – принаймні, якщо порівнювати продуктивність надсилання даних між двома вузлами версії 0.13.2 порівняно з двома вузлами версії 0.14.0.

Застереження тут полягає в тому, що, за словами Філдса, це може призвести до підвищення продуктивності в реальній мережі BIT менше ніж у два рази.
Тривалі переваги
Зараз одноранговий рівень здебільшого відокремлений від решти.
Варто повторити, що, окрім вищезазначених покращень продуктивності, більшість змін T помітять користувачі, а є перевагою для розробників.
Тим не менш, є надія, що вони можуть мати довгостроковий вплив.
«Я сподіваюся, що це дозволить нам покращити p2p швидше», — сказав Філдс.
Наприклад, було б складніше внести зміни, включені в останню версію CORE , якби Fields ще не працювали над ізоляцією коду.
Він сказав:
«[T]ут була відносно проста зміна, яку можна було внести вчасно для 0,14, яка раніше була б набагато складнішою».
Швидкий набір зображення через Shutterstock. Зображення Корі Філдса через CoinDesk