Інтеграція з Mysterium Network

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з Mysterium Network
Середній
~2-3 дні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1197
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Інтеграція з Mysterium Network

Конкретна ситуація: ви будуєте приложение, якому потрібен децентралізований VPN або residential proxy — без єдиного провайдера, без KYC на користувачів, з оплатою в крипте. Mysterium Network — це p2p мережа з ~13k нод, де будь-хто може продавати трафік за MYST токени. Для розробника задача не в тому, щоб "підключитися до VPN", а в тому, щоб вбудувати Mysterium у своє приложение як програмований транспортний шар.

Архітектура Mysterium: що під капотом

Mysterium працює поверх кількох протоколів:

  • Wireguard — основний протокол для VPN-підключень (UDP, швидкий, широко підтримується)
  • OpenVPN — legacy, підтримується для сумісності
  • NATS — брокер сообщений для discovery й signaling між нодами
  • Hermes — payment settlement смарт-контракт на Polygon (раніше на Ethereum)

Ключовий компонент для розробника — mysterium-vpn-js SDK (TypeScript) і myst-provider API (REST HTTP сервер, який запускається з нодою).

Програмна робота з Mysterium через SDK

Запуск й підключення до ноди

import { TequilapiClientFactory, NodeHttpTransport } from "mysterium-vpn-js";

const factory = new TequilapiClientFactory(
  "http://127.0.0.1:4050",  // tequilapi — REST API ноди
  5000                        // timeout ms
);

const api = factory.build(NodeHttpTransport());

// Перевірка стану ноди
const nodeInfo = await api.healthCheck();
console.log("Node version:", nodeInfo.version);

// Список доступних провайдерів (вибірка з Discovery)
const proposals = await api.findProposals({
  serviceType: "wireguard",   // або "openvpn"
  qualityMin: 0.9,            // фільтр по quality score (0-1)
  locationCountry: "DE",      // країна exit ноди
});

Створення й управління сесією

// Identity — ваш "гаманець" у мережі Mysterium
const identities = await api.identityList();
if (identities.length === 0) {
  const identity = await api.identityCreate("your_passphrase");
  await api.identityRegister(identity.id, {
    token: undefined,  // referral token опціональний
  });
}

const identity = identities[0];

// Переконуємося що identity зареєстрований on-chain
const status = await api.identityStatus(identity.id);
if (status.registrationStatus !== "Registered") {
  // Потрібно поповнити баланс MYST для оплати реєстрації
  throw new Error("Identity not registered");
}

// Підключення до вибраного провайдера
const connection = await api.connectionCreate({
  consumerId: identity.id,
  providerId: proposals[0].providerId,
  serviceType: "wireguard",
  connectOptions: {
    dnsOption: "auto",   // або конкретний DNS сервер
  }
});

console.log("Session ID:", connection.sessionId);
console.log("Status:", connection.status); // "Connected"

Моніторинг сесії й статистика

// Поточний стан підключення
const stats = await api.connectionStatistics();
console.log({
  bytesSent: stats.bytesSent,
  bytesReceived: stats.bytesReceived,
  tokensSpent: stats.tokensSpent,  // потрачено MYST
  duration: stats.duration,         // секунди
});

// Поточний IP (для верифікації що трафік йде через ноду)
const location = await api.connectionLocation();
console.log("Exit IP:", location.ip, "Country:", location.country);

// Відключення
await api.connectionCancel();

Payment інтеграція: MYST на Polygon

Mysterium використовує payment channels через Hermes контракт на Polygon. Це не прямі on-chain транзакції за кожен мегабайт — off-chain micropayments з періодичним settlement.

Поповнення баланса

// Отримати адресу для поповнення баланса consumer identity
const channelAddress = await api.paymentOrderGetChannelAddress(
  identity.id
);
// channelAddress — це Polygon адреса, на неї відправляємо MYST

// Створення order через вбудований шлюз (якщо on-ramp через карту)
const order = await api.paymentOrderCreate(identity.id, {
  mystAmount: "10.0",
  payCurrency: "USD",
  gateway: "coingate",  // або "paypal"
  country: "US",
  callerData: "{}",
});
console.log("Payment URL:", order.publicGatewayData.paymentUrl);

Для programmatic use case (ваше приложение само поповнює балансы користувачів) — прямий transfer MYST на Polygon через ethers.js:

import { ethers } from "ethers";

const MYST_POLYGON = "0x1379e8886a0d08c7902c843f5c6353d3e8e99a18";
const mystContract = new ethers.Contract(MYST_POLYGON, ERC20_ABI, signer);

// channelAddress з api.paymentOrderGetChannelAddress()
await mystContract.transfer(channelAddress, ethers.parseUnits("10", 18));

Власний Discovery Service

За замовчуванням Mysterium node використовує централізований Discovery сервіс Mysterium Foundation для пошуку провайдерів. Для enterprise використання або приватної мережі — потрібен свій Discovery.

Mysterium використовує NATS як discovery брокер. Можна розгорнути self-hosted:

# docker-compose.yml для self-hosted discovery
version: '3.8'
services:
  nats:
    image: nats:2.9-alpine
    ports:
      - "4222:4222"
      - "8222:8222"  # monitoring
    command: "--jetstream --cluster_name mysterium-private"
  
  discovery:
    image: mysteriumnetwork/discovery:latest
    environment:
      - NATS_URL=nats://nats:4222
      - BROKER_ADDRESS=nats://nats:4222
    depends_on:
      - nats

Ноди у вашій приватній мережі конфігурруються з --discovery.address указуючим на ваш NATS.

Типові сценарії застосування

Decentralized proxy для web scraping замість rotating residential proxies від Oxylabs/Brightdata, використовуєте Mysterium ноди. Вартість у 3–10x нижча, але надійність варіюється (p2p мережа ≠ enterprise SLA).

Privacy-preserving API виклики мобільне приложение робить запити до зовнішніх API через Mysterium, приховуючи IP користувача від сервісу призначення.

Geo-distributed тестування тестування приложения з різних геолокацій програмно, без оренди VPS у кожному регіоні.

Обмеження, які потрібно враховувати: Mysterium не дає гарантій bandwidth або uptime від конкретної ноди. Для приложений з вимогами до latency <100ms — p2p VPN не оптимальний вибір. Потрібен fallback механізм й логіка переключення між провайдерами.

Базова інтеграція через mysterium-vpn-js у існуючое приложение: 2–3 тижні. Повна з біллінгом, нодою під управлінням вашого бекенду й custom discovery: 6–10 тижнів.