22title "Mithril network architecture"
33!include https ://raw . githubusercontent . com /plantuml - stdlib /C4 - PlantUML /master /C4_Component . puml
44
5- AddElementTag ("external" , $bgColor = "#c1c1c1 ")
5+ AddElementTag ("external" , $bgColor = "#c1ffc1 ")
66
77Person (end_user , "End user" , "Retrieves and verifies artifacts certified by the Mithril network" )
88
99Container_Boundary (mithril_aggregator , "Mithril aggregator" , $link = "https ://github.com/input-output-hk/mithril/tree/main/mithril-aggregator") {
10- Component (mithril_aggregator_runtime , "Aggregator Runtime " , "FSM" , "Maintains and transitions internal states of aggregator " )
11- Component (mithril_aggregator_cryptographic_engine , "Cryptographic Engine " , "STM/Asym" , "Operates cryptographic primitives" )
10+ Component (mithril_aggregator_logic , "Aggregator logic " , "FSM" , "Maintains and transitions aggregator's internal states" )
11+ Component (mithril_aggregator_cryptographic_engine , "Cryptographic engine " , "STM/Asym" , "Operates cryptographic primitives" )
1212 Component (mithril_aggregator_http_server , "HTTP server" , "REST API" , "Serves HTTP requests to signers and clients" )
13- ComponentDb (mithril_aggregator_persistence , "Persistence" , "SQLite/FS" , "Stores aggregator data (verification keys, certificates, artifacts)" )
13+ ComponentDb (mithril_aggregator_persistence , "Persistence" , "SQLite/FS" , "Stores aggregator's data (verification keys, certificates, artifacts)" )
1414
15- Rel (mithril_aggregator_runtime , mithril_aggregator_cryptographic_engine , "Computes protocol cryptography" )
16- BiRel (mithril_aggregator_runtime , mithril_aggregator_persistence , "Access aggregator state" )
17- BiRel (mithril_aggregator_http_server , mithril_aggregator_persistence , "Access aggregator state" )
15+ Rel (mithril_aggregator_logic , mithril_aggregator_cryptographic_engine , "Computes protocol cryptography" )
16+ BiRel (mithril_aggregator_logic , mithril_aggregator_persistence , "Accesses aggregator's state" )
17+ BiRel (mithril_aggregator_http_server , mithril_aggregator_persistence , "Accesses aggregator's state" )
1818}
1919
2020Container_Boundary (mithril_signer , "Mithril signer" , $link = "https ://github.com/input-output-hk/mithril/tree/main/mithril-signer") {
21- Component (mithril_signer_runtime , "Signer Runtime " , "FSM" , "Maintains and transitions internal states of signer " )
22- Component (mithril_signer_cryptographic_engine , "Cryptographic Engine " , "STM/Asym" , "Operates cryptographic primitives" )
23- Component (mithril_signer_http_client , "HTTP client" , "REST API" , "Sends HTTP requests to aggregator via relay" )
24- ComponentDb (mithril_signer_persistence , "Persistence" , "SQLite/FS" , "Stores signer data (signing keys)" )
25-
26- BiRel (mithril_signer_runtime , mithril_signer_http_client , "Retrieves aggregator data" )
27- Rel (mithril_signer_runtime , mithril_signer_cryptographic_engine , "Computes protocol cryptography" )
28- BiRel (mithril_signer_runtime , mithril_signer_persistence , "Access signer state" )
21+ Component (mithril_signer_logic , "Signer logic " , "FSM" , "Maintains and transitions signer's internal states " )
22+ Component (mithril_signer_cryptographic_engine , "Cryptographic engine " , "STM/Asym" , "Operates cryptographic primitives" )
23+ Component (mithril_signer_http_client , "HTTP client" , "REST API" , "Sends HTTP requests to the aggregator via the relay" )
24+ ComponentDb (mithril_signer_persistence , "Persistence" , "SQLite/FS" , "Stores signer's data (signing keys)" )
25+
26+ BiRel (mithril_signer_logic , mithril_signer_http_client , "Retrieves aggregator's data" )
27+ Rel (mithril_signer_logic , mithril_signer_cryptographic_engine , "Computes protocol cryptography" )
28+ BiRel (mithril_signer_logic , mithril_signer_persistence , "Accesses signer's state" )
2929}
3030
3131Container_Boundary (mithril_relay , "Mithril relay" ) {
32- Component (mithril_relay_forward_proxy , "Forward proxy" , "Squid" , "Proxies HTTPS calls to aggregator" )
32+ Component (mithril_relay_forward_proxy , "Forward proxy" , "Squid" , "Proxies HTTPS calls to the aggregator" )
3333}
3434
3535Container_Boundary (mithril_client , "Mithril client" , $link = "https ://github.com/input-output-hk/mithril/tree/main/mithril-client") {
36- Component (mithril_client_runtime , "Client Runtime " , "Client commands" , "Retrieves artifacts and verifies their authenticity" )
37- Component (mithril_client_cryptographic_engine , "Cryptographic Engine " , "STM/Asym" , "Operates cryptographic primitives" )
38- Component (mithril_client_http_client , "HTTP client" , "REST API" , "Sends HTTP requests to aggregator" )
36+ Component (mithril_client_logic , "Client logic " , "Client commands" , "Retrieves artifacts and verifies their authenticity" )
37+ Component (mithril_client_cryptographic_engine , "Cryptographic engine " , "STM/Asym" , "Operates cryptographic primitives" )
38+ Component (mithril_client_http_client , "HTTP client" , "REST API" , "Sends HTTP requests to the aggregator" )
3939
40- BiRel (end_user , mithril_client_runtime , "CLI or browser" , "User interaction" )
41- BiRel (mithril_client_runtime , mithril_client_http_client , "Retrieves aggregator data and artifacts" )
42- Rel (mithril_client_runtime , mithril_client_cryptographic_engine , "Computes protocol cryptography" )
40+ BiRel (end_user , mithril_client_logic , "CLI or browser" , "User interaction" )
41+ BiRel (mithril_client_logic , mithril_client_http_client , "Retrieves aggregator's data and artifacts" )
42+ Rel (mithril_client_logic , mithril_client_cryptographic_engine , "Computes protocol cryptography" )
4343}
4444
4545Rel (mithril_signer_http_client , mithril_relay_forward_proxy , "" , "JSON/TCP" )
4646Rel (mithril_relay_forward_proxy , mithril_aggregator_http_server , "" , "JSON/HTTPS" )
4747Rel (mithril_client_http_client , mithril_aggregator_http_server , "" , "JSON/HTTPS" )
4848
49- Component (mithril_aggregator_cardano_node , "Cardano Node " , "N2C/FS" , "Cardano full node" , $tags = "external ")
50- Rel_L (mithril_aggregator_runtime , mithril_aggregator_cardano_node , "Retrieve Cardano chain state" )
51- Component (mithril_signer_cardano_node , "Cardano Node " , "N2C/FS" , "Cardano block producer node" , $tags = "external ")
52- Rel (mithril_signer_runtime , mithril_signer_cardano_node , "Retrieve Cardano chain state" )
49+ Component (mithril_aggregator_cardano_node , "Cardano node " , "N2C/FS" , "Cardano full node" , $tags = "external ")
50+ Rel_L (mithril_aggregator_logic , mithril_aggregator_cardano_node , "Retrieves Cardano chain state" )
51+ Component (mithril_signer_cardano_node , "Cardano node " , "N2C/FS" , "Cardano block-producing node" , $tags = "external ")
52+ Rel (mithril_signer_logic , mithril_signer_cardano_node , "Retrieves Cardano chain state" )
5353BiRel (mithril_aggregator_cardano_node , mithril_signer_cardano_node , "N2N protocol" )
5454
5555Component (mithril_artifact_storage , "Artifact storage" , "Cloud" , "Cloud file storage" , $tags = "external ")
56- Rel (mithril_aggregator_runtime , mithril_artifact_storage , "HTTPS" , "Stores artifacts" )
56+ Rel (mithril_aggregator_logic , mithril_artifact_storage , "HTTPS" , "Stores artifacts" )
5757Rel (mithril_client_http_client , mithril_artifact_storage , "HTTPS" , "Downloads artifacts" )
5858@enduml
0 commit comments