Распишу чуть детальней, чтоб было понимание:

В Web3 данные и код смарт-контрактов хранятся в распределенных системах (blockchain). Например в Ethereum или Ton код смарт-контракта разворачивается в сети и хранится в каждой полной ноде (компьютер). Доступ к нему возможен через RPC-запросы или специальное API.

Сами данные мы можем хранить в смарт-контрактах, но это дорого. Потому зачастую там мы храним базовые данные. Например баланс или конфиги. Остальное выносим в распределенные хранилища: IPFS, Filecoin. Туда картинки, файлы, JSON и прочее.

Как фронтенд взаимодействует со смарт-контрактами?

Фронтенд не общается напрямую с блокчейном, а использует провайдеры, которые выступают посредниками между приложением и сетью. Этими провайдерами могут быть RPC-узлы, Wallet API. Если используем кошелек, то запросы отправляются через него, который подписывает транзакции.

Протоколы взаимодействия: JSON-RPC, WebSockets или даже GraphQL

То есть, фронтенд отправляет запросы в блокчейн не напрямую, а через прослойку. fetch, axios и прочее используется, чтоб дать нужные данные провайдеру, который уже в свою очередь отправляет данные в блокчейн. Есть еще такие штуки как индексаторы (The Graph, Moralis), которые ускоряют доступ к данным.

Вот простой пример, как из React приложения мы взаимодействуем с blockchain через хук (пример на блокчейн Ton):

`export function useJettonContract() { const { wallet, sender } = useTonConnect() const { client } = useTonClient()

const faucetJettonContract = useAsyncInitialize(async () => { const contract = new FaucetJetton( Address.parse('EQB8StgTQXidy32a8xfu7j4HMoWYV0b0cFM8nXsP2cza_b7Y') ) return client.open(contract) as OpenedContract }, [client, wallet])

return { mint: () => { faucetJettonContract?.sendMintFromFaucet(sender, Address.parse(wallet!)) } } }

Где функция mint уже используется в шаблоне:

`const { mint } = useJettonContract()

return ( { mint() }}

Get jettons

)``

Распишу чуть детальней, чтоб было понимание:
В Web3 данные и код смарт-контрактов хранятся в распределенных системах (blockchain) | Сетка — социальная сеть от hh.ru