Кожна програма Solana читає й записує той самий стан, тож своп, погашення позики та оновлення оракула можуть виконуватися в одній атомарній транзакції. Почніть із робочого застосунку на Anchor, інтегруйте живу ліквідність і випускайте продукт, дотримуючись практик production.
Властивості, на які можна спиратися під час проєктування протоколу
Атомарна композиційність
Програми викликають одна одну через Cross Program Invocation в межах однієї транзакції. Якщо будь-який крок завершується помилкою, уся транзакція відкочується, тож мультипротокольна стратегія ніколи не виконується наполовину.
Кожна транзакція заздалегідь оголошує облікові записи, які читає та змінює. Середовище виконання паралельно виконує транзакції, що не зачіпають одні й ті самі облікові записи з доступом на запис, тож один завантажений ринок не гальмує непов'язані з ним.
Транзакції, що записують дані в оспорюваний обліковий запис, конкурують за частку блоку, виділену цьому запису. Визначайте пріоритетні комісії за обліковими записами, у які ви записуєте, а не за середніми показниками по всій мережі.
Тривалість slot у mainnet скорочують поетапно, а Alpenglow замінить поточний протокол голосування та фіналізації. Відстежуйте обидва процеси, перш ніж налаштовувати строк дії котирувань, тайм-аути та вікна ліквідації.
Типовий шлях для нового протоколу: Anchor для програми, LiteSVM і Surfpool для тестів, Codama для клієнтів і Kit для застосунку.
01Напишіть програму
Anchor або Pinocchio
Anchor — рекомендований фреймворк для більшості програм, із вбудованими валідацією облікових записів, генерацією IDL і допоміжними засобами CPI. Обирайте Pinocchio, бібліотеку без залежностей, для гарячих шляхів, де важлива кожна обчислювальна одиниця.
Запускайте швидкі тести в межах процесу з LiteSVM або Mollusk. Потім проганяйте інтеграційні тести на Surfpool — локальній мережі, що завантажує облікові записи mainnet на вимогу, тож можна тестувати на реальних пулах і оракулах.
Генеруйте типізовані клієнти на TypeScript і Rust з IDL вашої програми, щоб конструктори інструкцій і декодери облікових записів залишалися синхронізованими з кожним деплоєм.
@solana/kit — стандартний JavaScript SDK. Його плагін гаманців знаходить установлені гаманці через Wallet Standard, без окремих пакетів адаптерів для кожного гаманця.
Ці протоколи публікують документацію для розробників щодо своїх програм і API. Ознайомтеся з документацією та звітами про аудит кожного протоколу, перш ніж спрямовувати через нього кошти користувачів.
Свопи та маршрутизація
Маршрутизуйте свопи через ліквідність Solana за допомогою API агрегатора або запитуйте необроблені інструкції, щоб скласти своп у власній транзакції.
Випускайте активи із вбудованою поведінкою, яку має обробляти ваш протокол: transfer hooks, баланси з нарахуванням відсотків, масштабовані суми в інтерфейсі та конфіденційні перекази.
Лише приклади. Згадка протоколу не є схваленням з боку Solana Foundation.
Доставка транзакцій
Забезпечуйте проходження транзакцій, коли ринки рухаються
Трафік DeFi сягає піку під час волатильності — саме тоді, коли користувачам потрібно, щоб їхні транзакції пройшли. Закладіть це у свій клієнт до запуску в mainnet.
1
Задайте ліміти обчислень і пріоритетні комісії
Симулюйте, щоб виміряти обчислювальні одиниці, задайте щільний ліміт і визначайте пріоритетні комісії за нещодавніми комісіями для облікових записів, у які ви записуєте.
Транзакції v1 збільшують ліміт розміру, а таблиці пошуку адрес стискають довгі списки облікових записів. Кожен варіант має свої компроміси для складних маршрутів.
Відстежуйте закінчення дії blockhash, повторно розсилайте транзакцію, доки вона не пройде або не втратить чинність, і підтверджуйте на рівні commitment, який потрібен вашій логіці.
Програма DeFi може тримати кошти користувачів із першого деплою. Контролюйте, хто може її змінювати, доводьте, що саме розгорнуто, і стежте за її роботою.
Розмістіть повноваження за multisig
Тримайте повноваження на оновлення програми й адміністрування в multisig Squads із тайм-локом на зміни.
Проходьте незалежні аудити до запуску в mainnet і запускайте програму винагород за виявлені вразливості. Solana Foundation фінансує оцінювання безпеки STRIDE та безкоштовні інструменти для команд екосистеми.