Developer Tools

Solana и «публичная база данных»: разработчики пересматриваю

Забудьте о запутанных API. Вторая неделя челленджа #100DaysOfSolana выявила суровую правду: блокчейн — это не просто реестр, а публичная, доступная база данных.

Скриншот вывода терминала с данными аккаунта Solana.

Key Takeaways

  • Модель Solana «всё есть аккаунт» рассматривает блокчейн как публичную, запрашиваемую базу данных, в отличие от традиционных Web2 API.
  • Разработчики могут напрямую читать состояние цепочки без аутентификации или разрешений, что значительно упрощает доступ к данным.
  • Различие между аккаунтом-кошельком, хранящим SOL, и аккаунтом-программой, управляющей токенами, подчеркивает унифицированную модель аккаунтов в Solana.

Все думали, что чтение данных блокчейна будет сродни вызову чёрному ящику. Тяжёлая аутентификация, запутанные правила, вся эта привычная 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 и вызов для остальной экосистемы задуматься о том, насколько «публичными» являются их собственные ‘базы данных’.


🧬 Связанные материалы

Часто задаваемые вопросы

Что такое челлендж #100DaysOfSolana? Челлендж #100DaysOfSolana — это инициатива, движимая сообществом, которая побуждает разработчиков учиться и создавать на блокчейне Solana, беря на себя ежедневные задачи по программированию и обучению в течение 100 дней.

Почему доступ к данным Solana отличается от Web2 API? В Web2 доступ к данным обычно требует аутентификации и авторизации через API. Solana, напротив, позволяет любому напрямую запрашивать состояние публичной цепочки, рассматривая её как открытую базу данных, без необходимости в API-ключах или специальных разрешениях.

Нужно ли мне изучать новые языки программирования для Solana? Хотя Solana в основном использует Rust и C/C++ для разработки смарт-контрактов, а JavaScript/TypeScript для клиентских взаимодействий, ключевыми для изучения разработки на Solana являются фундаментальные концепции управления состоянием на основе аккаунтов.

Written by
Open Source Beat Editorial Team

Curated insights, explainers, and analysis from the editorial team.

Worth sharing?

Get the best Open Source stories of the week in your inbox — no noise, no spam.

Originally reported by Dev.to