Визначення

SDK (Software Development Kit) — це набір готових бібліотек, інструментів та документації, який дозволяє розробникам створювати програми для певної платформи без необхідності реалізовувати базові механізми з нуля. У контексті Solana SDK надає все потрібне для взаємодії з блокчейном: формування транзакцій, управління ключами, серіалізацію даних та роботу з акаунтами.

Як працює

SDK виконує роль проміжного шару між вашим кодом і блокчейном. Замість того щоб вручну збирати байтові масиви транзакцій, розробник викликає методи SDK, які:

  • формують правильну структуру транзакції відповідно до специфікації Solana;
  • серіалізують інструкції та підписують їх приватними ключами;
  • відправляють готову транзакцію через RPC-вузол;
  • парсять відповідь від мережі у зручний для подальшої роботи формат.

У екосистемі Solana існують SDK для різних мов. Основний — @solana/web3.js для JavaScript та TypeScript, який використовується в більшості фронтенд-додатків і скриптів. Для розробки on-chain програм на Rust застосовується solana-sdk — бібліотека, що є частиною самого валідатора.

SDK не відправляє дані в мережу самостійно — для цього він звертається до RPC-вузлів. SDK абстрагує складність формату даних Solana, тоді як RPC забезпечує транспортування.

Приклад

Розробник створює веб-додаток, який дозволяє користувачеві відправити SOL на інший гаманець. Замість того щоб вручну конструювати транзакцію з правильними байтами, розробник підключає @solana/web3.js і використовує готовий метод:

const transaction = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: senderPublicKey,
    toPubkey: recipientPublicKey,
    lamports: amountInLamports,
  })
);

SDK самостійно формує правильну інструкцію, розраховує розмір транзакції, додає необхідні підписи та готує дані для відправки через з'єднання з мережею.

Типова помилка

Спроба використовувати SDK як повноцінний фреймворк для розробки смарт-контрактів. SDK — це інструмент для клієнтської взаємодії з блокчейном та базової роботи з даними. Для написання on-chain програм на Solana потрібен окремий підхід, зокрема фреймворк Anchor, який працює поверх Rust-SDK валідатора, але вирішує інше завдання — структурування та безпеку смарт-контрактів.

Інша поширена помилка — ігнорування версійності. Оновлення SDK може змінювати формат серіалізації, тому версії клієнтського SDK та версія кластера мають бути сумісними. Перед оновленням перевірте офіційну документацію та реліз-нотатки.

Пов'язані матеріали

Внутрішні переходи

  • RPC (Remote Procedure Call) — протокол, через який SDK спілкується з мережею Solana
  • Anchor — фреймворк для розробки on-chain програм, який використовує Rust-SDK на нижчому рівні

Додаткові ресурси

  • Офіційний репозиторій @solana/web3.js на GitHub — актуальне джерело прикладів використання та сумісних версій
  • Документація Solana, розділ «Developing Clients» — перед застосуванням у продакшені обов'язково перевірте відповідність версії SDK вашому кластеру

Джерела