Guest User

Untitled

a guest
Oct 17th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. @startuml
  2.  
  3. box "\nUser"
  4. actor Alice
  5. participant Client
  6. database "Private\nStorage" as PrivStorage
  7. database "Private\nLedger" as PrivLedger
  8. end box
  9. box "\nAgents"
  10. participant "Faber\nCollege" as College
  11. participant "Acme\nEmployer" as Employer
  12. participant "Thrift\nBank" as Bank
  13. end box
  14. box "\nIndy Network"
  15. database "Public\nLedger" as PubLedger
  16. collections Steward
  17. end box
  18.  
  19. hide footbox
  20. skinparam ParticipantPadding 5
  21. skinparam BoxPadding 5
  22.  
  23. title Ledger Initialization
  24. Steward --> Steward : new wallet
  25. Steward -> Steward : exchange DID\nand verkey
  26. Steward -> PubLedger : write Pool TXN
  27. Steward -> PubLedger : write Domain TXN
  28. Steward -> PubLedger : write Config
  29. Steward -> PubLedger : start Validator
  30.  
  31. newpage Agent Provisioning
  32. group For each Agent
  33. College -> College : new wallet
  34. College -\\ Steward : send DID and vkey (external channel)
  35. Steward -> PubLedger : publish Nym
  36. College -> PubLedger : publish endpoint attributes (ip:port)
  37. College -> PubLedger : publish claims schema (Transcript)
  38. end
  39. group For each User
  40. College -\\ Alice : send connection request (external channel)
  41. end
  42.  
  43. newpage Client Initialization
  44. Alice -> Client : new wallet
  45. activate Client
  46. Client -> PrivStorage : save keys
  47. Client -> Alice : DID and vkey
  48. deactivate Client
  49. Alice -> Client : connect
  50. activate Client
  51. Client <- PubLedger : catch-up
  52. deactivate PubLedger
  53. Client -> Alice : status
  54. deactivate Client
  55.  
  56. newpage Connection to College
  57. Alice -> Client : accept
  58. activate Client
  59. Client <- PubLedger : lookup endpoint + vkey from DID
  60. Client -> Client : verify\nsignature
  61. Client -> PrivStorage : new DID
  62. Client -> College : signed DID+nonce
  63. activate College
  64. College -> College : verify request
  65. College -> PubLedger : publish Nym
  66. College -> College : map DID
  67. College -> Client : accepted
  68. deactivate College
  69. College -> Client : available claims
  70. Client -> PrivStorage : save\nconnection
  71. Client -> Alice : established
  72. deactivate Client
  73.  
  74. Alice -> Client : ping
  75. activate Client
  76. Client -> College : signed DID+nonce
  77. activate College
  78. College -> College : verify\nsignature
  79. College -> Client : signed nonce
  80. deactivate College
  81. Client -> Client : verify\nsignature
  82. Client -> Alice : pong
  83. deactivate Client
  84.  
  85. newpage Claim from College
  86. Alice -> Client : show
  87. activate Client
  88. College -> Client : get schema name+version
  89. PubLedger -> Client : get schema attributes
  90. Client -> Alice : names
  91. deactivate Client
  92.  
  93. Alice -> Client : request
  94. activate Client
  95. College -> Client : get signed claim
  96. Client <- PubLedger : lookup vkey from claim
  97. Client -> Client : verify\nsignature
  98. Client -> PrivStorage : save claim
  99. Client -> Alice : confirmation
  100. deactivate Client
  101.  
  102. Alice -> Client : show
  103. activate Client
  104. Client <- PrivStorage : read claim
  105. Client -> Alice : values
  106. deactivate Client
  107.  
  108. newpage Connection to Employer
  109. Alice -> Client : accept
  110. activate Client
  111. Client <- PubLedger : lookup endpoint + vkey from DID
  112. Client -> Client : verify\nsignature
  113. Client -> PrivStorage : new DID
  114. Client -> Employer : signed DID+request+claim
  115. activate Employer
  116. Employer <- PubLedger : lookup claim vkey
  117. Employer -> Employer : verify request
  118. Employer -> PubLedger : publish Nym
  119. Employer -> Employer : map DID
  120. Employer -> Client : accepted
  121. deactivate Employer
  122. Employer -> Client : available claims
  123. Client -> PrivStorage : save\nconnection
  124. Client -> Alice : established
  125. deactivate Client
  126.  
  127. newpage Claim from Employer
  128. Alice -> Client : show
  129. activate Client
  130. Employer -> Client : get schema name+version
  131. PubLedger -> Client : get schema attributes
  132. Client -> Alice : names
  133. deactivate Client
  134.  
  135. Alice -> Client : request
  136. activate Client
  137. Employer -> Client : get signed claim
  138. Client <- PubLedger : lookup vkey from claim
  139. Client -> Client : verify\nsignature
  140. Client -> PrivStorage : save claim
  141. Client -> Alice : confirmation
  142. deactivate Client
  143.  
  144. Alice -> Client : show
  145. activate Client
  146. Client <- PrivStorage : read claim
  147. Client -> Alice : values
  148. deactivate Client
  149.  
  150. @enduml
Add Comment
Please, Sign In to add comment