Последние время команда 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 (and partial request from pool): 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)
Итог:
Создание GPU плоттера для сети Chia даст преимущества фермерам. Теперь можно намного быстрее создавать плоты, при низких затратах на потребление энергии, больше не потребуются жесткие диски. Прирост производительности до 5 раз по сравнению с CPU. Производительность графического процессора и пропускная способность ввода-вывода быстро растут, и в будущем графические процессоры смогут выполнять 1-ю фазу построения менее чем за 28 секунд, что делает возможным подделку плотов несмотря на то, что это неэкономично/не прибыльно. Однако в блокчейне Chia установлены константы, предотвращающие подделку плотов, и мы предлагаем Фильтр Плотов — CHIP для дальнейшего снижения прибыльности подделки.