Governance

- Add governance message SVG image
 - Typo fixes
This commit is contained in:
thephez 2017-10-16 19:39:42 -04:00
parent c062ed2349
commit 1dfe7dd8ea
4 changed files with 551 additions and 5 deletions

View file

@ -599,14 +599,14 @@ Earlier versions of Bitcoin Core allowed developers and trusted community member
#### Synchronization
Dash Core synchronizes the governance system via the Masternode network as the
last stage of the Masternode sync process (following they sync of sporks, the
last stage of the Masternode sync process (following the sync of sporks, the
Masternode list, and Masternode payments).
The `govsync` message initiates a sync of the governance system. Masternodes
respond to the `govsync` message with several items:
* First, the Masternode sends one `ssc` message (Sync Status Count) for `govobj`
objects and one for `govobjvote` objects. These messages indicates how many
objects and one for `govobjvote` objects. These messages indicate how many
inventory items will be sent.
* Second, the Masternode sends `inv` messages for the `govobj` and `govobjvote`
@ -618,14 +618,14 @@ Once the syncing node receives the counts and inventories, it may request any
*Governance Sync Data Flow*
| **Syncing Node Message** | **Direction** | **Masternode Response** | **Description** |
| `govsync` | → | | Syncing node initiates governance sync
| `govsync` message | → | | Syncing node initiates governance sync
| | ← | `ssc` message (govobj) | Number of governance objects
| | ← | `ssc` message (govobjvote)| Number of governance object votes
| | ← | `inv` message (govobj) | Governance object inventories
| | ← | `inv` message (govobjvote)| Governance object vote inventories
| `getdata` (govobj) | → | | (Optional) Syncing node requests govobj
| `getdata` message (govobj) | → | | (Optional) Syncing node requests govobj
| | ← | `govobj` message | (If requested) Governance object
| `getdata` (govobjvote) | → | | (Optional) Syncing node requests govobjvote
| `getdata` message (govobjvote) | → | | (Optional) Syncing node requests govobjvote
| | ← | `govobjvote` message | (If requested) Governance object vote

View file

@ -2218,6 +2218,8 @@ Not Implemented
The following network messages enable the Governance features built in to Dash.
![Overview Of P2P Protocol Governance Request And Reply Messages](/img/dev/en-p2p-governance-messages.svg)
{% endautocrossref %}
#### govobj

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -0,0 +1,544 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
-->
<!-- Title: _anonymous_0 Pages: 1 -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="450pt"
height="190pt"
viewBox="0 0 450 189.66202"
id="svg3743"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="en-p2p-governance-messages.svg"
inkscape:export-filename="/home/phez/code/dash.org/img/dev/en-p2p-governance-messages.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<metadata
id="metadata3892">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3890">
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4438"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6,-0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4432"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend-0"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4438-4"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6,-0.6)" />
</marker>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1023"
id="namedview3888"
showgrid="false"
inkscape:zoom="1.5431111"
inkscape:cx="264.46778"
inkscape:cy="126.1599"
inkscape:window-x="0"
inkscape:window-y="31"
inkscape:window-maximized="1"
inkscape:current-layer="g3426" />
<g
transform="matrix(0.755034,0,0,0.755034,1.4648364,-23.35123)"
class="graph"
id="g3426">
<title
id="title3428">_anonymous_0</title>
<text
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3430"
font-size="14.00"
y="264.96518"
x="294"
sodipodi:linespacing="125%">
<tspan
sodipodi:role="line"
id="tspan4566"
x="294"
y="264.96518">Overview Of P2P Protocol Governance Request And Reply Messages</tspan>
</text>
<!-- getblocks -->
<g
class="node"
id="g3432"
transform="translate(-2.1191099,289.12697)">
<title
id="title3434">getblocks</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3436"
points="116,-141 116,-141 36,-141 36,-105 116,-105 " />
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3438"
font-size="14.00"
y="-118.9"
x="76">
<tspan
y="-118.9"
x="76"
id="tspan3440"
sodipodi:role="line">govsync</tspan>
</text>
</g>
<!-- inv -->
<!-- getblocks&#45;&gt;inv -->
<!-- getdata -->
<g
id="g6379"
transform="translate(0,326.34294)">
<polygon
transform="translate(14.656042,-57.215969)"
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3462"
points="321,-85 391,-85 391,-121 391,-121 321,-121 " />
<text
style="font-size:14px;font-family:Sans;text-anchor:middle"
id="text3464"
font-size="14.00"
y="-156.11597"
x="370.65604">getdata</text>
</g>
<g
class="edge"
id="g3512"
transform="matrix(0.85687229,0,0,1.0013802,71.106131,269.27096)">
<title
id="title3514">getdata-&gt;block</title>
<path
style="fill:none;stroke:#000000;stroke-width:1.75"
inkscape:connector-curvature="0"
id="path3516"
d="m 391.218,-107.193 c 31.463,-3.745 76.899,-9.154 105.626,-12.574" />
</g>
<!-- inv&#45;&gt;getdata -->
<!-- mempool -->
<!-- mempool&#45;&gt;inv -->
<!-- tx -->
<!-- getdata&#45;&gt;tx -->
<!-- block -->
<g
class="node"
id="g3502"
transform="translate(0.31444035,269.12697)">
<title
id="title3504">block</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3506"
points="551,-105 551,-141 551,-141 497,-141 497,-105 " />
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3508"
font-size="14.00"
y="-118.9"
x="524">
<tspan
sodipodi:role="line"
id="tspan4401"
x="524"
y="-118.9">govobj</tspan>
</text>
</g>
<!-- getdata&#45;&gt;block -->
<!-- merkleblock -->
<g
class="node"
id="g3518"
transform="translate(0.31444035,269.12697)">
<title
id="title3520">merkleblock</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3522"
points="573,-65 573,-101 573,-101 475,-101 475,-65 " />
<text
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3524"
font-size="14.00"
y="-78.900002"
x="524"
sodipodi:linespacing="125%">
<tspan
sodipodi:role="line"
id="tspan4399"
x="524"
y="-78.900002">govobjvote</tspan>
</text>
</g>
<!-- getdata&#45;&gt;merkleblock -->
<g
class="edge"
id="g3526"
transform="matrix(0.8155848,0,0,1.0025719,87.261037,269.3828)">
<title
id="title3528">getdata-&gt;merkleblock</title>
<path
style="fill:none;stroke:#000000;stroke-width:1.75"
inkscape:connector-curvature="0"
id="path3530"
d="m 391.218,-98.8073 c 24.151,2.875 56.534,6.7301 83.274,9.9134" />
</g>
<!-- notfound -->
<!-- getdata&#45;&gt;notfound -->
<!-- getheaders -->
<!-- headers -->
<g
class="node"
id="g3554">
<title
id="title3556">headers</title>
</g>
<!-- getheaders&#45;&gt;headers -->
<!-- label1 -->
<text
sodipodi:linespacing="125%"
x="73.792023"
y="58.524979"
font-size="14.00"
id="text3572"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">
<tspan
sodipodi:role="line"
id="tspan4592"
x="73.792023"
y="58.524979">Request For</tspan>
<tspan
sodipodi:role="line"
id="tspan4594"
x="73.792023"
y="76.024193">Governance Sync</tspan>
</text>
<!-- label2 -->
<text
x="227.32208"
y="58.740303"
font-size="14.00"
id="text3580"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
sodipodi:linespacing="125%">
<tspan
sodipodi:role="line"
id="tspan4529"
x="227.32208"
y="58.740303">Reply With</tspan>
<tspan
sodipodi:role="line"
id="tspan4531"
x="227.32208"
y="76.239517">Count / Inventory</tspan>
</text>
<!-- label1&#45;&gt;label2 -->
<!-- label3 -->
<g
class="node"
id="g3584"
transform="translate(14.833769,300.42496)">
<title
id="title3586">label3</title>
<text
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3588"
font-size="14.00"
y="-241.89999"
x="356"
sodipodi:linespacing="125%">
<tspan
sodipodi:role="line"
id="tspan4525"
x="356"
y="-241.89999">Request For</tspan>
<tspan
sodipodi:role="line"
id="tspan4527"
x="356"
y="-224.40079">Specific Data</tspan>
</text>
</g>
<!-- label2&#45;&gt;label3 -->
<!-- label4 -->
<g
class="node"
id="g3590"
transform="translate(0,319.24676)">
<title
id="title3592">label4</title>
<text
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3594"
font-size="14.00"
y="-260.50647"
x="524.2666"
sodipodi:linespacing="125%">
<tspan
sodipodi:role="line"
id="tspan4596"
x="524.2666"
y="-260.50647">Reply With</tspan>
<tspan
sodipodi:role="line"
id="tspan4598"
x="524.2666"
y="-243.00726">Requested Data</tspan>
</text>
</g>
<!-- label3&#45;&gt;label4 -->
<g
transform="matrix(0.4204087,0,0,1,16.188316,269.12697)"
id="edge6"
class="edge">
<title
id="title5679">inv-&gt;getdata</title>
<path
style="fill:none;stroke:#000000;stroke-width:1.75"
inkscape:connector-curvature="0"
d="m 233.164,-103 c 24.568,0 60.889,0 87.667,0"
id="path5681" />
</g>
<g
transform="matrix(0.4204087,0,0,1,199.52001,269.57461)"
id="edge6-3"
class="edge">
<title
id="title5679-2">inv-&gt;getdata</title>
<path
style="fill:none;stroke:#000000;stroke-width:1.75"
inkscape:connector-curvature="0"
d="m 233.164,-103 c 24.568,0 60.889,0 87.667,0"
id="path5681-6" />
</g>
<g
id="g6421"
transform="translate(0,296.35807)">
<polygon
transform="matrix(2.0760375,0,0,3.8635335,-515.44967,267.71285)"
style="fill:none;stroke:#000000;stroke-width:0.61804998;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="polygon3462-3"
points="391,-121 321,-121 321,-85 391,-85 391,-121 " />
<g
transform="translate(16.952879,-42.382199)"
id="g4451">
<title
id="title4466">govsync_response</title>
<g
class="node"
id="g3442"
transform="translate(-29.371523,-25.405515)">
<title
id="title3444">ssc</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3446"
points="179,-121 179,-85 233,-85 233,-121 233,-121 " />
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3448"
font-size="14.00"
y="-98.900002"
x="206">
<tspan
y="-98.900002"
x="206"
id="tspan4604"
sodipodi:role="line">ssc</tspan>
</text>
</g>
<g
transform="translate(34.24084,-25.405515)"
class="node"
id="g3442-3">
<title
id="title3444-6">inv</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3446-7"
points="179,-85 233,-85 233,-121 233,-121 179,-121 " />
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3448-5"
font-size="14.00"
y="-98.900002"
x="206">
<tspan
sodipodi:role="line"
id="tspan4345"
x="206"
y="-98.900002">inv</tspan>
</text>
</g>
<g
id="edge16"
class="edge"
transform="matrix(0.02432095,0,0,1,200.39165,74.594485)">
<title
id="title3858">getheaders-&gt;headers</title>
<path
d="m 123.097,-203 c 90.086,0 284.977,0 365.247,0"
id="path3860"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:1.75" />
</g>
</g>
<g
id="g4451-9"
transform="translate(16.952879,23.769138)">
<title
id="title4466-6">govsync_response</title>
<g
class="node"
id="g3442-2"
transform="translate(-29.371523,-25.405515)">
<title
id="title3444-5">ssc</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3446-4"
points="233,-121 233,-121 179,-121 179,-85 233,-85 " />
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3448-4"
font-size="14.00"
y="-98.900002"
x="206">
<tspan
y="-98.900002"
x="206"
id="tspan3450-9"
sodipodi:role="line">ssc</tspan>
</text>
</g>
<g
transform="translate(34.24084,-25.405515)"
class="node"
id="g3442-3-9">
<title
id="title3444-6-3">inv</title>
<polygon
style="fill:none;stroke:#000000;stroke-width:1.75"
id="polygon3446-7-6"
points="233,-121 179,-121 179,-85 233,-85 233,-121 " />
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.99936962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3448-5-0"
font-size="14.00"
y="-98.900002"
x="206">
<tspan
sodipodi:role="line"
id="tspan4345-5"
x="206"
y="-98.900002">inv</tspan>
</text>
</g>
<g
id="edge16-0"
class="edge"
transform="matrix(0.02432095,0,0,1,200.39165,74.594485)">
<title
id="title3858-2">getheaders-&gt;headers</title>
<path
d="m 123.097,-203 c 90.086,0 284.977,0 365.247,0"
id="path3860-9"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:1.75" />
</g>
</g>
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.56888008px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3448-8"
font-size="14.00"
y="-71.320236"
x="225.37331">
<tspan
id="tspan4626"
sodipodi:role="line"
x="225.37331"
y="-71.320236">govobjvote</tspan>
</text>
<text
sodipodi:linespacing="125%"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.56888008px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
id="text3448-8-9"
font-size="14.00"
y="-137.76624"
x="225.66498">
<tspan
y="-137.76624"
x="225.66498"
id="tspan6419"
sodipodi:role="line">govobj</tspan>
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB