mirror of
https://github.com/seigler/dash-docs
synced 2025-07-28 10:16:15 +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
|
@ -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