Побудова плотів на Chia за допомогою відеокарти
Останнім часом команда Chia ділиться дуже цікавими новинами. Остання з них це створення плотів на відеокартах за допомогою GPU. А це дуже швидкий спосіб створення плотів для ферми Chia. Наприклад, виробництво плоту k-32 (109 гігабайт) займає півтори хвилини. Але є й свої нюанси до заліза, про які поговоримо нижче.
Вступ
GPU плотинг – це дуже швидкий спосіб створення плотів Chia. Наприклад, для одного графіка на відеокарті RTX 3090, 4070ti проходить за 80-90 секунд. Це половина часу якби ми використовували найшвидший і найсучасніший процесор від Intel Intel Xeon Scalable 4-покоління (ціна процесора починається від 3000 $). Графічна відеокарта набагато доступніша в ціні для фермерів ніж процесор.
Принцип роботи графічного плоттера полягає в тому, що він бере buckets – таблицю, розбиває її на сегменти, подібно до того, як працюють плотери на CPU, і передають ці сегменти графічному процесору для виконання функцій сортування, зіставлення та стиснення, необхідних на етапах створення. Сучасні GPU справляються досить швидко з такими завданнями, чим швидше GPU тим швидше процес обчислення.
Час створення залежить від 2 речей, потужності відеокарти та пропускної спроможності шини PCI Express (англ. Peripheral Component Interconnect Express – шина введення-виводу для підключення периферійних пристроїв до материнської плати комп’ютера). За допомогою класичного способу створення плотів на CPU ми стикаємося з уповільненням у кілька разів. Вузьке горло в недостатньому об’ємі пам’яті для даних потрібно розвантажити дані в тимчасовий файл, записати на жорсткий диск.
Продуктивність графічних процесорів
Графічні процесори стають швидше з кожним поколінням завдяки збільшенню кількості обчислювальних блоків та енергоефективності кремнію. Топові відеокарти NVidia 4090 останнього покоління мають майже вдвічі більшу обчислювальну потужність, ніж 3090. Середнє зростання продуктивності (CARG) близько 25% на рік статистика з 2016 по 2022 рік.
PCI Express (PCIe) – як ми вже говорили раніше, це шина вводу/виводу яка потрібна для роботи пристроїв які підключені до материнської плати. Якщо простішою мовою, це дорога якою обмінюються даними між собою пристрої материнської плати, оперативна пам’ять, відеокарта, центральний процесор тощо. Цей напрямок теж показує стрімкі темпи зростання. PCI-SIG очікує, що пропускна здатність PCIe буде подвоюватися кожні 3 роки. Наприклад, зараз твердотільні накопичувачі від CXL переходять на PCIe Express, це дасть великі можливості для збільшення кеш пам’яті, прискорювачів та мережі до 400 гб\с. На сьогоднішній день PCIe 5.0 де канал x16, може забезпечувати швидкість обміну даними до 64 гб\с в кожному напрямку одночасно, подібно до кількох каналів пам’яті DDR5.
Ще більш дешевий та енергоефективний спосіб побудови плотів.
Спосіб побудови плотів на відеокартах в 2.5 рази ефективніший за найкрутіший при роботі з CPU і в 5 разів ефективніший за побудову на простих SSD жорстких дисках.
Приклад:
AMD 5950X, PCIe 4.0 x16, 128GB DDR4, 2x 980 Pro NVMe, 3060Ti
265 ват\год – при роботі плоттера
4 хвилини – час створення плоту k32 розміром
31.4 ТБ/День at 0.2кВт за терабайт
Реплоттинг ферми розміром 200TB займе близько 7 днів
При стандартному плоттингу на жорстких дисках ця ж процедура зайняла б 26,5 днів.
Plot Grinding або підробка плотів Chia
Можна почати створювати пліт після отримання signage poins та спробувати завершити пліт до infusion point – точки вливання. Це описано на сайті Chia docs. Потім видалити плот після отримання оцінки якості (або після подання доказу, якщо воно відповідає вимогам). Це дозволило б створювати плоти, які автоматично проходять фільтр, дозволяючи займатися майнінгом без фізичних плотів. Це стає можливим лише в тому випадку, якщо фаза 1 плотінгу може бути завершена менш ніж за 28 секунд (до інфузії). Хоча це не зовсім атака на мережу, яка загрожує безпеці, це просто спроба використовувати обчислювальні ресурси замість простору. Ми називаємо це “шліфування плоту” – підробка плотів. Чим більше підроблених плотів зможе зробити зловмисник, тим вищі його шанси на здобуття нагороди.
Скажімо, наприклад, що у нас є нескінченні обчислювальні можливості та ідеальна ефективність програмного забезпечення, і ми обмежені лише пропускною здатністю PCIe. Для завершення фази 1 необхідно завантажити близько 500 ГБ даних у графічний процесор і близько 360 ГБ відправити назад до центрального процесора. Таким чином, теоретична межа для картки PCIe 4.0 x16 становить близько 20 секунд, а для картки PCIe 5.0 x16 – 10 секунд. З POC (Proof of concept, PoC — доказ концепції), ми фактично отримуємо близько 24 секунд передачі обсягу даних, необхідного для фази 1, на графічному процесорі з підтримкою PCIe 4.0.
Plot Filter – Фільтр плотів
Підробка плотів у Chia – це спроба перетворити PoST на PoW. На щастя, Брем передбачав це, і є багато констант у Chia для захисту від цього. Важливими константами, обраними в Chia, є час блоку, мінімальний розмір k мережі і фільтр графіка (Plot Filter). Найважливіший захист від підробки плотів — зробити це неймовірно збитковим та неекономічним, не завдаючи шкоди чесним фермерам, вимагаючи більше ресурсів та часу для здійснення. Прибутковість пропорційна фільтру плотів! Зменшення розміру фільтра плотів миттєво унеможливлює довгі роки.
Константи в proof of space встановлені в Chia
- Signage point time (seconds): 9.375
- Plot filter: 512
- K value minimum: 32
- IO Proof quality check: 9 read requests
- IO Full proof of space (і окремі запитання від bazénу): 64 read requests
- Partials per day: set by pool operators, estimated at 300 for reference
- Average IO size per request (kB): 14
Як працює фільтр плотів у майнінгу Chia:
- Фермер отримує виклик від VDF.
- Фермер відправляє signage point на harvester.
- Harvester застосовує фільтр плотів для зменшення обсягу введення-виводу, необхідного на диску (1/512).
- Для ділянок, що пройшли фільтр, harvester виконує перевірку якості доказу.
- Якщо якість відповідає необхідним ітераціям (від складності), отримати повний доказ простору.
plot filter bits = sha256(plot_id + challenge_hash + sp_hash)
Висновок: Подрібнення, шліфування чи підробка плотів Chia – не вигідна, прибуток падає через маленький розмір ферми та складний механізм.
Підсумок
Створення GPU плоттера для мережі Chia надасть переваги фермерам. Тепер можна набагато швидше створювати плоти, при низьких витратах на споживання енергії більше не потрібні жорсткі диски. Приріст продуктивності до 5 разів у порівнянні із CPU. Продуктивність графічного процесора і пропускна здатність вводу-виводу швидко зростають, і в майбутньому графічні процесори зможуть виконувати 1-шу фазу побудови менш ніж за 28 секунд, що уможливлює підробку плотів незважаючи на те, що це неекономічно/неприбутково. Однак у блокчейні Chia встановлені константи, що запобігають підробці плотів, і ми пропонуємо Фільтр Плотів – CHIP для подальшого зниження прибутковості підробки.