go-bitswap.puml 1.13 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
@startuml Bitswap Components

node "Top Level Interface" {
  [Bitswap]
}
node "Sending Blocks" {
  
  [Engine] -left-* [Ledger]
  [Engine] -right-* [PeerTaskQueue]
  [Engine] --> [TaskWorker (workers.go)]
}
[Bitswap] --* "Sending Blocks"
node "Requesting Blocks" {
  [Bitswap] --* [WantManager]
  [WantManager] --> [PeerManager]
  [PeerManager] --* [MessageQueue]
}

node "Providing" {
  [Bitswap] --* [Provide Collector (workers.go)]
  [Provide Collector (workers.go)] --* [Provide Worker (workers.go)]
}

node "Finding Providers" {
  [Bitswap] --* [ProvideQueryManager]
}

node "Sessions (smart requests)" {
  [Bitswap] --* [SessionManager]
  [SessionManager] --o [Session]
  [SessionManager] --o [SessionPeerManager]
  [SessionManager] --o [SessionRequestSplitter]
  [Session] --* [SessionPeerManager]
  [Session] --* [SessionRequestSplitter]
  [Session] --> [WantManager]
  [SessionPeerManager] --> [ProvideQueryManager]
}

node "Network" {
  [BitSwapNetwork]
  [MessageQueue] --> [BitSwapNetwork]
  [ProvideQueryManager] --> [BitSwapNetwork]
  [TaskWorker (workers.go)] --> [BitSwapNetwork]
  [Provide Worker (workers.go)] --> [BitSwapNetwork]
}
@enduml