digraph tx_overview {

size=6.25;
splines = "false";
rankdir=TB;
ranksep=0.5;
nodesep=0.05;
//splines=ortho;

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

    tx1_label [ shape = "none", label = "Transaction\n1" ]
    tx0_label [ shape = "none", label = "Transaction\n0" ]
    tx0_label -> tx1_label [ style = "invis" ];
    tx1_notshown [ shape = "none", label = "Not Shown:\nVersion, Outputs,\nLocktime" ]
    tx0_notshown [ shape = "none", label = "Not Shown:\nVersion, Inputs,\nLocktime" ]
    tx0_notshown -> tx1_notshown [ style = "invis" ];

subgraph cluster_tx0 {

    subgraph cluster_outputs {
        pubkey_script [ label = "Pubkey\nScript" ];
        amount [ label = "Amount\n(duffs)" ];
        output0_label [ shape = "none", label = "Output 0\n(Implied)" ]
        label = "Example Output Paying A Pubkey Script"
    }
    graph [ penwidth = 0 ];
}

subgraph cluster_tx1 {
    subgraph cluster_inputs {
        index [ label = "Output\nIndex" ];
        sequence [ label = "Sequence\nNumber" ];
        signature_script [ label = "Signature\nScript" ];
        txid [ label = "Transaction\nIdentifier" ];
        label = "Example Input Spending The Example Output";
        labelloc = b;
    }
    graph [ penwidth = 0 ];
}

pubkey_script -> signature_script [ style = "dashed" ];
output0_label -> index [ style = "dashed" ];
tx0_label -> txid [ style = "dashed", constraint = false ];



label = "Overview Of Transaction Spending"

}
