logos-storage-docs/ru/learn/download-flow.md
Marina Petrichenko e654a293e0
docs: add russian translations (#73)
Co-authored-by: Slava <20563034+veaceslavdoina@users.noreply.github.com>
2025-07-31 14:35:28 +03:00

2.4 KiB
Raw Blame History

Процесс загрузки

Последовательность взаимодействий, приводящих к передаче блоков данных через сеть.

Локальное хранилище

Когда данные доступны в локальном хранилище блоков,

sequenceDiagram
actor Alice
participant API
Alice->>API: Download(CID)
API->>+Node/StoreStream: Retrieve(CID)
loop Get manifest block, then data blocks
    Node/StoreStream->>NetworkStore: GetBlock(CID)
    NetworkStore->>LocalStore: GetBlock(CID)
    LocalStore->>NetworkStore: Block
    NetworkStore->>Node/StoreStream: Block
end
Node/StoreStream->>Node/StoreStream: Handle erasure coding
Node/StoreStream->>-API: Data stream
API->>Alice: Stream download of block

Сетевое хранилище

Когда данные не найдены в локальном хранилище блоков, используется механизм обмена блоками для обнаружения местоположения блока в сети. Устанавливается соединение с узлом(ами), у которых есть блок, и происходит обмен.

sequenceDiagram
box
actor Alice
participant API
participant Node/StoreStream
participant NetworkStore
participant Discovery
participant Engine
end
box
participant OtherNode
end
Alice->>API: Download(CID)
API->>+Node/StoreStream: Retrieve(CID)
Node/StoreStream->>-API: Data stream
API->>Alice: Download stream begins
loop Get manifest block, then data blocks
    Node/StoreStream->>NetworkStore: GetBlock(CID)
    NetworkStore->>Engine: RequestBlock(CID)
    opt CID not known
    Engine->>Discovery: Discovery Block
    Discovery->>Discovery: Locates peers who provide block
    Discovery->>Engine: Peers
    Engine->>Engine: Update peers admin
    end
    Engine->>Engine: Select optimal peer
    Engine->>OtherNode: Send WantHave list
    OtherNode->>Engine: Send BlockPresence
    Engine->>Engine: Update peers admin
    Engine->>Engine: Decide to buy block
    Engine->>OtherNode: Send WantBlock list
    OtherNode->>Engine: Send Block
    Engine->>NetworkStore: Block
    NetworkStore->>NetworkStore: Add to Local store
    NetworkStore->>Node/StoreStream: Resolve Block
    Node/StoreStream->>Node/StoreStream: Handle erasure coding
    Node/StoreStream->>API: Push data to stream
end
API->>Alice: Download stream finishes