graph LR
classDef whiteborder stroke:#ffffff,stroke-width:3px;
classDef greenborder stroke:#00ff5d,stroke-width:3px;
classDef yellowborder stroke:#ffe200,stroke-width:3px;
classDef redborder stroke:#ff0063,stroke-width:3px;
classDef purpleborder stroke:#af00ff,stroke-width:3px;


Distributed_Ledger{"Distributed Ledger"}
Network_Architectures["Network Architectures"]
Single_Point_of_Failure["Single Point of Failure (SPOF)"]
Network_Nodes["Network Nodes"]
Transaction["Transaction"]
Block["Block"]
Cryptocurrency["Cryptocurrency"]
Network_Fees["Network Fees"]
Maximal_Extractable_Value["Maximal Extractable Value (MEV)"]
Flashbots["Flashbots"]
The_Proposer_Builder_Separation["The Proposer-Builder Separation (PBS)"]
Mempool["Mempool"]
Blockchain_Explorer["Blockchain Explorer"]


Distributed_Ledger --> Network_Architectures --> Single_Point_of_Failure
Distributed_Ledger --> Network_Nodes
Distributed_Ledger --> Transaction --> Block
Distributed_Ledger --> Cryptocurrency
Distributed_Ledger --> Network_Fees --> Maximal_Extractable_Value --> Flashbots
Maximal_Extractable_Value --> The_Proposer_Builder_Separation
Distributed_Ledger --> Mempool
Distributed_Ledger --> Blockchain_Explorer


class Distributed_Ledger,Network_Architectures,Single_Point_of_Failure,Network_Nodes,Transaction,Block,Cryptocurrency,Network_Fees,Maximal_Extractable_Value,Flashbots,The_Proposer_Builder_Separation,Mempool,Blockchain_Explorer internal-link;

class Distributed_Ledger whiteborder;
class Block greenborder; 
class Mempool yellowborder;
class Cryptocurrency redborder;
class Network_Fees purpleborder;

graph LR
   Subgraph for RootA
  subgraph SubA
    direction LR
    A1 --> A2 --> A3 --> A4
  end
  
   Subgraph for RootC
  subgraph SubC
    direction LR
    C1 --> C2 --> C3 --> C4
  end