Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Как Web3 меняет разработку веб-приложений: от серверов к блокчейну

Поговорили с экспертом и узнали, где Web3 даёт практическую пользу разработчикам: сравниваем подходы, исследуем рынок вакансий и особенности новой реальности.

335 открытий4К показов
Как Web3 меняет разработку веб-приложений: от серверов к блокчейну

Раньше, чтобы запустить приложение, приходилось настраивать сервер и базу данных. В Web3 всё по-другому: вместо серверов — смарт-контракты, вместо базы — блокчейн. По прогнозам, объём рынка Web3‑разработки вырастет с $4,43 млрд в 2024 году до $6,15 млрд в 2025. Кейсы Plume Network и The Graph показывают, что Web3 уже работает в реальных продуктах. Что, если нас уже сегодня ждет backend в виде блокчейна? Давайте разберём, как меняются инструменты, архитектуры и карьерные треки.

Главные отличия Web3 от Web2

Перед тем как углубиться в код и практику, полезно увидеть основные различия между привычной Web2-разработкой и новой логикой Web3.

Как Web3 меняет разработку веб-приложений: от серверов к блокчейну 1

Представим себе простой сервис для задач. В классическом Web2 его работа привычна: сервер обрабатывает запросы, база данных хранит задачи, а пользователь авторизуется через почту и пароль. Всё централизовано и зависит от владельца сервера.

В Web3 логика сильно меняется. Пользователь входит в систему с помощью криптокошелька, например, MetaMask. Каждая задача создаётся транзакцией и записывается в смарт‑контракт, а значит становится частью блокчейна. Удалить её уже нельзя — только отметить статус выполнения. Такой подход даёт прозрачность: любой участник сети может проверить, что задача действительно существует, и её статус изменён честно.

			// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Контракт простого таск-трекера
contract TaskTracker {
    // Структура описывает задачу: текст и флаг выполнения
    struct Task { 
        string description; // описание задачи
        bool completed;     // выполнена ли
    }
    // Массив для хранения всех задач
    Task[] public tasks;

    // Добавление новой задачи. При создании completed = false
    function addTask(string memory _description) public {
        tasks.push(Task(_description, false));
    }

    // Отметить задачу как выполненную
    function completeTask(uint _index) public {
        // Проверяем, что индекс в допустимых пределах
        require(_index < tasks.length, "Нет задачи с таким индексом");
        // Меняем флаг задачи на true
        tasks[_index].completed = true;
    }
}

		

Стек Web3: что понадобится на практике

Чтобы построить работающий DApp, важно понимать, чем он отличается от обычного приложения. DApp — это децентрализованное приложение, в котором логика хранится в смарт-контрактах на блокчейне, а данные — в распределённых хранилищах, а не на сервере компании. Поэтому одного знания блокчейна мало: нужен полный набор инструментов — от языков и фреймворков до кошельков и сервисов подключения.

  • Блокчейн: Ethereum, Layer‑2 (Arbitrum, Optimism, Base, Polygon), Solana.
  • Языки: Solidity (EVM), Rust (Solana), Go (инфраструктура и сервисы).
  • Библиотеки: ethers.js, wagmi. 
  • Фреймворки: Hardhat, Foundry, Truffle.
  • Хранилища: IPFS/Arweave для файлов и метаданных.
  • Кошельки/подключение: MetaMask, WalletConnect (v2/WalletConnect Network), Web3Auth.
Точка входа для новичка — Alchemy, а также ethers.js.
Илья Волковстарший инженер-программист (ex-bp, Binance), специалист по распределённым системам и серверной разработке

Пример. Быстрое подключение кошелька (ethers.js).

			import { ethers } from "ethers";

async function connectWallet() {
  if (!window.ethereum) throw new Error("Нет провайдера. Установите MetaMask");
  const provider = new ethers.BrowserProvider(window.ethereum);
  const signer = await provider.getSigner();
  console.log("Адрес:", await signer.getAddress());
}

		

Архитектура DApp: из чего состоит современное Web3‑приложение

Любое Web3‑приложение строится из нескольких слоёв, каждый со своей ролью. Фронтенд остаётся привычным SPA, но работает не с сервером, а напрямую с кошельком и смарт-контрактами. Контракты содержат бизнес‑логику и хранят ссылки на данные в децентрализованных хранилищах. Оракулы обеспечивают связь с внешним миром, например, передают цены или сообщения между разными блокчейнами. Важную часть играет off‑chain слой — сервисы вне блокчейна (индексаторы, аналитика), которые помогают быстрее искать и обрабатывать данные, при этом не перегружать сеть.

Пример. Возьмём DeFi‑приложение. Пользователь открывает фронтенд и инициирует операцию swap(). В ответ фронтенд обращается к смарт‑контракту, который выполняет обмен токенов. Чтобы определить курс, контракт тянет актуальные данные через оракул. При этом тяжёлые артефакты, изображения или отчёты не хранятся в блокчейне напрямую — они лежат в IPFS. Сам контракт содержит только контент‑идентификаторы CID. Таким образом, получаем баланс: блокчейн отвечает за логику и безопасность, а децентрализованное хранилище — за данные.

Практика: ваш первый DApp за вечер

Давайте попробуем собрать простейшее приложение своими руками.

Шаг 0. Подготовка

Сначала убедитесь, что у вас стоит Node.js LTS и Git. Также нужен браузер с установленным MetaMask, где можно создать тестовый аккаунт. Чтобы оплачивать транзакции в тестовой сети, заранее возьмите немного тестовых монет через faucet — например, для Sepolia или Polygon Amoy.

Шаг 1. Проект

