Что такое Kora?
Kora — это уровень абстракции комиссий для Solana, который позволяет пользователям оплачивать комиссии за транзакции токенами SPL вместо SOL (или полностью избегать комиссий за транзакции). Это JSON-RPC сервер, который действует как платёжный агент, спонсируя комиссии за транзакции в сети Solana и принимая оплату в токенах, которые поддерживает ваше приложение.
Проблема: Пользователям нужен SOL для оплаты комиссий за транзакции в Solana, что создаёт трения для приложений, где пользователи в основном владеют другими токенами (например, платёжный кошелёк, который использует только USDC, или игра, которая работает только с BONK и т.д.).
Решение: Операторы узлов Kora принимают оплату комиссий в токенах SPL, проверяют и подписывают транзакции, а также оплачивают сетевые комиссии своим собственным SOL — создавая для пользователей опыт без комиссий.
Примеры использования
- Необанки: Позволяют пользователям отправлять USDC без необходимости иметь SOL для комиссий
- Игры: Игроки тратят внутриигровые токены для всех транзакций
- Ликвидный стейкинг: Дают возможность пользователям вашего dApp держать/использовать ваши токены ликвидного стейкинга вместо нативного SOL
- Программы лояльности: Награждайте пользователей определённым количеством субсидированных комиссий в зависимости от их уровня лояльности
Ключевые возможности
- Безопасность: Настраиваемые правила валидации для программ, токенов и аккаунтов
- Гибкое ценообразование: Поддержка нескольких токенов для оплаты комиссий с ценами в реальном времени
- Простое развёртывание: Готовый к развёртыванию Kora CLI crate
- Удобство для разработчиков: JSON-RPC API с CLI и TypeScript SDK для бесшовного взаимодействия с Solana Kit
- Готовность к production: Встроенное ограничение скорости, мониторинг и функции безопасности
Как это работает
Узлы Kora работают как промежуточное ПО между вашим приложением и Solana. Все транзакции в Solana требуют, чтобы плательщик комиссии подписал транзакцию и покрыл сетевые комиссии за транзакцию в SOL. Кроме того, транзакциям могут потребоваться подписи от других кошельков в зависимости от логики программы (например, переводы токенов требуют подпись владельца токена).
Kora анализирует транзакции Solana перед их отправкой в сеть, проверяет соответствие настроенным требованиям безопасности узла и подтверждает, что транзакция включает адекватную инструкцию оплаты SPL-токенами оператору узла. После проверки Kora подписывает транзакцию как плательщик комиссии и возвращает полностью подписанную транзакцию приложению для отправки в сеть.
Процесс обработки транзакций Kora
- Пользователь инициирует транзакцию
- Приложение создает транзакцию (с инструкцией оплаты токенами оператору узла Kora)
- Пользователь подписывает транзакцию
- Приложение отправляет подписанную транзакцию оператору узла Kora
- Kora проверяет транзакцию на соответствие настроенным правилам (разрешенные программы, токены и т.д.) и подтверждает, что оплата достаточна для покрытия сетевых комиссий (на основе текущих рыночных цен через оракул)
- Kora подписывает проверенную транзакцию как плательщик комиссии и возвращает её приложению
- Приложение отправляет подписанную Kora транзакцию в Solana для обработки
- Solana обрабатывает транзакцию: SPL-токены поступают оператору узла, комиссии SOL оплачиваются Kora, а транзакция пользователя обрабатывается
- Приложение подтверждает успешное завершение транзакции и уведомляет пользователя
Пользователь успешно завершает транзакцию, используя только SPL-токены, в то время как Kora берет на себя все сетевые комиссии, номинированные в SOL.
Процесс обработки транзакций Kora
Ключевые термины
- Плательщик комиссии: Аккаунт-подписант транзакции Solana, который покрывает сетевые расходы, связанные с обработкой транзакции в блокчейне.
- Gas (или комиссии за gas): Расходы, связанные с отправкой и подтверждением транзакций в Solana (оплачиваются в SOL).
- Gasless-ретранслятор: Сервис, который облегчает отправку блокчейн-транзакций от имени пользователей без необходимости прямой оплаты комиссий за gas (Kora является gasless-ретранслятором).
- JSON-RPC: Протокол удаленного вызова процедур (RPC) без сохранения состояния, использующий JSON (JavaScript Object Notation) для сериализации данных. Он обеспечивает взаимодействие между клиентом и сервером, позволяя клиенту вызывать методы на сервере как если бы они были локальными функциями.
- Оракул: Сервис, предоставляющий данные о ценах токенов в режиме реального времени.
- Paymaster: Сервис или аккаунт, оплачивающий комиссии за транзакции от имени пользователей, обычно в обмен на оплату альтернативными токенами или валютами (операторы узлов Kora являются paymaster).
- Rent: Депозит, требуемый Solana для поддержания активности аккаунтов в блокчейне. Rent может быть возвращен при закрытии аккаунтов.
Начало работы
Выберите свой путь:
Я хочу быстро попробовать Kora
→ Руководство по быстрому старту
Запустите локальный сервер Kora и увидьте абстракцию комиссий в действии менее чем за 10 минут.
Я хочу запустить узел Kora
→ Ресурсы для операторов узлов
Настройте и разверните собственный сервер Kora для спонсирования транзакций вашего приложения.
Я хочу использовать Kora в своем приложении
Добавьте абстракцию комиссий в ваше Solana-приложение, используя Kora SDK.
Рекомендуемый подход — использовать createKitKoraClient(), который
интегрируется с архитектурой плагинов Kit и автоматически обрабатывает
планирование транзакций, оценку комиссий, внедрение платежей и отправку.
→ Руководство по Kit Client - Создавайте транзакции без комиссий с помощью Kit client
Для более низкоуровневого контроля см. руководство
Полный поток транзакции с прямым
использованием KoraClient или Справочник API
для всех доступных опций клиента.
Нужна помощь?
- Solana Stack Exchange - Задавайте
вопросы с тегом
kora - GitHub Issues - Сообщайте об ошибках или запрашивайте новые функции
Is this page helpful?