Все думали, что чтение данных блокчейна будет сродни вызову чёрному ящику. Тяжёлая аутентификация, запутанные правила, вся эта привычная Web2-рутина. Ну, вы знаете, обычные сложности. Разработчики готовились к стандартным головным болям с API. Вместо этого они получили лопату и огромное открытое поле.
И вот тут кроется настоящий сюрприз. Вторая неделя челленджа #100DaysOfSolana, как подробно описал один из участников, была посвящена не настройке очередного dev-окружения. Речь шла о том, чтобы реально заглянуть в цепочку. С таким взглядом, от которого мозг совершает разворот на 180 градусов.
Что ожидалось:
Я ожидал, что чтение данных блокчейна будет похоже на вызов таинственного, медленного, сложного API. Что-то с тяжёлой настройкой, токенами аутентификации и запутанной документацией.
Что было получено:
const { value: lamports } = await rpc.getBalance(address).send();
const sol = Number(lamports) / 1_000_000_000;
Никаких ключей. Никаких логинов. Никаких разрешений. Просто… спроси. Любой может запросить любой адрес. В любое время. Это не техническая недоработка; это осознанное решение. Сравните это с Web2, где получение баланса аккаунта — это навигация по лабиринту учётных данных базы данных и промежуточного ПО. В Solana это прямая линия.
Действительно ли модель аккаунтов Solana похожа на базу данных?
Одиннадцатый день лишь укрепил это понимание. Задача: сравнить аккаунты Solana с базами данных Web2. Результат:
solana account $(solana address)
Эта команда выдала: Публичный ключ, Баланс, Владелец, Статус исполнимости. Затем, переключив режим, solana account TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA выдал другие детали: Владелец (BPFLoader), Статус исполнимости, Длина. Один содержал SOL. Другой был самой программой Token Program, скомпилированным кодом, управляющим всеми SPL-токенами. Оба — просто «аккаунты». Лозунг «всё есть аккаунт» наконец-то укоренился в сознании пользователя не как маркетинговая уловка, а как подлинная ментальная модель.
В этом и заключается суть изменений. Перестаньте мыслить таблицами и строками. Начните мыслить аккаунтами и владельцами. Каждый бит данных, каждое состояние хранится в аккаунте. И у каждого аккаунта есть своя программа-владелец. Только эта программа может его изменять. Это не ограничение; это фундамент трастлессности. Так работает публичная база данных без необходимости в посреднике для контроля.
Двенадцатый день принёс дальнейшее прояснение, наглядную демонстрацию разделения. Два RPC-соединения, одно для devnet, другое для mainnet, указывающие на абсолютно одинаковый адрес. Результаты? Совершенно разные балансы и истории транзакций. Наблюдение различных состояний для одного и того же адреса бок о бок в терминале сделало абстрактную концепцию отдельных сетей наглядной.
Этот радикально открытый доступ к состоянию цепочки — парадигмальный сдвиг. Он обходит стороной привратников традиционных Web2-API, предлагая прямой, проверяемый взгляд на операции сети. Это шаг, который может значительно снизить порог входа для разработчиков, желающих строить на Solana, при условии, что они смогут адаптироваться к новой ментальной модели.
PDAs (Program Derived Addresses) остаются неизведанной территорией. Они выводятся из программы и «seed», ключи подписи отсутствуют, гарантируя, что только программа может совершать транзакции. Участник ещё не «ощутил» их, что делает их целью на третью неделю. Мудрая цель. Понимание практического применения этих типов аккаунтов — вот где кроется истинное мастерство.
И важный совет, который часто упускают из виду: devnet — для того, чтобы ломать. Учитесь на своих ошибках там. Это самый дешёвый способ учиться.
Последствия огромны. Если разработчики смогут по-настоящему рассматривать Solana как публичную, запрашиваемую базу данных, типы приложений и аналитики, которые можно будет создавать, взорвутся. Представьте себе агрегацию данных в реальном времени из блокчейна без ограничений по частоте запросов или API-ключей. Речь идёт не просто о более быстрых транзакциях; речь идёт о более прозрачном и доступном блокчейне.
Что это значит для разработки с открытым исходным кодом?
Такой подход идеально соответствует духу open source. Прозрачность — ключ ко всему. Возможность для любого инспектировать, запрашивать и создавать на основе состояния сети без ограничений способствует инновациям и вовлечению сообщества. Он устраняет непрозрачность, которая часто присуща закрытым системам. Для разработчиков, привыкших к закрытым садам традиционных технологий, эта открытая модель одновременно освобождает и требует усилий. Она требует нового способа мышления, но потенциальные выгоды весьма существенны.
Это не просто очередной блокчейн. Это фундаментальное переосмысление того, как данные могут быть доступны и управляемы в децентрализованном мире. Это убедительное доказательство архитектурных решений Solana и вызов для остальной экосистемы задуматься о том, насколько «публичными» являются их собственные ‘базы данных’.
🧬 Связанные материалы
- Читать больше: Node.js: от нуля до сервера за минуты [Руководство для разработчика]
- Читать больше: За пределами консолей: Nex Playground — будущее активного гейминга
Часто задаваемые вопросы
Что такое челлендж #100DaysOfSolana? Челлендж #100DaysOfSolana — это инициатива, движимая сообществом, которая побуждает разработчиков учиться и создавать на блокчейне Solana, беря на себя ежедневные задачи по программированию и обучению в течение 100 дней.
Почему доступ к данным Solana отличается от Web2 API? В Web2 доступ к данным обычно требует аутентификации и авторизации через API. Solana, напротив, позволяет любому напрямую запрашивать состояние публичной цепочки, рассматривая её как открытую базу данных, без необходимости в API-ключах или специальных разрешениях.
Нужно ли мне изучать новые языки программирования для Solana? Хотя Solana в основном использует Rust и C/C++ для разработки смарт-контрактов, а JavaScript/TypeScript для клиентских взаимодействий, ключевыми для изучения разработки на Solana являются фундаментальные концепции управления состоянием на основе аккаунтов.