General
Тестування з Surfpool

Тестування з Surfpool

Основи Surfpool

Тестування з Surfpool

Тестування програм Solana, які покладаються на міжпрограмні виклики (CPI), традиційно вимагає від розробників вивантаження облікових записів і програм з основної мережі, а потім завантаження їх на локальний валідатор.

Цей процес працює для кількох облікових записів, але стає абсолютно неможливим при тестуванні CPI у складних програмах, таких як Jupiter, які можуть залежати від понад 40 облікових записів і понад 8 програм.

Surfpool вирішує цю проблему, дозволяючи розробникам локально симулювати програми, використовуючи облікові записи основної мережі, які завантажуються за потребою, а також надає додаткові можливості:

  • Налаштування системних змінних: Подорож у часі (тестуйте вашу програму на будь-якому історичному слоті чи часовій мітці), призупинення годинника або зупинка створення блоків
  • Модифікація даних облікових записів: Встановлення запасу SOL (загального, циркулюючого та нециркулюючого), передача даних облікових записів між програмами або оновлення основних даних облікових записів та інформації про токени
  • Аналіз даних блокчейну: Профілювання транзакцій для обчислювальних одиниць, змін облікових записів та деталей виконання, з подальшим отриманням детальних профілів за підписом, UUID або тегом

Що таке Surfpool

Surfpool — це комплексний SDK та набір інструментів, тоді як Surfnet — це локальна мережа Solana, яку він створює. Уявіть Surfpool як ваше середовище розробки, а Surfnet — як блокчейн-мережу, що працює всередині нього.

Surfnet служить заміною solana-test-validator, спеціально створеною для забезпечення найкращого досвіду розробки для розробників Solana.

Розроблений командою TxTx, Surfpool безперешкодно інтегрує інфраструктуру як код у проєкти на основі Anchor, забезпечуючи відтворювані, перевірені та безпечні розгортання в будь-якій мережі Solana — приватній чи публічній.

Перші кроки

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

Після встановлення Surfpool SDK, запустіть Surfnet за допомогою:

bash
surfpool start

Це запускає Surfnet на стандартному порту локального валідатора (http://127.0.0.1:8899) з терміналом, що відображає:

  • Слоти та Епоха: Поточні слоти виконуються автоматично кожні 400мс. Використовуйте Tab для ручного переходу до наступного слоту, або Пробіл для призупинення/відновлення автоматичного створення блоків
  • Журнал транзакцій: Потік активності з часовими мітками, що показує все, що виконують ваші транзакції

Для роботи через браузер, підключіться до Surfpool Studio за цим посиланням.

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

Розгортання програм

Після налаштування Surfnet, розгорніть вашу програму та починайте розробку.

Anchor програми: Використовуйте anchor deploy з вашим Anchor.toml, налаштованим для [programs.localnet].

Pinocchio програми: Розгортайте через Solana CLI з конфігурацією, встановленою на localnet: solana program deploy ./target/deploy/your_program.so --program-id ./target/deploy/your_program-keypair.json

Запуск surfpool start в Anchor Workspace запропонує вам використовувати Інфраструктуру як Код для безперебійного автоматичного розгортання вашої програми на Surfnet.

Тестування програм

Після розгортання на localnet, підключіться до Surfnet, націлившись на локальний валідатор:

ts
import { Connection } from "@solana/web3.js";
 
const connection = new Connection("http://localhost:8899", "confirmed");
Blueshift © 2025Commit: 6d01265