go-bitswap.puml 1.22 KB
Newer Older
1 2 3 4 5
@startuml Bitswap Components

node "Top Level Interface" {
  [Bitswap]
}
6 7 8

node "Sending Blocks" {  
  [Bitswap] --* [Engine]
9 10 11 12
  [Engine] -left-* [Ledger]
  [Engine] -right-* [PeerTaskQueue]
  [Engine] --> [TaskWorker (workers.go)]
}
13

14 15 16 17 18 19 20 21 22 23 24
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]
25
  [SessionManager] --> [SessionInterestManager]
26
  [SessionManager] --o [Session]
Dirk McCormick's avatar
Dirk McCormick committed
27
  [SessionManager] --> [BlockPresenceManager]
28
  [Session] --* [sessionWantSender]
29
  [Session] --* [SessionPeerManager]
30 31 32 33
  [Session] --> [ProvideQueryManager]
  [Session] --* [sessionWants]
  [Session] --> [SessionInterestManager]
  [sessionWantSender] --> [BlockPresenceManager]
Dirk McCormick's avatar
Dirk McCormick committed
34 35 36 37
}

node "Requesting Blocks" {  
  [SessionManager] --> [PeerManager]
38
  [sessionWantSender] --> [PeerManager]
Dirk McCormick's avatar
Dirk McCormick committed
39
  [PeerManager] --* [MessageQueue]
40 41 42 43 44 45 46 47 48 49
}

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