[#700] Add documentation for CompactBlockProcessor state machine
- plantuml tool is used to generate diagram.
This commit is contained in:
parent
5810294b3a
commit
cfc5fa12fa
|
@ -0,0 +1,84 @@
|
||||||
|
@startuml
|
||||||
|
hide empty description
|
||||||
|
|
||||||
|
note as Lines
|
||||||
|
Green lines are happy paths.
|
||||||
|
Red lines are error paths.
|
||||||
|
Blue lines are stop paths.
|
||||||
|
|
||||||
|
In general any action for any state can produce error.
|
||||||
|
And the sync process can be stopped during any action.
|
||||||
|
end note
|
||||||
|
|
||||||
|
|
||||||
|
[*] -> validateServer
|
||||||
|
|
||||||
|
validateServer : ValidateServerAction
|
||||||
|
validateServer -[#green,bold]-> computeSyncRanges
|
||||||
|
validateServer -[#red]-> failed : Error occured.
|
||||||
|
validateServer -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
computeSyncRanges : ComputeSyncRangesAction
|
||||||
|
computeSyncRanges -[#green,bold]-> checksBeforeSync
|
||||||
|
computeSyncRanges -[#red]-> failed : Error occured.
|
||||||
|
computeSyncRanges -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
checksBeforeSync : ChecksBeforeSyncAction
|
||||||
|
checksBeforeSync -[#green,bold]-> fetchUTXO
|
||||||
|
checksBeforeSync -[#red]-> failed : Error occured.
|
||||||
|
checksBeforeSync -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
fetchUTXO : FetchUTXOAction
|
||||||
|
fetchUTXO -[#green,bold]-> handleSaplingParams
|
||||||
|
fetchUTXO -[#red]-> failed : Error occured.
|
||||||
|
fetchUTXO -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
handleSaplingParams : SaplingParamsAction
|
||||||
|
handleSaplingParams -[#green,bold]-> scanDownloaded
|
||||||
|
handleSaplingParams -[#red]-> failed : Error occured.
|
||||||
|
handleSaplingParams -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
scanDownloaded : ScanDownloadedButUnscannedAction
|
||||||
|
scanDownloaded -[#green,bold]-> download
|
||||||
|
scanDownloaded -[#red]-> failed : Error occured.
|
||||||
|
scanDownloaded -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
download : DownloadAction
|
||||||
|
download -[#green,bold]-> validate
|
||||||
|
download -[#red]-> failed : Error occured.
|
||||||
|
download -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
validate : ValidateAction
|
||||||
|
validate -[#green,bold]-> scan
|
||||||
|
validate -[#red]-> failed : Error occured.
|
||||||
|
validate -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
scan : ScanAction
|
||||||
|
scan -[#green,bold]-> clearAlreadyScannedBlocks
|
||||||
|
|
||||||
|
clearAlreadyScannedBlocks : ClearAlreadyScannedBlocksAction
|
||||||
|
clearAlreadyScannedBlocks -[#green,bold]-> enhance
|
||||||
|
|
||||||
|
enhance : EnhanceAction
|
||||||
|
enhance -[#green,bold]-> download : Not all blocks in the\nsync range are downloaded\nand scanned yet.
|
||||||
|
enhance -[#green,bold]-> clearCache : All the blocks in\nthe sync range are downloaded\nand scanned.
|
||||||
|
enhance -[#red]-> failed : Error occured.
|
||||||
|
enhance -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
note right of enhance
|
||||||
|
Enhance transactions in batches of 1000
|
||||||
|
blocks. Dont't do it for each scan batch
|
||||||
|
which is usualy 100 blocks.
|
||||||
|
end note
|
||||||
|
|
||||||
|
clearCache : ClearCacheAction
|
||||||
|
clearCache --> finished
|
||||||
|
clearCache -[#red]-> failed : Error occured.
|
||||||
|
clearCache -[#blue]-> stopped : Sync was stopped.
|
||||||
|
|
||||||
|
finished --> [*]
|
||||||
|
failed --> [*]
|
||||||
|
stopped --> [*]
|
||||||
|
|
||||||
|
@enduml
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 216 KiB |
Loading…
Reference in New Issue