mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
Revise TX Overview Image
* Replace previous TX Overview image with a simplified illustration.
The previous overview image was commented out in pull #566 / commit
6afc683
. New image incorporates suggestions by @saivann (thanks!)
* Add new illustration showing the specifics of outputs and inputs (and
how they're related). This replaces most of the detail lost by using a
simplified overview image
* Add two short paragraphs briefly describing the ouput and input
features, leading into the existing detailed P2PKH description
This commit is contained in:
parent
8490061706
commit
e26b0e3819
7 changed files with 281 additions and 222 deletions
52
img/dev/en-tx-overview-spending.dot
Normal file
52
img/dev/en-tx-overview-spending.dot
Normal file
|
@ -0,0 +1,52 @@
|
|||
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(satoshis)" ];
|
||||
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"
|
||||
|
||||
}
|
BIN
img/dev/en-tx-overview-spending.png
Normal file
BIN
img/dev/en-tx-overview-spending.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
108
img/dev/en-tx-overview-spending.svg
Normal file
108
img/dev/en-tx-overview-spending.svg
Normal file
|
@ -0,0 +1,108 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
|
||||
-->
|
||||
<!-- Title: tx_overview Pages: 1 -->
|
||||
<svg width="450pt" height="189pt"
|
||||
viewBox="0.00 0.00 450.00 189.14" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph1" class="graph" transform="scale(0.703125 0.703125) rotate(0) translate(4 265)">
|
||||
<title>tx_overview</title>
|
||||
<polygon fill="white" stroke="white" points="-4,5 -4,-265 637,-265 637,5 -4,5"/>
|
||||
<text text-anchor="middle" x="316" y="-8.4" font-family="Sans" font-size="14.00">Overview Of Transaction Spending</text>
|
||||
<g id="graph2" class="cluster"><title>cluster_tx0</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="0" points="185,-154 185,-253 494,-253 494,-154 185,-154"/>
|
||||
</g>
|
||||
<g id="graph3" class="cluster"><title>cluster_outputs</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="193,-162 193,-245 486,-245 486,-162 193,-162"/>
|
||||
<text text-anchor="middle" x="339.5" y="-228.4" font-family="Sans" font-size="14.00">Example Output Paying A Pubkey Script</text>
|
||||
</g>
|
||||
<g id="graph4" class="cluster"><title>cluster_tx1</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="0" points="104,-33 104,-132 476,-132 476,-33 104,-33"/>
|
||||
</g>
|
||||
<g id="graph5" class="cluster"><title>cluster_inputs</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="112,-41 112,-124 468,-124 468,-41 112,-41"/>
|
||||
<text text-anchor="middle" x="290" y="-49.4" font-family="Sans" font-size="14.00">Example Input Spending The Example Output</text>
|
||||
</g>
|
||||
<!-- tx1_label -->
|
||||
<g id="node1" class="node"><title>tx1_label</title>
|
||||
<text text-anchor="middle" x="48" y="-99.4" font-family="Sans" font-size="14.00">Transaction</text>
|
||||
<text text-anchor="middle" x="48" y="-82.4" font-family="Sans" font-size="14.00">1</text>
|
||||
</g>
|
||||
<!-- tx0_label -->
|
||||
<g id="node2" class="node"><title>tx0_label</title>
|
||||
<text text-anchor="middle" x="48" y="-195.4" font-family="Sans" font-size="14.00">Transaction</text>
|
||||
<text text-anchor="middle" x="48" y="-178.4" font-family="Sans" font-size="14.00">0</text>
|
||||
</g>
|
||||
<!-- tx0_label->tx1_label -->
|
||||
<!-- txid -->
|
||||
<g id="node17" class="node"><title>txid</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="216,-116 120,-116 120,-74 216,-74 216,-116"/>
|
||||
<text text-anchor="middle" x="168" y="-99.4" font-family="Sans" font-size="14.00">Transaction</text>
|
||||
<text text-anchor="middle" x="168" y="-82.4" font-family="Sans" font-size="14.00">Identifier</text>
|
||||
</g>
|
||||
<!-- tx0_label->txid -->
|
||||
<g id="edge14" class="edge"><title>tx0_label->txid</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" stroke-dasharray="5,2" d="M74.3345,-169.932C91.8413,-155.927 115.002,-137.399 133.912,-122.271"/>
|
||||
<polygon fill="black" stroke="black" points="136.105,-124.998 141.727,-116.018 131.732,-119.532 136.105,-124.998"/>
|
||||
</g>
|
||||
<!-- tx1_notshown -->
|
||||
<g id="node4" class="node"><title>tx1_notshown</title>
|
||||
<text text-anchor="middle" x="564" y="-107.9" font-family="Sans" font-size="14.00">Not Shown:</text>
|
||||
<text text-anchor="middle" x="564" y="-90.9" font-family="Sans" font-size="14.00">Version, Outputs,</text>
|
||||
<text text-anchor="middle" x="564" y="-73.9" font-family="Sans" font-size="14.00">Locktime</text>
|
||||
</g>
|
||||
<!-- tx0_notshown -->
|
||||
<g id="node5" class="node"><title>tx0_notshown</title>
|
||||
<text text-anchor="middle" x="564" y="-203.9" font-family="Sans" font-size="14.00">Not Shown:</text>
|
||||
<text text-anchor="middle" x="564" y="-186.9" font-family="Sans" font-size="14.00">Version, Inputs,</text>
|
||||
<text text-anchor="middle" x="564" y="-169.9" font-family="Sans" font-size="14.00">Locktime</text>
|
||||
</g>
|
||||
<!-- tx0_notshown->tx1_notshown -->
|
||||
<!-- pubkey_script -->
|
||||
<g id="node9" class="node"><title>pubkey_script</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="451,-212 385,-212 385,-170 451,-170 451,-212"/>
|
||||
<text text-anchor="middle" x="418" y="-195.4" font-family="Sans" font-size="14.00">Pubkey</text>
|
||||
<text text-anchor="middle" x="418" y="-178.4" font-family="Sans" font-size="14.00">Script</text>
|
||||
</g>
|
||||
<!-- signature_script -->
|
||||
<g id="node16" class="node"><title>signature_script</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="460,-116 376,-116 376,-74 460,-74 460,-116"/>
|
||||
<text text-anchor="middle" x="418" y="-99.4" font-family="Sans" font-size="14.00">Signature</text>
|
||||
<text text-anchor="middle" x="418" y="-82.4" font-family="Sans" font-size="14.00">Script</text>
|
||||
</g>
|
||||
<!-- pubkey_script->signature_script -->
|
||||
<g id="edge10" class="edge"><title>pubkey_script->signature_script</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" stroke-dasharray="5,2" d="M418,-169.694C418,-157.017 418,-140.697 418,-126.547"/>
|
||||
<polygon fill="black" stroke="black" points="421.5,-126.246 418,-116.246 414.5,-126.246 421.5,-126.246"/>
|
||||
</g>
|
||||
<!-- amount -->
|
||||
<g id="node10" class="node"><title>amount</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="380,-212 298,-212 298,-170 380,-170 380,-212"/>
|
||||
<text text-anchor="middle" x="339" y="-195.4" font-family="Sans" font-size="14.00">Amount</text>
|
||||
<text text-anchor="middle" x="339" y="-178.4" font-family="Sans" font-size="14.00">(satoshis)</text>
|
||||
</g>
|
||||
<!-- output0_label -->
|
||||
<g id="node11" class="node"><title>output0_label</title>
|
||||
<text text-anchor="middle" x="253" y="-195.4" font-family="Sans" font-size="14.00">Output 0</text>
|
||||
<text text-anchor="middle" x="253" y="-178.4" font-family="Sans" font-size="14.00">(Implied)</text>
|
||||
</g>
|
||||
<!-- index -->
|
||||
<g id="node14" class="node"><title>index</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="286,-116 220,-116 220,-74 286,-74 286,-116"/>
|
||||
<text text-anchor="middle" x="253" y="-99.4" font-family="Sans" font-size="14.00">Output</text>
|
||||
<text text-anchor="middle" x="253" y="-82.4" font-family="Sans" font-size="14.00">Index</text>
|
||||
</g>
|
||||
<!-- output0_label->index -->
|
||||
<g id="edge12" class="edge"><title>output0_label->index</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" stroke-dasharray="5,2" d="M253,-169.694C253,-157.017 253,-140.697 253,-126.547"/>
|
||||
<polygon fill="black" stroke="black" points="256.5,-126.246 253,-116.246 249.5,-126.246 256.5,-126.246"/>
|
||||
</g>
|
||||
<!-- sequence -->
|
||||
<g id="node15" class="node"><title>sequence</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="372,-116 290,-116 290,-74 372,-74 372,-116"/>
|
||||
<text text-anchor="middle" x="331" y="-99.4" font-family="Sans" font-size="14.00">Sequence</text>
|
||||
<text text-anchor="middle" x="331" y="-82.4" font-family="Sans" font-size="14.00">Number</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.6 KiB |
|
@ -1,84 +1,54 @@
|
|||
digraph blockchain {
|
||||
digraph tx_overview {
|
||||
|
||||
size=6.25;
|
||||
splines = "false";
|
||||
rankdir=LR;
|
||||
ranksep=0.1;
|
||||
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" ];
|
||||
|
||||
//edge [ style = invis, minlen = 1 ];
|
||||
//fixedsize
|
||||
nodesep = 0.25;
|
||||
//concentrate = true;
|
||||
|
||||
tophelp0 [style = invis, label="", width=0, height=0 ];
|
||||
prevout [style = invis, label="", width=0, height=0 ];
|
||||
nextout [style = invis, label="", width=0, height=0 ];
|
||||
|
||||
subgraph cluster_tx {
|
||||
version;
|
||||
subgraph cluster_input {
|
||||
sequence;
|
||||
vout [label="output index"];
|
||||
txid;
|
||||
input [style = invis, label="", width=0, height=0 ];
|
||||
Locktime;
|
||||
Outputs;
|
||||
Inputs;
|
||||
Version;
|
||||
//tx_label1 [ shape = "none", label = "" ];
|
||||
tx0_label [ shape = "none", label = "The Main Parts Of\nTransaction 0" ];
|
||||
|
||||
subgraph cluster_scriptsig {
|
||||
label = "scriptSig"
|
||||
subgraph cluster_signature {
|
||||
hashtype;
|
||||
signature [style = invis, label="", width=0, height=0 ];
|
||||
label = "signature"
|
||||
}
|
||||
scriptsig [style = invis, label="", width=0, height=0 ];
|
||||
}
|
||||
label = "Input"
|
||||
}
|
||||
|
||||
left0 [style = invis ];
|
||||
left1 [style = invis ];
|
||||
left2 [style = invis ];
|
||||
middle1 [style = invis, label="", width=0, height=0 ];
|
||||
middle2 [style = invis, label="", width=0, height=0 ];
|
||||
middle3 [style = invis, label="", width=0, height=1.05 ];
|
||||
middle4 [style = invis, label="", width=0, height=0 ];
|
||||
middle5 [style = invis, label="", width=0, height=0 ];
|
||||
middle6 [style = invis, label="", width=0, height=0 ];
|
||||
middle7 [style = invis, label="", width=0, height=0 ];
|
||||
middle0 [style = invis, label="", width=0, height=0 ];
|
||||
|
||||
subgraph cluster_output {
|
||||
output [style = invis, label="", width=0, height=0 ];
|
||||
amount;
|
||||
script;
|
||||
label = "Output"
|
||||
}
|
||||
|
||||
locktime;
|
||||
label = "A Basic Transaction With One Input & One Output"
|
||||
labelloc = b
|
||||
graph [ penwidth=0 ];
|
||||
}
|
||||
|
||||
prevout -> input [ style = "dashed", label = "Each input\nspends\nsatoshis\nfrom a\nprevious\noutput\n(prevout)" ];
|
||||
output -> nextout [style="dashed", label = "Each output\nwaits as an\nUnspent\nTx Output\n(UTXO)\nuntil a\nlater input\nspends it"];
|
||||
tophelp0 -> version [ style = invis ];
|
||||
tx_label [ shape = "none", label = "Each input spends a previous output" ];
|
||||
tx_label -> Inputs [ style = "invis" ];
|
||||
tx_label -> Outputs [ style = "invis" ];
|
||||
|
||||
txid -> middle1 [ dir = none, label = "Select a previous tx with an\noutput to spend" ];
|
||||
vout -> middle2 [ dir = none, label = "Select an output from previous tx" ];
|
||||
sequence -> middle3 [ dir = none, label = "Allow override of locktime" ];
|
||||
scriptsig -> middle4 [ dir = none, label = "Satisfy prevout script conditions" ];
|
||||
signature -> middle5 [ dir = none, label = "Protect tx against modification\nby unauthorized parties" ];
|
||||
hashtype -> middle6 [ dir = none, label = "Authorize others to modify tx;\nselect what they can modify" ];
|
||||
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" ];
|
||||
|
||||
version -> middle7 [ dir = none, label = "Indicate what rules this tx follows" ];
|
||||
left2 -> locktime [ dir = none, label = "Prevent tx from being added to the\nblock chain before a particular time" ];
|
||||
|
||||
left0 -> amount [ dir = none, label = "Set amount to spend & pay in fees" ];
|
||||
left1 -> script [ dir = none, label = "Describe conditions necessary\nto spend this output" ];
|
||||
|
||||
|
||||
label = "(Metadata not shown: number of inputs/outputs, length in bytes of each script/scriptSig)\n \nThe Parts Of A Transaction"
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 5.5 KiB |
|
@ -3,173 +3,87 @@
|
|||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
|
||||
-->
|
||||
<!-- Title: blockchain Pages: 1 -->
|
||||
<svg width="450pt" height="444pt"
|
||||
viewBox="0.00 0.00 450.00 444.16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph1" class="graph" transform="scale(0.648415 0.648415) rotate(0) translate(4 681)">
|
||||
<title>blockchain</title>
|
||||
<polygon fill="white" stroke="white" points="-4,5 -4,-681 691,-681 691,5 -4,5"/>
|
||||
<text text-anchor="middle" x="343" y="-42.4" font-family="Sans" font-size="14.00">(Metadata not shown: number of inputs/outputs, length in bytes of each script/scriptSig)</text>
|
||||
<text text-anchor="middle" x="343" y="-25.4" font-family="Sans" font-size="14.00"> </text>
|
||||
<text text-anchor="middle" x="343" y="-8.4" font-family="Sans" font-size="14.00">The Parts Of A Transaction</text>
|
||||
<!-- Title: tx_overview Pages: 1 -->
|
||||
<svg width="450pt" height="171pt"
|
||||
viewBox="0.00 0.00 450.00 170.69" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph1" class="graph" transform="scale(0.775862 0.775862) rotate(0) translate(4 216)">
|
||||
<title>tx_overview</title>
|
||||
<polygon fill="white" stroke="white" points="-4,5 -4,-216 577,-216 577,5 -4,5"/>
|
||||
<g id="graph2" class="cluster"><title>cluster_tx</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="92,-67 92,-669 582,-669 582,-67 92,-67"/>
|
||||
<text text-anchor="middle" x="337" y="-652.4" font-family="Sans" font-size="14.00">A Basic Transaction With One Input & One Output</text>
|
||||
<polygon fill="none" stroke="black" stroke-width="0" points="38,-110 38,-168 476,-168 476,-110 38,-110"/>
|
||||
</g>
|
||||
<g id="graph3" class="cluster"><title>cluster_input</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="100,-247 100,-592 228,-592 228,-247 100,-247"/>
|
||||
<text text-anchor="middle" x="164" y="-575.4" font-family="Sans" font-size="14.00">Input</text>
|
||||
<g id="graph3" class="cluster"><title>cluster_tx1</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="0" points="38,-44 38,-102 476,-102 476,-44 38,-44"/>
|
||||
</g>
|
||||
<g id="graph4" class="cluster"><title>cluster_scriptsig</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="108,-263 108,-407 220,-407 220,-263 108,-263"/>
|
||||
<text text-anchor="middle" x="164" y="-390.4" font-family="Sans" font-size="14.00">scriptSig</text>
|
||||
<!-- Locktime -->
|
||||
<g id="node2" class="node"><title>Locktime</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="468,-157 390,-157 390,-121 468,-121 468,-157"/>
|
||||
<text text-anchor="middle" x="429" y="-134.9" font-family="Sans" font-size="14.00">Locktime</text>
|
||||
</g>
|
||||
<g id="graph5" class="cluster"><title>cluster_signature</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="116,-271 116,-366 212,-366 212,-271 116,-271"/>
|
||||
<text text-anchor="middle" x="164" y="-349.4" font-family="Sans" font-size="14.00">signature</text>
|
||||
<!-- Locktime1 -->
|
||||
<g id="node14" class="node"><title>Locktime1</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="468,-91 390,-91 390,-55 468,-55 468,-91"/>
|
||||
<text text-anchor="middle" x="429" y="-68.9" font-family="Sans" font-size="14.00">Locktime</text>
|
||||
</g>
|
||||
<g id="graph6" class="cluster"><title>cluster_output</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="488,-138 488,-287 574,-287 574,-138 488,-138"/>
|
||||
<text text-anchor="middle" x="531" y="-270.4" font-family="Sans" font-size="14.00">Output</text>
|
||||
<!-- Locktime->Locktime1 -->
|
||||
<!-- Outputs -->
|
||||
<g id="node3" class="node"><title>Outputs</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="389,-157 317,-157 317,-121 389,-121 389,-157"/>
|
||||
<text text-anchor="middle" x="353" y="-134.9" font-family="Sans" font-size="14.00">Outputs</text>
|
||||
</g>
|
||||
<!-- tophelp0 -->
|
||||
<!-- version -->
|
||||
<g id="node5" class="node"><title>version</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="197,-636 131,-636 131,-600 197,-600 197,-636"/>
|
||||
<text text-anchor="middle" x="164" y="-613.9" font-family="Sans" font-size="14.00">version</text>
|
||||
<!-- Inputs1 -->
|
||||
<g id="node12" class="node"><title>Inputs1</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="316,-91 256,-91 256,-55 316,-55 316,-91"/>
|
||||
<text text-anchor="middle" x="286" y="-68.9" font-family="Sans" font-size="14.00">Inputs</text>
|
||||
</g>
|
||||
<!-- tophelp0->version -->
|
||||
<!-- prevout -->
|
||||
<!-- input -->
|
||||
<!-- prevout->input -->
|
||||
<g id="edge7" class="edge"><title>prevout->input</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" stroke-dasharray="5,2" d="M1.72672,-255C11.5697,-255 118.636,-255 153.264,-255"/>
|
||||
<polygon fill="black" stroke="black" points="153.328,-258.5 163.328,-255 153.328,-251.5 153.328,-258.5"/>
|
||||
<text text-anchor="middle" x="47" y="-361.4" font-family="Sans" font-size="14.00">Each input</text>
|
||||
<text text-anchor="middle" x="47" y="-344.4" font-family="Sans" font-size="14.00">spends</text>
|
||||
<text text-anchor="middle" x="47" y="-327.4" font-family="Sans" font-size="14.00">satoshis</text>
|
||||
<text text-anchor="middle" x="47" y="-310.4" font-family="Sans" font-size="14.00">from a</text>
|
||||
<text text-anchor="middle" x="47" y="-293.4" font-family="Sans" font-size="14.00">previous</text>
|
||||
<text text-anchor="middle" x="47" y="-276.4" font-family="Sans" font-size="14.00">output</text>
|
||||
<text text-anchor="middle" x="47" y="-259.4" font-family="Sans" font-size="14.00">(prevout)</text>
|
||||
<!-- Outputs->Inputs1 -->
|
||||
<g id="edge16" class="edge"><title>Outputs->Inputs1</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M334.692,-120.965C327.602,-113.981 319.359,-105.861 311.694,-98.3109"/>
|
||||
<polygon fill="black" stroke="black" points="313.866,-95.5373 304.286,-91.013 308.954,-100.524 313.866,-95.5373"/>
|
||||
</g>
|
||||
<!-- nextout -->
|
||||
<!-- middle7 -->
|
||||
<!-- version->middle7 -->
|
||||
<g id="edge25" class="edge"><title>version->middle7</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M197.542,-618C285.309,-618 515.97,-618 530.301,-618"/>
|
||||
<text text-anchor="middle" x="358" y="-622.4" font-family="Sans" font-size="14.00">Indicate what rules this tx follows</text>
|
||||
<!-- Outputs1 -->
|
||||
<g id="node13" class="node"><title>Outputs1</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="389,-91 317,-91 317,-55 389,-55 389,-91"/>
|
||||
<text text-anchor="middle" x="353" y="-68.9" font-family="Sans" font-size="14.00">Outputs</text>
|
||||
</g>
|
||||
<!-- sequence -->
|
||||
<g id="node7" class="node"><title>sequence</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="204,-451 124,-451 124,-415 204,-415 204,-451"/>
|
||||
<text text-anchor="middle" x="164" y="-428.9" font-family="Sans" font-size="14.00">sequence</text>
|
||||
<!-- Outputs->Outputs1 -->
|
||||
<!-- Inputs -->
|
||||
<g id="node4" class="node"><title>Inputs</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="316,-157 256,-157 256,-121 316,-121 316,-157"/>
|
||||
<text text-anchor="middle" x="286" y="-134.9" font-family="Sans" font-size="14.00">Inputs</text>
|
||||
</g>
|
||||
<!-- middle3 -->
|
||||
<!-- sequence->middle3 -->
|
||||
<g id="edge17" class="edge"><title>sequence->middle3</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M204.678,-433C297.245,-433 516.709,-433 530.335,-433"/>
|
||||
<text text-anchor="middle" x="358" y="-437.4" font-family="Sans" font-size="14.00">Allow override of locktime</text>
|
||||
<!-- Inputs->Inputs1 -->
|
||||
<!-- Version -->
|
||||
<g id="node5" class="node"><title>Version</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="255,-157 187,-157 187,-121 255,-121 255,-157"/>
|
||||
<text text-anchor="middle" x="221" y="-134.9" font-family="Sans" font-size="14.00">Version</text>
|
||||
</g>
|
||||
<!-- vout -->
|
||||
<g id="node8" class="node"><title>vout</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="216,-505 112,-505 112,-469 216,-469 216,-505"/>
|
||||
<text text-anchor="middle" x="164" y="-482.9" font-family="Sans" font-size="14.00">output index</text>
|
||||
<!-- Version1 -->
|
||||
<g id="node11" class="node"><title>Version1</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="255,-91 187,-91 187,-55 255,-55 255,-91"/>
|
||||
<text text-anchor="middle" x="221" y="-68.9" font-family="Sans" font-size="14.00">Version</text>
|
||||
</g>
|
||||
<!-- middle2 -->
|
||||
<!-- vout->middle2 -->
|
||||
<g id="edge15" class="edge"><title>vout->middle2</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M216.582,-487.287C314.89,-487.822 517.8,-488.928 530.386,-488.997"/>
|
||||
<text text-anchor="middle" x="358" y="-493.4" font-family="Sans" font-size="14.00">Select an output from previous tx</text>
|
||||
<!-- Version->Version1 -->
|
||||
<!-- tx0_label -->
|
||||
<g id="node6" class="node"><title>tx0_label</title>
|
||||
<text text-anchor="middle" x="116" y="-143.4" font-family="Sans" font-size="14.00">The Main Parts Of</text>
|
||||
<text text-anchor="middle" x="116" y="-126.4" font-family="Sans" font-size="14.00">Transaction 0</text>
|
||||
</g>
|
||||
<!-- txid -->
|
||||
<g id="node9" class="node"><title>txid</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="191,-559 137,-559 137,-523 191,-523 191,-559"/>
|
||||
<text text-anchor="middle" x="164" y="-536.9" font-family="Sans" font-size="14.00">txid</text>
|
||||
<!-- tx_label -->
|
||||
<g id="node7" class="node"><title>tx_label</title>
|
||||
<text text-anchor="middle" x="319" y="-189.9" font-family="Sans" font-size="14.00">Each input spends a previous output</text>
|
||||
</g>
|
||||
<!-- middle1 -->
|
||||
<!-- txid->middle1 -->
|
||||
<g id="edge13" class="edge"><title>txid->middle1</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M191.285,-541C273.68,-541 515.249,-541 530.267,-541"/>
|
||||
<text text-anchor="middle" x="358" y="-562.4" font-family="Sans" font-size="14.00">Select a previous tx with an</text>
|
||||
<text text-anchor="middle" x="358" y="-545.4" font-family="Sans" font-size="14.00">output to spend</text>
|
||||
<!-- tx_label->Outputs -->
|
||||
<!-- tx_label->Inputs -->
|
||||
<!-- utxos -->
|
||||
<g id="node16" class="node"><title>utxos</title>
|
||||
<text text-anchor="middle" x="286" y="-13.9" font-family="Sans" font-size="14.00">Each output waits as an Unspent TX Output (UTXO) until a later input spends it</text>
|
||||
</g>
|
||||
<!-- hashtype -->
|
||||
<g id="node13" class="node"><title>hashtype</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="204,-315 124,-315 124,-279 204,-279 204,-315"/>
|
||||
<text text-anchor="middle" x="164" y="-292.9" font-family="Sans" font-size="14.00">hashtype</text>
|
||||
</g>
|
||||
<!-- middle6 -->
|
||||
<!-- hashtype->middle6 -->
|
||||
<g id="edge23" class="edge"><title>hashtype->middle6</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M204.325,-296.78C296.683,-296.277 516.674,-295.078 530.333,-295.004"/>
|
||||
<text text-anchor="middle" x="358" y="-316.4" font-family="Sans" font-size="14.00">Authorize others to modify tx;</text>
|
||||
<text text-anchor="middle" x="358" y="-299.4" font-family="Sans" font-size="14.00">select what they can modify</text>
|
||||
</g>
|
||||
<!-- signature -->
|
||||
<!-- middle5 -->
|
||||
<!-- signature->middle5 -->
|
||||
<g id="edge21" class="edge"><title>signature->middle5</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M164.595,-333C180.617,-333 514.777,-333 530.432,-333"/>
|
||||
<text text-anchor="middle" x="358" y="-354.4" font-family="Sans" font-size="14.00">Protect tx against modification</text>
|
||||
<text text-anchor="middle" x="358" y="-337.4" font-family="Sans" font-size="14.00">by unauthorized parties</text>
|
||||
</g>
|
||||
<!-- scriptsig -->
|
||||
<!-- middle4 -->
|
||||
<!-- scriptsig->middle4 -->
|
||||
<g id="edge19" class="edge"><title>scriptsig->middle4</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M164.595,-374.005C180.617,-374.136 514.777,-376.867 530.432,-376.995"/>
|
||||
<text text-anchor="middle" x="358" y="-381.4" font-family="Sans" font-size="14.00">Satisfy prevout script conditions</text>
|
||||
</g>
|
||||
<!-- left0 -->
|
||||
<!-- amount -->
|
||||
<g id="node29" class="node"><title>amount</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="566,-236 496,-236 496,-200 566,-200 566,-236"/>
|
||||
<text text-anchor="middle" x="531" y="-213.9" font-family="Sans" font-size="14.00">amount</text>
|
||||
</g>
|
||||
<!-- left0->amount -->
|
||||
<g id="edge29" class="edge"><title>left0->amount</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M191.285,-218.926C256.819,-218.747 423.047,-218.294 495.891,-218.096"/>
|
||||
<text text-anchor="middle" x="358" y="-223.4" font-family="Sans" font-size="14.00">Set amount to spend & pay in fees</text>
|
||||
</g>
|
||||
<!-- left1 -->
|
||||
<!-- script -->
|
||||
<g id="node30" class="node"><title>script</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="558,-182 504,-182 504,-146 558,-146 558,-182"/>
|
||||
<text text-anchor="middle" x="531" y="-159.9" font-family="Sans" font-size="14.00">script</text>
|
||||
</g>
|
||||
<!-- left1->script -->
|
||||
<g id="edge31" class="edge"><title>left1->script</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M191.285,-164.926C259.228,-164.741 435.402,-164.26 503.536,-164.075"/>
|
||||
<text text-anchor="middle" x="358" y="-186.4" font-family="Sans" font-size="14.00">Describe conditions necessary</text>
|
||||
<text text-anchor="middle" x="358" y="-169.4" font-family="Sans" font-size="14.00">to spend this output</text>
|
||||
</g>
|
||||
<!-- left2 -->
|
||||
<!-- locktime -->
|
||||
<g id="node31" class="node"><title>locktime</title>
|
||||
<polygon fill="none" stroke="black" stroke-width="1.75" points="568,-125 494,-125 494,-89 568,-89 568,-125"/>
|
||||
<text text-anchor="middle" x="531" y="-102.9" font-family="Sans" font-size="14.00">locktime</text>
|
||||
</g>
|
||||
<!-- left2->locktime -->
|
||||
<g id="edge27" class="edge"><title>left2->locktime</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" d="M191.285,-110.703C256.238,-109.995 420.105,-108.209 493.931,-107.404"/>
|
||||
<text text-anchor="middle" x="358" y="-132.4" font-family="Sans" font-size="14.00">Prevent tx from being added to the</text>
|
||||
<text text-anchor="middle" x="358" y="-115.4" font-family="Sans" font-size="14.00">block chain before a particular time</text>
|
||||
</g>
|
||||
<!-- middle0 -->
|
||||
<!-- output -->
|
||||
<!-- output->nextout -->
|
||||
<g id="edge9" class="edge"><title>output->nextout</title>
|
||||
<path fill="none" stroke="black" stroke-width="1.75" stroke-dasharray="5,2" d="M531.687,-254C540.903,-254 640.334,-254 673.96,-254"/>
|
||||
<polygon fill="black" stroke="black" points="674.365,-257.5 684.365,-254 674.365,-250.5 674.365,-257.5"/>
|
||||
<text text-anchor="middle" x="633" y="-377.4" font-family="Sans" font-size="14.00">Each output</text>
|
||||
<text text-anchor="middle" x="633" y="-360.4" font-family="Sans" font-size="14.00">waits as an</text>
|
||||
<text text-anchor="middle" x="633" y="-343.4" font-family="Sans" font-size="14.00">Unspent</text>
|
||||
<text text-anchor="middle" x="633" y="-326.4" font-family="Sans" font-size="14.00">Tx Output</text>
|
||||
<text text-anchor="middle" x="633" y="-309.4" font-family="Sans" font-size="14.00">(UTXO)</text>
|
||||
<text text-anchor="middle" x="633" y="-292.4" font-family="Sans" font-size="14.00">until a</text>
|
||||
<text text-anchor="middle" x="633" y="-275.4" font-family="Sans" font-size="14.00">later input</text>
|
||||
<text text-anchor="middle" x="633" y="-258.4" font-family="Sans" font-size="14.00">spends it</text>
|
||||
<!-- Inputs1->utxos -->
|
||||
<!-- tx1_label -->
|
||||
<g id="node15" class="node"><title>tx1_label</title>
|
||||
<text text-anchor="middle" x="116" y="-77.4" font-family="Sans" font-size="14.00">The Main Parts Of</text>
|
||||
<text text-anchor="middle" x="116" y="-60.4" font-family="Sans" font-size="14.00">Transaction 1</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 4.7 KiB |
Loading…
Add table
Add a link
Reference in a new issue