Быстрый доступ
Ознакомьтесь с базовым примером счётчика в других реализациях:GitHub
Нативная реализация на Rust
GitHub
Реализация на Pinocchio
Local Development
Локальная разработка
Пошаговое руководство
Соберите вашу программу и обновите её с хуками делегирования с помощью Delegation Program от MagicBlockDELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh:
Добавьте CPI-хуки для делегирования, коммита и отмены делегирования аккаунтов состояния через сессии Эфимер Роллап
Эти общедоступные средства проверки поддерживаются для разработки. Не забудьте добавить конкретный ER валидатор в свою инструкцию при делегировании:
- Азия (devnet-as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - Европа (devnet-eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - США (devnet-us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (tee.magicblock.app):
FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA - Локальная служба поддержки (localhost):
mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
Пример Счетчика
Могут потребоваться следующие пакеты программного обеспечения, другие версии также могут быть совместимы:| Программное обеспечение | Версия | Руководство по установке |
|---|---|---|
| Solana | 2.3.13 | Установить Solana |
| Rust | 1.85.0 | Установить Rust |
| Anchor | 0.32.1 | Установить Anchor |
| **Node ** | 24.10.0 | Установить Node |
Code Snippets
- 1. Напишите программу
- 2. Делегировать
- 3. Коммит
- 4. Отменить делегирование
Программа реализует две основные инструкции:⬆️ Вернуться к началу
- InitializeCounter: Инициализирует счётчик и устанавливает его в 0 (вызывается на базовом слое, Base Layer)
- IncreaseCounter: Увеличивает инициализированный счётчик на X (вызывается на базовом слое или в ER) Программа реализует специальные инструкции для делегирования и отмены делегирования счётчика:
- Delegate: Делегирует счётчик с базового слоя (Base Layer) в ER (вызывается на базовом слое)
- CommitAndUndelegate: Планирует синхронизацию счётчика из ER в базовый слой и отменяет делегирование счётчика в ER (вызывается в ER)
- Commit: Планирует синхронизацию счётчика из ER в базовый слой (вызывается в ER)
- Undelegate: Отменяет делегирование счётчика на базовом слое (вызывается на базовом слое через CPI валидатора)
Your “Undelegate” instruction must have the exact discriminator. It is never called by you, instead the validator on the Base Layer will callback with a CPI into your program after undelegating your account on ER.
Расширенные Фрагменты Кода
- Изменить размер PDA
- Делегирование на кривой
При изменении размера делегированного PDA:⬆️ Вернуться к началу
- PDA должен иметь достаточно лампортов, чтобы оставаться освобождённым от арендной платы для нового размера аккаунта.
- Если требуется добавить дополнительные лампорты, счётчик-плательщик должен быть делегирован для предоставления недостающей суммы.
- PDA должен принадлежать программе, а транзакция должна включать всех необходимых подписантов для перевода лампортов.
- **Используйте **
system_instruction::allocate
Solana Explorer
Получайте информацию о ваших транзакциях и аккаунтах в сети Solana:Solana Explorer
Официальный обозреватель Solana
Solscan
Обозреватель блокчейна Solana
Провайдеры Solana RPC
Отправляйте транзакции и запросы через существующих RPC-провайдеров:Solana
Бесплатные публичные ноды
Helius
Бесплатные общие ноды
Triton
Выделенные высокопроизводительные ноды
Панель валидаторов Solana
Следите за обновлениями инфраструктуры валидаторов Solana в реальном времени:Solana Beach
Аналитика по валидаторам
Validators App
Метрики валидаторов
Статус серверов
Подпишитесь на обновления статуса серверов Solana и MagicBlock:Solana Status
Подписка на обновления статуса серверов Solana
MagicBlock Status
Подписка на статус серверов MagicBlock

