Агентна архітектура в Solana: як ми боролися за мілісекунди

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Інтегрувати LLM у Solana-стек — це як намагатися засунути двигун від трактора в болід F1. Проблема не в тому, що ШІ «тупий», а в таймінгах. Поки модель генерує відповідь, стан мережі встигає змінитися п’ять разів. Слот у 400ms не прощає затримок. Нам довелося переглянути весь шлях даних — від отримання байтів до підпису транзакції, щоб система не «лягла» під навантаженням.

Вхідні дані без сміття: Geyser та Zero-copy

Стандартний JSON-RPC через запити — це шлях у нікуди. Занадто повільно, занадто багато оверхеду. Ми одразу пішли в Geyser. Це дозволяє стрімити змінені акаунти напряму з валідатора в пам’ять агента. Але отримати сирі байти — лише половина справи.

Щоб не витрачати ресурси на парсинг, юзаємо Zero-copy десеріалізацію через bytemuck. Ми просто накладаємо структуру на офсети в пам’яті. Жодного копіювання, жодного зайвого аллокейту. Агент бачить актуальний стейт практично в момент його зміни на чейні. Це дозволяє моніторити тисячі пулів одночасно без фризів.

Паралелізація без колізій

Sealevel дозволяє Solana виконувати транзакції паралельно, якщо вони не чіпають одні й ті самі акаунти. Ми перенесли цю логіку на рівень агентів. Використовуємо Account Sharding: розкидаємо логіку на окремі воркери, де кожен тримає свій сектор Writable-акаунтів. Це фіксить race conditions ще до того, як транзакція буде сформована. Кожен агент знає своє місце і не лізе в чужий стейт.

Детермінізм у хаосі: Rust Guardrails

Довіряти ШІ підпис транзакцій — самогубство. Тому ми впровадили Rust Guardrails. Це жорсткий проміжний шар, який валідує все, що «надумав» агент.

  • Whitelist: Перевірка Program IDs на рівні байт-коду. Ніяких лівих адрес.
  • Pre-flight simulation: Кожна пачка інструкцій летить у симуляцію через simulateTransaction. Якщо баланс після виконання не сходиться з очікуваним хоча б на один лампорт — транзакція дропається. Це наш запобіжник від галюцинацій.

Доставка: Jito Bundles замість спаму

Навіть ідеальна транзакція нічого не варта, якщо вона застрягла в мемпулі або її з’їли боти. Ми не спамимо через звичайні RPC. Тільки Jito Bundles. Формуємо бандл, докидаємо tip і відправляємо напряму валідаторам.

Це дає атомарність: або все виконується одним шматком, або нічого. Плюс — ми «в доміку», боти нас не бачать у публічному мемпулі, а MEV-ризики зведені до мінімуму.

Що в результаті?

Сьогодні інженерія в блокчейні — це вже не про написання тисяч рядків коду. Це про архітектуру. Важливо не те, як ти пишеш синтаксис, а те, як ти проектуєш логічні ланцюги (Chain of Thought) та обмежуєш їх залізобетонними валідаторами. Код став дешевим. Швидкість і безпека — ні.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Ctrl + Enter
Ctrl + Enter

А навіщо взагалі займалися кама-сутрою?

Підписатись на коментарі