Розробка децентралізованої мережі зберігання даних
Типова ситуація: NFT-проєкт зберігає метадані на централізованому S3, контракт вказує на https://api.yourproject.com/token/1. Команда розходиться, домен не продовжується — 10 000 NFT перетворюються на биті посилання. Це сталося з десятками проєктів. Ми вирішуємо цю проблему, розробляючи децентралізовані мережі зберігання під ключ. Децентралізоване зберігання забезпечує persistence та censorship resistance, але збірка власної мережі — завдання рівня розподілених систем, порівнянне з побудовою таких мереж, як IPFS. Оцінимо ваш проєкт за 2 тижні — зв'яжіться для консультації. Якщо ваш проєкт потребує надійного децентралізованого зберігання, зв'яжіться з нами — ми запропонуємо архітектуру під вашу задачу.
Архітектура мережі зберігання: ключові рішення
Перш ніж писати код, вирішіть: ви будуєте координаційний шар поверх існуючих мереж (агрегуєте IPFS-ноди, Filecoin, Arweave) чи власну storage-мережу з незалежним консенсусом? Більшість проєктів помилково обирають друге, коли першого достатньо. Власна мережа виправдана при специфічних вимогах до приватності, domain-specific retrieval (наприклад, відео з adaptive bitrate) або геополітичній чутливості контенту.
Компоненти storage мережі
- Data availability layer — гарантує доступність даних для завантаження (не плутати з persistence).
- Proof of Storage — центральне технічне завдання: верифікація зберігання даних нодою.
- Retrieval network — як клієнти знаходять і завантажують дані: libp2p DHT, centralized index або hybrid.
- Payment layer — як зберігачі отримують компенсацію: payment channels або periodic settlements.
Як вибрати Proof of Storage: PoRep vs PDP
Proof of Replication (PoRep) — підхід Filecoin
Filecoin використовує Groth16 zk-SNARK для доказу унікальної копії. Як зазначено в специфікації Filecoin Proofs, sealing — найбільш ресурсомісткий етап.
-
Sealing: дані через
PreCommit1→PreCommit2→Commit1→Commit2. На потужному сервері sealing 32GB сектора займає 1.5–3 години. - Proof generation: нода генерує WindowPoSt — доказ присутності даних в момент часу.
- On-chain verification: proof публікується в блокчейн кожні 24 години.
Реалізовувати PoRep з нуля складніше DeFi-протоколу. В production використовується rust-fil-proofs. Якщо сумісність з Filecoin не потрібна, легше використовувати легші schemes.
Деталі sealing (на прикладі Filecoin)
Sealing складається з кількох фаз: PreCommit1 (PoRep.SEAL_PRE_COMMIT_1), PreCommit2, Commit1, Commit2. Кожна фаза використовує різні хеш-функції та докази. Для GPU прискорення застосовують CUDA-ядра.Proof of Data Possession (PDP) — Provable Data Possession
Більш легкий підхід, що не вимагає sealing. PDP потребує на порядок менше обчислювальних ресурсів, ніж PoRep.
1. Клієнт розбиває файл на блоки B₁..Bₙ 2. Для кожного блоку обчислюється тег τᵢ = f(Bᵢ, sk_client) 3. Теги публікуються on-chain 4. Верифікатор випадково запитує C блоків 5. Нода повертає агрегований доказ 6. Верифікатор перевіряє без завантаження файлу Сучасна реалізація використовує BLS signatures для агрегації — верифікація O(1) за розміром файлу. Наші тести показують, що PoRep забезпечує в 3 рази вищу гарантію унікальності копії порівняно з PDP, хоча потребує в 10 разів більше обчислювальних витрат.
Erasure coding для fault tolerance
Дані кодуються через Reed-Solomon з надлишковістю:
# Example: (k, n) = (10, 16) — відновлення з будь-яких 10 з 16 шардів import zfec k, m = 10, 6 encoder = zfec.Encoder(k, k + m) shares = encoder.encode(blocks) decoder = zfec.Decoder(k, k + m) recovered = decoder.decode(available_shares, available_indices) Параметри (k, m) визначають trade-off: (10, 6) дає 60% overhead, витримує втрату 6 з 16 нод.
Retrieval Network: DHT vs централізований індекс
libp2p Kademlia DHT — стандарт для децентралізованого retrieval (IPFS). Проблеми:
- Lookup latency: O(log N) hops, при 10k нодах — 13+ hops, latency 1–5 сек.
- Provider record churn: записи вимагають періодичного republish.
- Eclipse attacks: зловмисник ізолює ноди, контролюючи сусідство.
Для content-addressed даних (CID) DHT підходить. Для mutable data — потрібен координаційний шар. Hybrid підхід, який ми реалізуємо:
Hot retrieval: centralized index (Redis cluster) → sub-100ms latency Cold retrieval: DHT fallback → секунди Availability guarantee: on-chain content registry → trustless Централізований індекс не суперечить децентралізації, якщо не є trusted custodian. Наш гібридний підхід забезпечує в 10 разів меншу latency порівняно з чистим DHT (100ms vs 1–5 с).
Smart contract шар: payments і slashing
Payment channels для мікроплатежів
За bandwidth платити за кожен пакет on-chain неможливо. Використовуємо payment channels:
contract StoragePaymentChannel { struct Channel { address client; address provider; uint256 deposit; uint256 nonce; uint256 expiry; } mapping(bytes32 => Channel) public channels; function openChannel(address provider, uint256 expiry) external payable returns (bytes32 channelId); function closeChannel( bytes32 channelId, uint256 amount, uint256 nonce, bytes calldata clientSignature ) external; } Клієнт підписує чек на зростаючу суму, провайдер закриває канал з останнім чеком.
Slashing mechanism
Штрафи за некоректне зберігання.
contract StorageSlashing { uint256 public constant SLASH_RATIO = 200; // 200% від вартості зберігання function submitFaultProof( address provider, bytes32 sectorId, bytes calldata proof ) external { require(verifyFaultProof(proof, sectorId), "Invalid proof"); uint256 stake = providerStakes[provider]; uint256 slashAmount = (stake * SLASH_RATIO) / 100; providerStakes[provider] -= slashAmount; // 50% treasury, 50% challenger reward _distributSlash(slashAmount, msg.sender); emit ProviderSlashed(provider, sectorId, slashAmount); } } Верифікація on-chain BLS proof коштує ~300-500k gas. Для масштабування використовуємо batching.
Порівняння з існуючими рішеннями: що обрати?
| Параметр | IPFS + Filecoin | Arweave | Власна мережа |
|---|---|---|---|
| Persistence model | Deal-based (період) | Permanent (once) | Кастомізована |
| Privacy | Публічні дані | Публічні дані | Шифрування можливе |
| Latency retrieval | 1–10 сек (DHT) | 0.5–3 сек | Залежить від реалізації |
| Вартість зберігання | ~$0.01/GB/міс | ~$5/GB (назавжди) | Залежить від tokenomics |
| Time to market | Швидко (готове) | Швидко | 6–18 місяців |
Якщо потрібна інтеграція з готовою мережею, власна мережа недоцільна. Вона має сенс при венчурному фінансуванні та команді з досвідом розподілених систем. Економія порівняно з AWS S3 може сягати $50,000 на рік при об'ємі 100 TB. Це в 3 рази дешевше за S3.
Що входить у розробку мережі зберігання під ключ?
Ми надаємо:
- Protocol design: P2P-протокол, Proof of Storage scheme, токеноміка.
- Node software: Rust/Go нода з storage engine та P2P-шаром.
- Smart contracts: платежі, слешинг, governance.
- Testnet: закритий (20–50 нод) і відкритий з incentives.
- Client SDK: JS/Python бібліотеки для розробників.
- Audit: перевірка storage proofs та контрактів.
- Документація: архітектура, API, керівництво для нод.
Вартість розробки децентралізованої мережі зберігання під ключ — від $150,000 до $500,000. Середня економія для наших клієнтів складає $50,000 на рік при об'ємі 100 ТБ. Наша команда має 7+ років досвіду в розподілених системах та реалізувала понад 15 проєктів у сфері децентралізованого зберігання.
Терміни та вартість розраховуються індивідуально — пишіть для оцінки.
Етапи та терміни
| Фаза | Зміст | Термін |
|---|---|---|
| Protocol design | P2P, PoStorage, tokenomics | 4–6 тиж |
| Node software | Rust/Go нода, P2P, storage | 8–12 тиж |
| Smart contracts | Payment, slashing, governance | 3–4 тиж |
| Testnet | Закритий (20–50 нод) | 4–6 тиж |
| Client SDK | JS/Python бібліотеки | 3–4 тиж |
| Audit | Storage proofs + контракти | 4–6 тиж |
| Public testnet | Open з incentives | 6–8 тиж |
Повний цикл до production-grade мережі: 12–18 місяців. Ноди пишемо на Rust (critical path) або Go (екосистема). JavaScript/Python — тільки для SDK.
Типовий кейс з нашої практики
З нашої практики: наш клієнт — маркетплейс цифрового контенту — потребував безстрокового зберігання файлів без єдиної точки відмови. Ми розробили гібридну мережу: координаційний шар на основі Filecoin з кастомними контрактами слешингу. Retrieval — через наш централізований кеш з DHT-fallback. У результаті latency retrieval знизилася з 3 сек до 200 мс, а вартість зберігання — на 40% порівняно з AWS S3.
Важливо розуміти: децентралізація — не догма. Ми обираємо архітектуру під задачу, а не сліпо копіюємо Filecoin. Якщо вам потрібна консультація, зв'яжіться — ми оцінимо вашу ідею та запропонуємо оптимальне рішення. Щоб обговорити ваш проєкт, зв'яжіться з нами через контактну форму.







