Skip to content
Snippets Groups Projects
architecture-overview.dot 4.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • digraph subscriptions {
            rankdir=LR
    
            subgraph cluster_usercontrolled {
                    label = "User Operated"
                    rankdir=LR
                    GridSync                 [label="GridSync",                          shape=circle]
                    Browser                  [label="Browser",                           shape=circle]
                    TahoeLAFS                [label="Tahoe-LAFS",                        shape=circle]
            }
    
    
            subgraph cluster_pscontrolled {
                    label = "PrivateStorage.io Operated"
                    rankdir = TB
                    PSWebServer              [label="PrivateStorage.io Web Server",      shape=box]
                    SubscriptionConfigWHPeer [label="Subscription Config Wormhole Peer", shape=box]
                    PaymentServer            [label="Payment Server",                    shape=box]
                    SATIssuer                [label="SAT Issuer",                        shape=box]
                    PSStorageGrid            [label="PrivateStorage.io Storage Grid",    shape=box]
            }
    
            User                     [label="User",                              shape=egg]
            Stripe                   [label="Stripe",                            shape=pentagon]
    
            User                     -> PSWebServer              [label="1. Get wormhole code",    fontcolor=red, color=red]
            PSWebServer              -> User                     [label="2. 7-petulant-banana",    fontcolor=blue, color=blue]
            User                     -> GridSync                 [label="3. 7-petulant-banana",    fontcolor=brown, color=brown]
            GridSync                 -> SubscriptionConfigWHPeer [label="4. Get configuration",    fontcolor=black, color=black]
            SubscriptionConfigWHPeer -> GridSync                 [label="5. Grid configuration",   fontcolor=magenta, color=magenta]
            GridSync                 -> TahoeLAFS                [label="6. Instantiate",          fontcolor=aquamarine3, color=aquamarine3]
            GridSync                 -> TahoeLAFS                [label="7. Redeem PRN",           fontcolor=crimson, color=crimson]
            TahoeLAFS                -> PaymentServer            [label="8. Redeem PRN",           fontcolor=crimson, color=crimson]
            PaymentServer            -> TahoeLAFS                [label="9. Payment required",     fontcolor=gold3, color=gold3]
            TahoeLAFS                -> GridSync                 [label="10. Payment required",    fontcolor=gold3, color=gold3]
            GridSync                 -> Browser                  [label="11. Open payment window", fontcolor=gold3, color=gold3]
            User                     -> Browser                  [label="12. Enter payment info",  fontcolor=blue, color=blue]
            Browser                  -> Stripe                   [label="13. Submit payment form", fontcolor=brown, color=brown]
            Stripe                   -> Browser                  [label="14. Payment ok",          fontcolor=black, color=black]
            Stripe                   -> PaymentServer            [label="15. Payment notification", fontcolor=magenta, color=magenta]
            GridSync                 -> TahoeLAFS                [label="16. Redeem PRN",             fontcolor=aquamarine3, color=aquamarine3]
            TahoeLAFS                -> TahoeLAFS                [label="17. Generate blinded tokens",        fontcolor=crimson, color=crimson]
            TahoeLAFS                -> SATIssuer                [label="18. Redeem PRN, blinded-tokens=xs",  fontcolor=crimson, color=crimson]
    	SATIssuer                -> PaymentServer            [label="19. Check PRN",                      fontcolor=gold3, color=gold3]
    	PaymentServer            -> SATIssuer                [label="20. PRN Valid",                      fontcolor=gold3, color=gold3]
    	SATIssuer                -> TahoeLAFS                [label="21. PRN valid, signed-tokens=ys",    fontcolor=crimson, color=crimson]
            TahoeLAFS                -> TahoeLAFS                [label="22. Store signed tokens",            fontcolor=crimson, color=crimson]
            TahoeLAFS                -> GridSync                 [label="23. PRN Redeemed",                   fontcolor=red, color=red]
            TahoeLAFS                -> PSStorageGrid            [label="24. Use storage, passes=y",          fontcolor=magenta, color=magenta]
    }