digraph tx_overview {

size=6.25;
splines = "false";
rankdir=LR;
rankdir=TB;
ranksep=0.001;
nodesep=0.01;
//splines=ortho;

node [ penwidth=1.75, fontname="Sans", shape = box ];
edge [ penwidth=1.75, fontname="Sans" ];
graph [ penwidth=1.75, fontname="Sans" ];

subgraph cluster_tx {
    Locktime;
    Outputs;
    Inputs;
    Version;
    //tx_label1 [ shape = "none", label = "" ];
    tx0_label [ shape = "none", label = "The Main Parts Of\nTransaction 0" ];

    labelloc = b
    graph [ penwidth=0 ];
}

    tx_label [ shape = "none", label = "Each input spends a previous output" ];
    tx_label -> Inputs [ style = "invis" ];
    tx_label -> Outputs [ style = "invis" ];

subgraph cluster_tx1 {
    Version1 [ label = "Version" ];
    Inputs1 [ label = "Inputs" ];
    Outputs1 [ label = "Outputs" ];
    Locktime1 [ label = "Locktime" ];
    //tx_label1 [ shape = "none", label = "" ];
    tx1_label [ shape = "none", label = "The Main Parts Of\nTransaction 1" ];

    labelloc = b
    graph [ penwidth=0 ];
}

utxos [ shape = "none", label = "Each output waits as an Unspent TX Output (UTXO) until a later input spends it" ];

Locktime -> Locktime1 [ style = "invis", weight = 3 ];
Version -> Version1 [ style = "invis", weight = 3 ];
Inputs -> Inputs1 [ style = "invis", weight = 3 ];
Outputs -> Outputs1 [ style = "invis", weight = 3 ];
Outputs -> Inputs1 [weight = 0 ];


Inputs1 -> utxos [ style = "invis" ];

}
