Посібник швидкого старту Kora

Останнє оновлення: 2025-10-31

Основи Kora

Kora — це JSON-RPC сервер, який надає послуги оплати комісій для транзакцій Solana. Він дозволяє користувачам сплачувати комісії за транзакції токенами SPL замість SOL, забезпечуючи кращий користувацький досвід для застосунків, де користувачі можуть не мати SOL.

Kora RPC перевіряє запити клієнтів на основі конфігурації (kora.toml), яка визначає дозволені програми, гаманці, токени тощо. Після перевірки сервер Kora підпише транзакцію та надішле її в мережу (або поверне серіалізовану підписану транзакцію клієнту).

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Client App │───▶│ Kora RPC │───▶│ Solana RPC │
│ │ │ Server │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌──────────────────────┐
│ Kora Private Key │
│ ( or Turnkey/Privy ) │
└──────────────────────┘

Цей швидкий старт запустить локальний Kora RPC сервер і продемонструє інтеграцію клієнта для тестування робочих процесів оплати комісій.

Вимоги

  • Solana CLI версії 2.2.x або новіше
  • Rust/Cargo (для встановлення Kora RPC)
  • Node.js v22+ та менеджер пакетів (наприклад, pnpm, npm)

Встановлення Kora RPC

Встановіть Kora RPC сервер глобально:

cargo install kora-cli

Важливо: Гілка main Kora є інтеграційною гілкою і може містити невипущені або бета-зміни. Завжди використовуйте останній стабільний тег релізу для продакшну та навчальних посібників. Ви можете знайти останній стабільний реліз на сторінці релізів Kora.

Створення проєкту

Клонуйте репозиторій, перейдіть на останній стабільний тег і перейдіть до директорії демонстрації для початківців:

git clone https://github.com/solana-foundation/kora
cd kora
git checkout v2.0.5
cd examples/getting-started/demo

Структура проєкту

Демонстрація містить три основні компоненти:

Директорія клієнта (client/src/)

  • setup.ts - Налаштування локального середовища (створює keypair і записує їх у .env, здійснює airdrop SOL, ініціалізує тестовий токен)
  • quick-start.ts - Демонстраційний скрипт швидкого старту, що показує встановлення з'єднання з Kora та здійснення простого виклику до Kora RPC сервера
  • full-demo.ts - Повний демонстраційний скрипт, що показує декілька методів Kora RPC

Каталог сервера (server/)

  • kora.toml - Конфігурація Kora RPC, що визначає правила валідації, дозволені токени та параметри комісій
  • signers.toml - Конфігурація підписувачів, що визначає підписувачів для сервера Kora

Спільна конфігурація

  • .env - Змінні середовища для keypair та адрес (створіть .env у кореневій директорії - demo/.env). Змінні середовища будуть створені скриптом налаштування.

Налаштування середовища

Спочатку створіть .env для вашого середовища:

# Create .env file (will be populated by setup script)
touch .env

Налаштування клієнта

Встановіть залежності клієнта:

# From project root (kora/)
cd examples/getting-started/demo/client
pnpm install --ignore-workspace # use --ignore-workspace to avoid pnpm workspace conflicts

Налаштування сервера Kora RPC

Серверу Kora потрібна конфігурація для визначення того, які токени можуть використовуватися для сплати комісій. Відкрийте server/kora.toml і зверніть увагу на розділ валідації. Тут ми можемо вказати кілька параметрів, які будуть перевірятися перед підписанням транзакції:

  • max_allowed_lamports: максимальна комісія за транзакцію, яку ви готові сплатити від імені користувача
  • max_signatures: максимальна кількість підписів, яку може мати транзакція
  • price_source: оракул для визначення ціни токена ("Mock" або "Jupiter")
  • allowed_programs: білий список ідентифікаторів програм, які можуть виконуватися (наприклад, System Program, Token Program)
  • allowed_tokens: білий список токенів, які дозволено переказувати
  • allowed_spl_paid_tokens: масив адрес mint-токенів, які ваша програма приймає як оплату
  • disallowed_accounts: чорний список облікових записів, яким заборонено взаємодіяти з вашим RPC Kora

Наразі залишимо значення за замовчуванням — ви зможете повернутися сюди та змінити їх пізніше (для отримання додаткової інформації про параметри конфігурації див. документацію Конфігурація Kora).

Налаштування підписувачів

Відкрийте server/signers.toml і зверніть увагу на розділ підписувачів. Тут ми можемо вказати, які підписувачі використовуватимуться для підписання транзакцій і (якщо використовується кілька підписувачів) стратегію вибору підписувача. Наразі використаємо одного підписувача з налаштуваннями за замовчуванням — ви зможете повернутися сюди та змінити їх пізніше (для отримання додаткової інформації про конфігурацію підписувачів див. Керівництво з підписувачів).

