summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--replication.pngbin0 -> 46376 bytes
-rw-r--r--replication.svg427
-rw-r--r--taler-auditor-manual.rst5
3 files changed, 431 insertions, 1 deletions
diff --git a/replication.png b/replication.png
new file mode 100644
index 00000000..855237fc
--- /dev/null
+++ b/replication.png
Binary files differ
diff --git a/replication.svg b/replication.svg
new file mode 100644
index 00000000..4a9eff34
--- /dev/null
+++ b/replication.svg
@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ sodipodi:docname="replication.svg"
+ inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
+ width="297.0mm"
+ height="210.0mm"
+ viewBox="0 0 297.0 210.0"
+ version="1.1"
+ id="SVGRoot">
+ <defs
+ id="defs1461">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker2714"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2712" />
+ </marker>
+ <marker
+ inkscape:collect="always"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker2662"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path2660"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:collect="always"
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker2616"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2614" />
+ </marker>
+ <marker
+ inkscape:collect="always"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker2576"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path2574"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:collect="always"
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker2542"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2540" />
+ </marker>
+ <marker
+ inkscape:collect="always"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker2514"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path2512"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:collect="always"
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2237" />
+ </marker>
+ <rect
+ id="rect2196"
+ height="3.9007863"
+ width="4.5762249"
+ y="120.19322"
+ x="264.57466" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-maximized="1"
+ inkscape:window-y="0"
+ inkscape:window-x="3840"
+ inkscape:window-height="2086"
+ inkscape:window-width="3840"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="mm"
+ inkscape:cy="422.6026"
+ inkscape:cx="615.0082"
+ inkscape:zoom="1.4"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata1464">
+ <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>
+ <g
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <g
+ transform="translate(-11.221353,20.667147)"
+ id="g2110">
+ <g
+ id="g890"
+ transform="matrix(0.07147522,0,0,0.07147522,41.870798,24.492858)">
+ <path
+ d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z"
+ id="path879" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="36.053169"
+ y="69.701385"
+ id="text2097"><tspan
+ sodipodi:role="line"
+ id="tspan2095"
+ x="36.053169"
+ y="69.701385"
+ style="stroke-width:0.264583">Exchange production DB</tspan><tspan
+ sodipodi:role="line"
+ x="36.053169"
+ y="74.111099"
+ style="stroke-width:0.264583"
+ id="tspan2099" /></text>
+ </g>
+ <g
+ transform="translate(11.47121,2.2482939)"
+ id="g2116">
+ <g
+ transform="matrix(0.07147522,0,0,0.07147522,19.178235,121.17556)"
+ id="g890-2">
+ <path
+ id="path879-1"
+ d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="15.052144"
+ y="164.58421"
+ id="text2103"><tspan
+ sodipodi:role="line"
+ id="tspan2101"
+ x="15.052144"
+ y="164.58421"
+ style="stroke-width:0.264583">Exchange hotspare DB</tspan></text>
+ </g>
+ <g
+ transform="translate(-18.449501,17.09634)"
+ id="g2134">
+ <g
+ transform="matrix(0.07147522,0,0,0.07147522,180.02977,23.090737)"
+ id="g890-0">
+ <path
+ id="path879-5"
+ d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="178.26529"
+ y="66.899231"
+ id="text2120"><tspan
+ sodipodi:role="line"
+ id="tspan2118"
+ x="178.26529"
+ y="66.899231"
+ style="stroke-width:0.264583">Exchange ingres DB</tspan></text>
+ </g>
+ <g
+ transform="translate(-16.648393,27.04463)"
+ id="g2140">
+ <g
+ transform="matrix(0.07147522,0,0,0.07147522,177.66977,95.095201)"
+ id="g890-1">
+ <path
+ id="path879-10"
+ d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="175.99486"
+ y="140.82193"
+ id="text2124"><tspan
+ sodipodi:role="line"
+ id="tspan2122"
+ x="175.99486"
+ y="140.82193"
+ style="stroke-width:0.264583">Exchange &quot;safe&quot; DB</tspan></text>
+ </g>
+ <g
+ transform="translate(-18.645502,-113.69651)"
+ id="g2146">
+ <g
+ transform="matrix(0.07147522,0,0,0.07147522,250.62455,153.8705)"
+ id="g890-8">
+ <path
+ id="path879-50"
+ d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="249.85829"
+ y="197.93983"
+ id="text2128"><tspan
+ sodipodi:role="line"
+ id="tspan2126"
+ x="249.85829"
+ y="197.93983"
+ style="stroke-width:0.264583">Auditor internal DB</tspan></text>
+ </g>
+ <text
+ id="text2150"
+ y="105.1814"
+ x="49.245609"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.264583"
+ y="105.1814"
+ x="49.245609"
+ id="tspan2148"
+ sodipodi:role="line">Postgres replication</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="102.65125"
+ y="62.550148"
+ id="text2150-8"><tspan
+ sodipodi:role="line"
+ id="tspan2148-4"
+ x="102.65125"
+ y="62.550148"
+ style="stroke-width:0.264583">Postgres replication</tspan></text>
+ <text
+ id="text2188"
+ y="103.76974"
+ x="176.0363"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.264583"
+ y="103.76974"
+ x="176.0363"
+ id="tspan2186"
+ sodipodi:role="line">taler-auditor-sync</tspan></text>
+ <text
+ id="text2192"
+ y="24.976534"
+ x="230.1824"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.264583"
+ y="24.976534"
+ x="230.1824"
+ id="tspan2190"
+ sodipodi:role="line">taler-auditor-httpd</tspan></text>
+ <text
+ style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect2196);"
+ id="text2194"
+ xml:space="preserve" />
+ <text
+ id="text2202"
+ y="144.25079"
+ x="237.84789"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.264583"
+ y="144.25079"
+ x="237.84789"
+ id="tspan2200"
+ sodipodi:role="line">taler-auditor</tspan></text>
+ <rect
+ y="17.823223"
+ x="5.5189505"
+ height="179.76277"
+ width="85.439964"
+ id="rect2204"
+ style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="16.654621"
+ x="145.51649"
+ height="179.36324"
+ width="136.18742"
+ id="rect2206"
+ style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text2210"
+ y="27.13241"
+ x="26.070297"
+ style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.264583"
+ y="27.13241"
+ x="26.070297"
+ id="tspan2208"
+ sodipodi:role="line">taler-exchange-httpd</tspan></text>
+ <circle
+ r="0.025015881"
+ cy="30.470467"
+ cx="44.608482"
+ style="fill:#000000;stroke:#020000;stroke-width:0.264583"
+ id="path2212" />
+ <path
+ id="path2214"
+ d="M 43.574858,30.273831 V 43.21797"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" />
+ <path
+ id="path2216"
+ d="M 46.56148,93.636877 V 120.51253"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2514)" />
+ <path
+ id="path2218"
+ d="M 65.551922,66.02918 H 157.89364"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2714)" />
+ <path
+ id="path2220"
+ d="M 175.61312,86.105081 V 118.69094"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2662)" />
+ <path
+ id="path2222"
+ d="M 234.62494,143.2384 H 197.9307"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2542)" />
+ <path
+ id="path2224"
+ d="M 248.98222,140.645 V 85.978695"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2576)" />
+ <path
+ id="path2226"
+ d="m 248.23207,28.995391 v 8.785561"
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2616)" />
+ <ellipse
+ ry="5.0640941"
+ rx="26.22459"
+ cy="25.763792"
+ cx="45.386578"
+ id="path2228"
+ style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <ellipse
+ ry="4.3381324"
+ rx="22.319004"
+ cy="24.075922"
+ cx="247.19611"
+ id="path2230"
+ style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <ellipse
+ ry="4.9346147"
+ rx="13.054943"
+ cy="143.48093"
+ cx="248.29224"
+ id="path2232"
+ style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="31.59581"
+ x="149.84781"
+ height="59.034092"
+ width="51.529339"
+ id="rect2770"
+ style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/taler-auditor-manual.rst b/taler-auditor-manual.rst
index adfb57a7..66e3d05d 100644
--- a/taler-auditor-manual.rst
+++ b/taler-auditor-manual.rst
@@ -438,7 +438,10 @@ Database
--------
The next key step for the auditor is to configure replication of the
-*exchange*'s database in-house. This should be performed in two steps.
+*exchange*'s database in-house. This should be performed in two steps
+as illustrated in the following figure:
+
+.. image:: replication.png
First, the exchange should use standard Postgres replication features to
enable the auditor to obtain a full copy of the exchange's database.