Создадим новый проект и установим Hardhat вместе с тулзами. Эта среда нужна для компиляции и деплоя контрактов.

			npm init -y && npm i -D hardhat @nomicfoundation/hardhat-toolbox dotenv
npx hardhat init

		

Шаг 2. Контракт

В папке contracts/ создаём файл TaskTracker.sol и копируем туда код смарт-контракта из первого раздела. Это и будет бизнес-логика нашего приложения.

Шаг 3. Сценарий деплоя

Пишем скрипт, который разворачивает контракт в сети. Это простой скрипт на JavaScript, который вызывает методы Hardhat.

			const hre = require("hardhat");
(async () => {
  const Factory = await hre.ethers.getContractFactory("TaskTracker");
  const c = await Factory.deploy();
  await c.deployed();
  console.log("TaskTracker:", c.address);
})();

		

Шаг 4. Конфиг сети

В файле hardhat.config.js добавляем настройки для подключения к тестовой сети. Используем RPC-URL от Alchemy или Infura и приватный ключ от тестового аккаунта — его можно экспортировать из MetaMask, но использовать только для тестовой сети.

			require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();
module.exports = {
  solidity: "0.8.24",
  networks: {
    sepolia: { url: process.env.RPC_URL, accounts: [process.env.PRIVATE_KEY] }
  }
};

		

Шаг 5. Деплой в тестнет

Теперь запускаем скрипт деплоя. После выполнения увидите адрес контракта — он понадобится для фронтенда.

			RPC_URL=https://sepolia.example Alchemy/Infura
PRIVATE_KEY=0x...  # приватный ключ тестового аккаунта
npx hardhat run scripts/deploy.js --network sepolia

		

Шаг 6. Фронтенд (React + ethers.js + wagmi)

Собираем простое SPA: форма, чтобы добавить задачи, и кнопка «complete». Здесь мы используем ethers.js для обращения к контракту. Сделайте вызовы addTask и completeTask.

Подводные камни Web3-разработки и что с ними делать

Комиссии (gas): любая запись в блокчейн стоит денег и иногда комиссия выше ценности операции — например, $10 за простую задачу.

  • Что делать: использовать Layer-2 (Arbitrum/Optimism/Base/Polygon), выбирать сети с низкими комиссиями (Solana, Avalanche), оптимизировать контракты и батчи транзакций.

Скорость: подтверждение транзакции занимает секунды или десятки секунд, что заметно медленнее обычного сервера.

  • Что делать: показывать «оптимистичный UI», кешировать данные, переносить часть логики off-chain, использовать быстрые сети (Solana, Near, Aptos).

Безопасность: код контракта неизменяем, и одна ошибка может стоить миллионов.

  • Что делать: проходить аудит (CertiK, Trail of Bits), использовать проверенные библиотеки (OpenZeppelin), писать тесты в тестовых сетях (Goerli, Sepolia), внедрять баг-баунти и ролевую модель доступа.
  • Ресурс: ConsenSys Diligence — Smart Contract Security Best Practices.

UX: вход через кошелёк сложнее привычного логина/пароля. Нужно ставить расширение, пополнять баланс и подтверждать каждую транзакцию.

  • Что делать: использовать аккаунт-абстракцию (ERC-4337), социальный логин, gasless транзакции через Paymaster, улучшать UI (подсказки, авто-фокус на MetaMask).

Регуляция: законы о Web3 пока разные в каждой стране. Легальное в одной юрисдикции может быть запрещено в другой (например, токенизация акций без лицензии).

  • Что делать: консультироваться с юристами, следить за изменениями. Например, MiCA в ЕС — “Markets in Crypto-Assets Regulation” — это единый регламент по криптоактивам в Евросоюзе.
Безопасность всегда должна быть на первом месте, потому что в Web3 есть риск потерять реальные деньги пользователей.
Илья Волковстарший инженер-программист (ex-bp, Binance), специалист по распределённым системам и серверной разработке

Карьерные возможности и перспективы

Web3‑разработчиков уже активно ищут: зарплаты в среднем предлагают выше, чем у Web2‑коллег. Кроме программистов, востребованы смежные роли: аудиторы смарт‑контрактов, специалисты по безопасности, а также продакт‑менеджеры и аналитики, которые понимают специфику блокчейна.

Чтобы войти в профессию, начните с изучения Solidity и базовых паттернов смарт‑контрактов. Сделайте пару пет‑проектов и выложите код в GitHub. Отличный вариант прокачки — участвовать в хакатонах и грантовых программах от Ethereum Foundation или Solana Grants. Это даёт и опыт, и контакты, и иногда финансирование.

Пара пет‑проектов + понимание блокчейна — хороший старт в Web3‑команду.
Илья Волковстарший инженер-программист (ex-bp, Binance), специалист по распределённым системам и серверной разработке

Будущее Web3

Web3 не вытеснит Web2 полностью, но поменяет привычный подход к разработке. Разработчику это открывает новые вызовы: комиссии, безопасность и UX, но одновременно и новые возможности — прозрачные данные, токенизация, децентрализованные бизнес‑модели.

Для тех, кто только входит в сферу, это шанс попасть в индустрию на раннем этапе и быстро нарастить экспертизу. Простые пет‑проекты, хакатоны и знакомство с инструментами дают ощутимый старт.

Web3 будет развиваться параллельно с Web2, усиливая те области, где важны децентрализация, доверие и контроль за данными. Попробуйте задеплоить первый контракт — и вы сами почувствуете, что это не просто мода, а новый уровень возможностей.

Следите за новыми постами
Следите за новыми постами по любимым темам
335 открытий4К показов