Тестовий сервер

Відкрийте три термінали та виконайте наступні команди:

Термінал 1: Запуск локального тестового валідатора

# From project root or anywhere
solana-test-validator -r

Термінал 2: Ініціалізація середовища

# From ./client directory
pnpm init-env

Цей скрипт виконає:

  • Генерацію пар ключів та збереже їх у .env
  • Airdrop SOL на тестові акаунти
  • Створення та ініціалізацію локального токена USDC
  • Поповнення тестових акаунтів токенами

Важливо Переконайтеся, що ви скопіювали публічний ключ нового тестового токена USDC зі свого .env та оновили allowed_tokens і allowed_spl_paid_tokens у ./server/kora.toml.

allowed_tokens = [
"YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env
]
allowed_spl_paid_tokens = [
"YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env
]

Термінал 3: Ініціалізація асоційованих токен-акаунтів для платежів (опціонально)

Для отримання платежів вам потрібно ініціалізувати асоційовані токен-акаунти (ATA) для ваших платіжних токенів. Ви можете зробити це, виконавши наступну команду:

# From ./server directory
kora rpc initialize-atas --signers-config signers.toml

Ця команда виконає:

  • Зчитування вашої платіжної адреси з kora.toml (або якщо ви не вказали платіжну адресу, всіх підписувачів, перелічених у signers.toml)
  • Створення ATA для всіх токенів, перелічених у allowed_spl_paid_tokens
  • Пропуск будь-яких ATA, які вже існують
  • Ви можете опціонально вказати спеціального платника комісії для генерації ATA, використовуючи прапорець fee_payer_key.

Термінал 4: Запуск RPC-сервера Kora

# From ./server directory
kora rpc start --signers-config signers.toml

Примітка: Для продакшн-розгортань з використанням price_source = "Jupiter", ви повинні встановити змінну середовища JUPITER_API_KEY. Сервер не запуститься без неї:

JUPITER_API_KEY=your_api_key kora rpc start --signers-config signers.toml

Сервер зчитує конфігурацію з kora.toml і signers.toml та використовує змінні середовища зі спільного файлу .env. Якщо ви використовуєте іншу структуру папок, ніж вказано тут, вам може знадобитися використати --config для вказання розташування kora.toml та --signers-config для вказання директорії вашої конфігурації підписувачів:

kora rpc --config path/to/kora.toml start --signers-config path/to/signers.toml

Ви можете отримати доступ до kora rpc -h для довідки щодо параметрів RPC-сервера.

Термінал 5: Запуск демонстрації клієнта

# From ./client directory
pnpm start

Ви повинні побачити вивід, подібний до цього:

Kora Config: {
fee_payer: 'Df2UmGQH86TBDsub7XZoSAo7KZa1ZJZr2w1PL1APUjjU',
validation_config: {
max_allowed_lamports: 1000000,
max_signatures: 10,
allowed_programs: [
'11111111111111111111111111111111',
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
'AddressLookupTab1e1111111111111111111111111',
'ComputeBudget11111111111111111111111111111111'
],
allowed_tokens: [
'usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'
],
allowed_spl_paid_tokens: [
'usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'
],
disallowed_accounts: [],
price_source: 'Mock',
fee_payer_policy: {...},
price: { type: 'margin', margin: 0 }
},
enabled_methods: { ... }
}
}
Blockhash: C8W8d5w2H4jKXyFg5CEBoiaPvEpJ1am7xLxZ3fym4a2g

Це підтверджує, що ваш сервер Kora працює та правильно налаштований!

Наступні кроки

Коли базове налаштування працюватиме, ознайомтеся з повною демонстрацією потоку Kora:

→ Повний потік безкоштовних транзакцій Kora

дослідіть додаткові методи Kora RPC:

  • estimateTransactionFee - Розрахунок комісій для транзакцій
  • getPayerSigner - Отримання платника та призначення платежу
  • getSupportedTokens - Повертає масив підтримуваних токенів для оплати
  • signTransaction - Умовний підпис транзакцій, коли комісії покриті
  • transferTransaction - Створення транзакцій переказу SOL або SPL-токенів (підписаних платником комісій Kora)
  • signAndSendTransaction - Умовний підпис транзакції платником комісій Kora та відправка її на налаштований Solana RPC
  • getPaymentInstruction - Отримання інструкції платежу для транзакції

Маєте запитання? Задавайте питання на Solana Stack Exchange з тегом Kora.

Is this page helpful?

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку