{"id":30047,"date":"2019-10-31T21:33:25","date_gmt":"2019-10-31T18:33:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\/"},"modified":"2019-10-31T21:33:25","modified_gmt":"2019-10-31T18:33:25","slug":"razbiraemsya-v-protokole-konsensusa-stellar","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","title":{"rendered":"Wir kl\u00e4ren das Konsensprotokoll von Stellar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/09b61160286ae40c21269e1590fc2b92.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Stellar-Konsensprotokoll wurde erstmals in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stellar.org\/papers\/stellar-consensus-protocol.pdf\">in einem wissenschaftlichen Artikel<\/a><\/noindex> 2015 von David Mazier beschrieben. Es handelt sich um ein \u201ef\u00f6deratives System des byzantinischen Konsenses\u201c, das dezentralen Berechnungsnetzwerken ohne F\u00fchrer erm\u00f6glicht, effizient einen Konsens \u00fcber eine Entscheidung zu erreichen. Das Zahlungssystem Stellar nutzt das Stellar Consensus Protocol (SCP), um eine konsistente Historie von Transaktionen zu f\u00fchren, die von allen Teilnehmern eingesehen werden kann.<\/p>\n<p>Es wird angenommen, dass Konsensprotokolle schwer zu verstehen sind. SCP ist einfacher als die meisten von ihnen, teilt jedoch dennoch diesen Ruf \u2013 teilweise aufgrund der falschen Vorstellung, dass das \u201ef\u00f6derative Abstimmen\u201c, dem die erste H\u00e4lfte des wissenschaftlichen Artikels gewidmet ist, SCP ist. Aber das ist es nicht! Es ist lediglich ein wichtiger Baustein, der in der zweiten H\u00e4lfte des Artikels zur Schaffung verwendet wird <i>des tats\u00e4chlichen<\/i> Stellar-Konsensprotokolls.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIn diesem Artikel werden wir kurz erkl\u00e4ren, was ein \u201eZustimmungssystem\u201c ist, was sie \u201ebyzantinisch\u201c machen kann und warum es ratsam ist, ein byzantinisches System \u201ef\u00f6derativ\u201c zu gestalten. Danach werden wir das f\u00f6derative Abstimmungsverfahren beschreiben, das im SCP-Artikel erl\u00e4utert wird, und schlie\u00dflich das Protokoll SCP selbst erkl\u00e4ren.<\/p>\n<h1>Zustimmungssysteme<\/h1>\n<p>\nEin Zustimmungssystem erm\u00f6glicht es einer Gruppe von Teilnehmern, einen Konsens \u00fcber ein bestimmtes Thema zu erzielen, zum Beispiel, was man zum Mittagessen bestellen soll.<\/p>\n<p>In unserem Unternehmen Interstellar haben wir unser eigenes System f\u00fcr das Mittagsessen eingef\u00fchrt: Wir bestellen das, was unser Betriebsleiter John sagt. Es ist ein einfaches und effektives Zustimmungssystem. Wir alle vertrauen John und glauben, dass er jeden Tag etwas Interessantes und Nahrhaftes finden wird.<\/p>\n<p>Aber was, wenn John unser Vertrauen missbraucht? Er k\u00f6nnte einseitig entscheiden, dass wir alle Veganer werden sollten. In ein oder zwei Wochen w\u00fcrden wir ihn wahrscheinlich st\u00fcrzen und die Macht an Elizabeth \u00fcbertragen. Aber was, wenn sie Avocados mit Sardellen liebt und denkt, dass alle so werden sollten? Macht verdirbt. Daher ist es besser, eine demokratischere Methode zu finden: eine M\u00f6glichkeit, sicherzustellen, dass unterschiedliche Vorlieben ber\u00fccksichtigt werden und gleichzeitig ein zeitgerechtes und eindeutiges Ergebnis erzielt wird, damit es nicht so endet, dass niemand das Mittagessen bestellt oder f\u00fcnf Personen unterschiedliche Bestellungen aufgeben oder das Gespr\u00e4ch bis zum Abend dauert.<\/p>\n<p>Auf den ersten Blick scheint die L\u00f6sung einfach zu sein: eine Abstimmung durchzuf\u00fchren! Doch dieser Eindruck ist tr\u00fcgerisch. Wer wird die Wahlzettel sammeln und die Ergebnisse bekanntgeben? Und warum sollten die anderen dem Glauben schenken, was er sagt? Vielleicht k\u00f6nnen wir zun\u00e4chst <i>f\u00fcr einen F\u00fchrer stimmen, dem wir vertrauen, das Abstimmungsverfahren zu leiten \u2013 aber wer wird dieses<\/i> Votum leiten? Was ist, wenn wir uns nicht auf einen F\u00fchrer einigen k\u00f6nnen? Oder wenn wir uns einigen, dieser F\u00fchrer aber in einem Meeting feststeckt oder krank wird? <i>zuerst<\/i> \u00c4hnliche Probleme treten in verteilten Computersystemen auf. Alle Teilnehmer oder Knoten m\u00fcssen sich auf eine Entscheidung einigen, zum Beispiel, wessen Reihe es ist, eine gemeinsame Datei zu aktualisieren oder eine Aufgabe aus der Warteschlange abzuholen. In einem Kryptow\u00e4hrungsnetzwerk stehen die Knoten wiederholt vor der Aufgabe, aus mehreren m\u00f6glichen Versionen, die manchmal widerspr\u00fcchlich sind, zu w\u00e4hlen, wie die vollst\u00e4ndige Geschichte aussieht. Dieses Netzwerkabkommen garantiert dem Empf\u00e4nger, dass die M\u00fcnze (a) g\u00fcltig (nicht gef\u00e4lscht) und (b) noch nicht an anderer Stelle ausgegeben wurde. Es stellt auch sicher, dass er die M\u00fcnzen in Zukunft ausgeben kann, da der neue Empf\u00e4nger die gleichen Garantien aus den gleichen Gr\u00fcnden hat.<\/p>\n<p>Jedes Konsenssystem in einem verteilten Computernetzwerk muss ausfallsicher sein: Es muss konsistente Ergebnisse liefern, trotz Fehler wie langsamen Kommunikationsleitungen, nicht reagierenden Knoten und falscher Reihenfolge von Nachrichten.<\/p>\n<p>Das byzantinische <i>Konsenssystem ist zus\u00e4tzlich gegen \"byzantinische\" Fehler resistent: Knoten, die falsche Informationen bereitstellen, sei es aufgrund von Fehlern oder in einem absichtlichen Versuch, das System zu untergraben oder sich einen Vorteil zu verschaffen. \"Byzantinische\" Ausfallsicherheit \u2013 die F\u00e4higkeit, einer Gruppenentscheidung zu vertrauen, selbst wenn einige Gruppenmitglieder l\u00fcgen oder anderweitig die Entscheidungsregeln nicht befolgen \u2013 erh\u00e4lt ihren Namen von<\/i> der Geschichte der Gener\u00e4le des Byzantinischen Reiches <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B2%D0%B8%D0%B7%D0%B0%D0%BD%D1%82%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2\">, die versuchten, einen Angriff zu koordinieren.<\/a><\/noindex>Eine gute Beschreibung <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/coinmonks\/a-note-from-anthony-if-you-havent-already-please-read-the-article-gaining-clarity-on-key-787989107969\">findet sich bei Anthony Stevens.<\/a><\/noindex> bei Anthony Stevens.<\/p>\n<p>Betrachten wir die Besitzerin der Kryptow\u00e4hrung, Alice, die zwischen dem Kauf von leckerem Eis bei Bob und der Begleichung einer Schuld bei Carol w\u00e4hlen muss. Vielleicht m\u00f6chte Alice beiden gleichzeitig bezahlen und betr\u00fcgerisch dieselbe M\u00fcnze ausgeben. Dazu muss sie Bobs Computer \u00fcberzeugen, dass die M\u00fcnze niemals Carol ausgezahlt wurde, und Carol's Computer \u00fcberzeugen, dass die M\u00fcnze niemals Bob ausgezahlt wurde. Ein byzantinisches Einigungssystem macht dies praktisch unm\u00f6glich, indem es eine Form der Mehrheitsregel verwendet, die als <i>Quorum<\/i>bezeichnet wird. Ein Knoten in einem solchen Netzwerk weigert sich, zu einer bestimmten Version der Geschichte \u00fcberzugehen, solange er nicht sieht, dass eine ausreichende Anzahl gleichgestellter Knoten \u2013 das Quorum \u2013 mit diesem \u00dcbergang einverstanden ist. Sobald dies geschieht, bilden sie einen ausreichend gro\u00dfen W\u00e4hlerblock, um die verbleibenden Knoten im Netzwerk dazu zu bringen, ihre Entscheidung zu akzeptieren. Alice kann einige Knoten dazu bringen, in ihrem Namen zu l\u00fcgen, aber wenn das Netzwerk gro\u00df genug ist, wird ihr Versuch von den Stimmen ehrlicher Knoten \u00fcberw\u00e4ltigt.<\/p>\n<p>Wie viele Knoten sind f\u00fcr ein Quorum erforderlich? Mindestens die Mehrheit, genauer gesagt eine qualifizierte Mehrheit zur Bek\u00e4mpfung von Fehlern und Betrug. Aber um die Mehrheit zu z\u00e4hlen, muss man die Gesamtzahl der Teilnehmer kennen. In einem B\u00fcro wie Interstellar oder bei regionalen Wahlen sind diese Zahlen leicht zu ermitteln. Aber wenn Ihre Gruppe ein schwach definiertes Netzwerk ist, in dem Knoten nach Belieben ein- und austreten k\u00f6nnen, ohne sich mit einem Zentrum abzustimmen, dann wird ein <i>f\u00f6deratives<\/i> byzantinisches Einigungssystem ben\u00f6tigt, das in der Lage ist, Quoren nicht aus einer vorher festgelegten Liste von Knoten zu bestimmen, sondern dynamisch aus einem st\u00e4ndig wechselnden und zwangsl\u00e4ufig unvollst\u00e4ndigen Snapshot der Knoten zu einem bestimmten Zeitpunkt.<\/p>\n<p>Es mag unm\u00f6glich erscheinen, aus der Sicht eines Knotens in einem umfassenden Netzwerk ein Quorum zu bilden, aber es ist m\u00f6glich. Ein solches Quorum kann sogar die Ergebnisse dezentraler Abstimmungen garantieren. Das technische Dokument SCP zeigt, wie dies durch eine als <i>f\u00f6derierte Abstimmung<\/i>.<\/p>\n<h1>bezeichnete Prozedur erreicht werden kann.<\/h1>\n<p>\nDer Rest des Artikels beschreibt die f\u00f6derierte Abstimmung und das Konsensprotokoll von Stellar detaillierter. Wenn Sie nicht an Einzelheiten interessiert sind, finden Sie hier einen allgemeinen \u00dcberblick \u00fcber den Prozess.<\/p>\n<ol>\n<li>Knoten f\u00fchren Runden der f\u00f6deralen Abstimmung \u00fcber \"Nominierungen\" durch. Eine Runde der f\u00f6deralen Abstimmung bedeutet:\n<ul>\n<li>Der Knoten stimmt \u00fcber eine bestimmte Behauptung ab, z. B. \"Ich schlage den Wert V vor\";\n<\/li>\n<li>Der Knoten h\u00f6rt die Stimmen der anderen, bis er eine findet, die \"akzeptieren\" kann;\n<\/li>\n<li>Der Knoten sucht nach einem \"Quorum\" f\u00fcr diese Behauptung. Das Quorum \"best\u00e4tigt\" den Nominierten.<\/li>\n<\/ul>\n<\/li>\n<li>Sobald der Knoten einen oder mehrere Nominierte best\u00e4tigen kann, versucht er, das \"Wahlblatt\" durch mehrere Runden der f\u00f6deralen Abstimmung \"vorzubereiten\".\n<\/li>\n<li>Sobald der Knoten in der Lage ist, die Bereitstellung des Wahlblatts zu \u00fcberpr\u00fcfen, versucht er, es durch noch mehr Runden der f\u00f6deralen Abstimmung zu committen.\n<\/li>\n<li>Sobald der Knoten das Commit des Wahlblatts best\u00e4tigen kann, kann er den Wert dieses Wahlblatts \"externalisieren\", indem er ihn als Konsensergebnis verwendet.<\/li>\n<\/ol>\n<p>\nDiese Schritte umfassen mehrere Runden der f\u00f6deralen Abstimmung, die zusammen eine Runde SCP bilden. Lassen Sie uns genauer untersuchen, was in jedem Schritt passiert.<\/p>\n<h1>F\u00f6derale Abstimmung<\/h1>\n<p>\nF\u00f6derale Abstimmung ist das Verfahren zur Bestimmung, ob das Netzwerk einen Vorschlag abstimmen kann. In der Abstimmungsrunde muss jeder Knoten einen der potenziell vielen m\u00f6glichen Werte ausw\u00e4hlen. Er kann dies nicht tun, bis er sich sicher ist, dass die anderen Knoten im Netzwerk nicht ein anderes Ergebnis w\u00e4hlen. Um sich dessen sicher zu sein, tauschen die Knoten eine Flut von Nachrichten hin und her aus, damit jeder <i>die Teilnahme der \"Buffetts\" am geschlossenen Verkauf von TON.<\/i>, dass <i>Quota<\/i> Knoten <i>das gleiche<\/i> ausw\u00e4hlt. <i>L\u00f6sung<\/i>Der restliche Teil dieses Abschnitts erkl\u00e4rt die Begriffe in dieser Aussage und wie das gesamte Verfahren abl\u00e4uft.<\/p>\n<h1>Quoren und Quorum-Slices<\/h1>\n<p>\nBeginnen wir mit der Definition eines Quorums. Wie oben diskutiert, ist es in einem dezentralen Netzwerk mit dynamischer Mitgliedschaft unm\u00f6glich, im Voraus die Anzahl der Knoten zu kennen und somit zu wissen, wie viele f\u00fcr die Mehrheit ben\u00f6tigt werden. Die f\u00f6derale Abstimmung l\u00f6st dieses Problem, indem sie eine neue Idee einf\u00fchrt, <i>Quorum-Slice<\/i> (quorum slice): Eine kleine Gruppe von gleichrangigen Knoten, denen der Knoten vertraut, um Informationen \u00fcber den Abstimmungsstatus an den Rest des Netzwerks zu \u00fcbermitteln. Jeder Knoten definiert seinen eigenen Quorum-Slice (dem er faktisch angeh\u00f6rt).<\/p>\n<p>Die Bildung des Quorums beginnt mit dem Quorum-Slice. F\u00fcr jeden Knoten werden die Knoten seines Slices hinzugef\u00fcgt. Dann werden die Mitglieder der Slices hinzugef\u00fcgt. <i>diese Knoten<\/i> und so weiter. Mit Fortschreiten treten immer mehr Knoten auf, die Sie nicht hinzuf\u00fcgen k\u00f6nnen, weil sie bereits im Quorum-Schnitt enthalten sind. Wenn keine neuen Knoten mehr zum Hinzuf\u00fcgen \u00fcbrig sind, wird der Prozess gestoppt: Wir haben ein Quorum durch \"transitive Schlie\u00dfung\" des Quorum-Schnitts des Ausgangsknotens gebildet.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/6991e3f9a22d920e4a5e9c161f32dee1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Um ein Quorum von einem gegebenen Knoten zu finden...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/52b3d435a8f4a67b56deb43c83fee828.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>... f\u00fcgen wir Mitglieder seines Schnitts hinzu...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/0820e9ca560caf9ebfa92db8e7a1da85.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>... dann f\u00fcgen wir Mitglieder der Schnitte dieser Knoten hinzu.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/539933eb3c279fa7da68fc9049516fc8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Wir machen weiter, bis keine Knoten mehr zum Hinzuf\u00fcgen \u00fcbrig sind.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/48058639262412514641063a10503a01.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/d068fb06f35337ae68c35b4606f329ae.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Es sind keine Knoten mehr zum Hinzuf\u00fcgen \u00fcbrig. Das ist das Quorum.<\/i><\/p>\n<p>In der Tat kann jeder Knoten Mitglied von mehr als einem Schnitt sein. Um ein Quorum zu bilden, w\u00e4hlen Sie nur einen der Schnitte und f\u00fcgen Sie Mitglieder hinzu; dann w\u00e4hlen Sie f\u00fcr jedes Mitglied einen beliebigen Schnitt und f\u00fcgen Sie Mitglieder hinzu <i>dieses<\/i> des Schnitts und so weiter. Das bedeutet, dass jeder Knoten Mitglied einer Vielzahl m\u00f6glicher Quoren ist.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/3427406c132cfd1cd174b856a1239908.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>W\u00e4hlen Sie bei jedem Schritt nur einen Quorum-Schnitt aus.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/79a8728890ecb36b2e127b1b76c44fc8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/22fe0422c73cdf5fb5416e389934c5c3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/60379efdde3b88fb9c86de6c5b4a0b62.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ein m\u00f6gliches Quorum. Oder eine alternative Option...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/341f1e897be1474ee2d67324da2134b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>... w\u00e4hlen wir andere Schnitte...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/8a6d605050b075bf935e6151bd1cbe2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/865567aa370605b7cf10da3457c3d158.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026(wenn m\u00f6glich)\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/6343f774104454d62e7c8681bf25dbcb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>... erzeugt ein anderes Quorum.<\/i><\/p>\n<p>Wie erf\u00e4hrt ein Knoten, in welchen Schnitten andere Knoten enthalten sind? Genau wie andere Informationen \u00fcber andere Knoten: aus den \u00dcbertragungen, die jeder Knoten ins Netzwerk sendet, wenn sich sein Abstimmungsverhalten \u00e4ndert. Jede \u00dcbertragung enth\u00e4lt Informationen \u00fcber die Schnitte des sendenden Knotens. Im technischen Dokument SCP wird der Kommunikationsmechanismus nicht angegeben. Implementierungen verwenden in der Regel <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">das Gossip-Protokoll<\/a><\/noindex> f\u00fcr die garantierte \u00dcbertragung von Nachrichten durch das gesamte Netzwerk.<\/p>\n<p>Wir erinnern daran, dass in einem nicht-f\u00f6derativen byzantinischen Konsenssystem das Quorum als Mehrheit aller Knoten definiert ist. Das byzantinische Konsenssystem wurde unter dem Gesichtspunkt entwickelt, wie viele unehrliche Knoten das System aushalten kann. In einem System aus N Knoten, das auf \u00dcberleben bei f Ausf\u00e4llen (Betr\u00fcgereien) ausgelegt ist, muss ein Knoten in der Lage sein, Fortschritte zu erzielen, indem er Antworten von N\u2212f Peers erh\u00e4lt, da f von ihnen m\u00f6glicherweise nicht funktionsf\u00e4hig sind. Wenn man jedoch Antworten von N\u2212f Peers erh\u00e4lt, kann man annehmen, dass alle f Peers (von denen der Knoten keine Antwort erhalten hat) tats\u00e4chlich ehrlich sind. Somit sind f von N\u2212f Peers, von denen eine Antwort erhalten wurde, b\u00f6swillig. Damit die Knoten einen Konsens erreichen, m\u00fcssen die meisten der verbleibenden Knoten ehrlich sein, was bedeutet, dass wir ben\u00f6tigen, dass N\u2212f gr\u00f6\u00dfer als 2f ist oder N &gt; 3f. Normalerweise wird ein System, das auf \u00dcberlebensf\u00e4higkeit bei f Ausf\u00e4llen ausgelegt ist, insgesamt N=3f+1 Knoten und eine Quorumgr\u00f6\u00dfe von 2f+1 haben. Sobald der Vorschlag den Quorum-Schwellenwert \u00fcberschreitet, sind die \u00fcbrigen Mitglieder des Netzwerks davon \u00fcberzeugt, dass alle konkurrierenden Vorschl\u00e4ge scheitern werden. So konvergiert das Netzwerk zu einem Ergebnis.<\/p>\n<p>In einem f\u00f6derativen byzantinischen Konsenssystem kann es nicht nur keine Mehrheit geben (da niemand die Gesamtgr\u00f6\u00dfe des Netzwerks kennt), sondern das Konzept der Mehrheit ist v\u00f6llig nutzlos! Wenn die Mitgliedschaft im System offen ist, kann jemand die Mehrheit erlangen, indem er einen sogenannten Sybil-Angriff durchf\u00fchrt: sich mehrfach \u00fcber verschiedene Knoten mit dem Netzwerk verbindet. Warum kann das transitive Schlie\u00dfen eines Schnitts dann genannt werden <i>Quorum<\/i>, und wie ist es in der Lage, konkurrierende Vorschl\u00e4ge zu unterdr\u00fccken?<\/p>\n<p>Technisch gesehen, gar nicht! Stellen Sie sich ein Netzwerk aus sechs Knoten vor, in dem zwei Gruppen von je drei Knoten in den Quorum-Schnitten der jeweils anderen isoliert sind. Die erste Untergruppe kann eine Entscheidung treffen, von der die zweite niemals erfahren wird, und umgekehrt. F\u00fcr dieses Netzwerk gibt es keine M\u00f6glichkeit, Konsens zu erreichen (au\u00dfer zuf\u00e4llig).<\/p>\n<p>Daher erfordert das SCP, dass f\u00fcr die f\u00f6derative Abstimmung (und f\u00fcr die Anwendung wichtiger Theoreme des Artikels) das Netzwerk \u00fcber eine Eigenschaft verf\u00fcgt, die als <i>Schnittpunkten von Quoren bezeichnet wird<\/i>. In einem Netzwerk mit dieser Eigenschaft \u00fcberlappen sich immer zwei Quoren, die man bilden kann, in mindestens einem Knoten. F\u00fcr die Bestimmung der vorherrschenden Stimmungen im Netzwerk ist dies ebenso gut, wie eine Mehrheit zu haben. Intuitiv bedeutet dies, dass, wenn irgendein Quorum einer Aussage X zustimmt, kein anderes Quorum jemals mit etwas anderem zustimmen kann, da es zwangsl\u00e4ufig einen Knoten aus dem ersten Quorum enthalten wird, das bereits f\u00fcr X gestimmt hat.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/5b0aeec99e285b4bbeb92ec5b8dfe69d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Wenn es in einem Netzwerk \u00dcberschneidungen von Quoren gibt\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/bdb3866cb02fb5991446f0cb0fa5a4fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026 dann werden immer zwei Quoren, die Sie bilden k\u00f6nnen\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/29ee8d1ce9fba6c5c24386ce1c1c639b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026 sich \u00fcberschneiden.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/6f1ef2b9896669c10fd19f1acd52db70.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/6849569e849ac3b5487d31e0bf22a596.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n(Nat\u00fcrlich k\u00f6nnen sich \u00fcberschneidende Knoten als byzantinisch oder aus anderen Gr\u00fcnden fehlerhaft erweisen. In diesem Fall hilft die \u00dcberschneidung der Quoren dem Netzwerk \u00fcberhaupt nicht, sich zu einigen. Aus diesem Grund basieren viele Ergebnisse im technischen Dokument SCP auf klaren Annahmen, wie z.B., dass im Netzwerk weiterhin \u00dcberschneidungen der Quoren bestehen <i>selbst nach dem Entfernen von fehlerhaften Knoten<\/i>. Zur Vereinfachung lassen Sie diese Annahmen <i>unausgesprochen<\/i> im restlichen Teil des Artikels).<\/p>\n<p>Es mag unvern\u00fcnftig erscheinen, von einem Netzwerk aus unabh\u00e4ngigen Knoten zu erwarten, dass zuverl\u00e4ssige \u00dcberschneidungen von Quoren m\u00f6glich sind. Aber es gibt zwei Gr\u00fcnde, warum das so ist.<\/p>\n<p>Der erste Grund ist die Existenz des Internets. Das Internet ist ein perfektes Beispiel f\u00fcr ein Netzwerk unabh\u00e4ngiger Knoten mit \u00dcberschneidungen von Quoren. Die meisten Knoten im Internet verbinden sich nur mit einigen wenigen anderen lokalen Knoten, aber diese kleinen Mengen \u00fcberlappen sich ausreichend, damit jeder Knoten von jedem anderen Knoten \u00fcber irgendeinen Weg erreicht werden kann.<\/p>\n<p>Der zweite Grund ist spezifisch f\u00fcr das Zahlungssystem Stellar (das am h\u00e4ufigsten genutzte Anwendungsbeispiel von SCP). Jedes Asset im Stellar-Netzwerk hat einen Emittenten, und die Empfehlungen von Stellar verlangen, dass jeder Emittent einen oder mehrere Knoten im Netzwerk zur Verarbeitung von R\u00fcckzahlungsanfragen benannt. In Ihrem Interesse ist es, diese Knoten direkt oder indirekt in die Quorum-Schnitte f\u00fcr jedes relevanten Asset einzubeziehen. Dann werden die Quoren aller Knoten, die an diesem Asset interessiert sind, in diesen R\u00fcckzahlungsknoten zumindest \u00fcberlappen. Knoten, die an mehreren Assets interessiert sind, werden in ihren Quorum-Schnitten alle R\u00fcckzahlungsknoten der entsprechenden Emittenten einbeziehen und versuchen, alle Assets zusammenzufassen. Dar\u00fcber hinaus werden alle Assets, die nicht auf diese Weise mit anderen im Netzwerk verbunden sind, <i>nicht verbunden sein<\/i> \u2013 so ist es vorgesehen, dass in diesem Netzwerk keine \u00dcberlappung der Quoren stattfindet (zum Beispiel m\u00f6chten Banken aus dem Dollarraum manchmal mit Banken aus dem Euroraum und Banken aus dem Peso-Raum handeln, weshalb sie sich im selben Netzwerk befinden, aber niemand unter ihnen interessiert sich f\u00fcr ein separates Netzwerk von Kindern, die mit Baseballkarten handeln).<\/p>\n<p>Nat\u00fcrlich, <i>Die Erwartung<\/i> einer \u00dcberlappung der Quoren ist keine <i>Garantie<\/i>. Andere byzantinische Konsenssysteme verdanken ihre Komplexit\u00e4t zu einem gro\u00dfen Teil der Garantie von Quoren. Eine wichtige Neuerung von SCP besteht darin, dass es die Verantwortung f\u00fcr die Bildung von Quoren vom eigentlichen Konsensalgorithmus auf die Anwendungsebene verlagert. Daher h\u00e4ngt die Zuverl\u00e4ssigkeit des f\u00f6deralen Abstimmens, obwohl sie im Allgemeinen f\u00fcr die Abstimmung \u00fcber beliebige Fragen recht weit verbreitet ist, tats\u00e4chlich kritisch von dem breiteren Kontext dieser Bedeutungen ab. Einige hypothetische Anwendungsarten k\u00f6nnten sich als weniger bequem erweisen, um gut verbundene Netzwerke zu schaffen als andere.<\/p>\n<h1>Abstimmung, Annahme und Best\u00e4tigung<\/h1>\n<p>\nIm Zuge der f\u00f6deralen Abstimmung beginnt ein Knoten optional, f\u00fcr einen Wert V zu stimmen. Das bedeutet, dass er eine Nachricht ins Netzwerk \u00fcbertr\u00e4gt: \u201eIch bin Knoten N, meine Quorum-Schnitte Q und ich stimme f\u00fcr V.\u201c Wenn ein Knoten auf diese Weise stimmt, verspricht er, dass er niemals gegen V gestimmt hat und niemals tun wird.<\/p>\n<p>In den \u00dcbertragungen von Peer-Knoten sieht jeder Knoten, wie die anderen abstimmen. Sobald ein Knoten gen\u00fcgend solcher Nachrichten gesammelt hat, kann er die Quorum-Schnitte verfolgen und versuchen, Quoren zu finden. Wenn er ein Quorum von Peers sieht, die ebenfalls f\u00fcr V stimmen, kann er zu <i>der Annahme<\/i> von V \u00fcbergehen und diese neue Nachricht ins Netzwerk \u00fcbertragen: \u201eIch bin Knoten N, meine Quorum-Schnitte Q und ich nehme V an.\u201c Die Annahme bietet eine st\u00e4rkere Garantie als das einfache Abstimmen. Wenn ein Knoten f\u00fcr V stimmt, kann er nie f\u00fcr andere Optionen stimmen. Aber wenn ein Knoten V annimmt, wird kein Knoten im Netzwerk jemals eine andere Option annehmen (Theorem 8 im technischen Dokument SCP beweist dies).<\/p>\n<p>Nat\u00fcrlich besteht eine hohe Wahrscheinlichkeit, dass sofort kein Quorum an Knoten gefunden wird, die mit V einverstanden sind. Andere Knoten k\u00f6nnen f\u00fcr andere Werte stimmen. Aber f\u00fcr den Knoten gibt es einen weiteren Weg, um vom einfachen Abstimmen zur Annahme \u00fcberzugehen. N kann einen anderen Wert W annehmen, auch wenn er nicht daf\u00fcr gestimmt hat und auch wenn er kein Quorum daf\u00fcr sieht. Um zu entscheiden, seine Stimme zu \u00e4ndern, reicht es, zu sehen <i>eine blockierende Menge<\/i> von Knoten, die W angenommen haben. Eine blockierende Menge besteht aus je einem Knoten aus jedem der Quorum-Schnitte von N. Wie der Name schon sagt, ist sie in der Lage, <i>jede andere Option zu blockieren. Wenn alle Knoten in dieser Menge W annehmen, dann ist es (nach Theorem 8) unm\u00f6glich, ein Quorum zu bilden, das eine andere Option annimmt, und daher ist es f\u00fcr N auch sicher, W anzunehmen.<\/i> Knoten N mit drei Quorum-Schnitten.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/6dd4ec5595ab863daf684fec670d83a6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B-D-F ist eine blockierende Menge f\u00fcr N: sie umfasst je einen Knoten aus jedem der Schnitte von N.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/b65e32160570af2883eef9990a74e3bd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B-E ist ebenfalls eine blockierende Menge f\u00fcr N, da E in zwei Schnitten von N erscheint.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/7e17b4a9ee83aac7fa2b68b2f9fae066.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Aber eine blockierende Menge ist kein Quorum. Es w\u00e4re zu einfach, Knoten N dazu zu bringen, den gew\u00fcnschten Wert anzunehmen, wenn es reicht, einen einzigen Knoten in jedem der Schnitte von N zu hacken. Daher ist die Annahme eines Wertes noch nicht das Ende des Abstimmens. Stattdessen muss N den Wert best\u00e4tigen, das hei\u00dft, er muss ein Quorum von Knoten sehen, die ihn annehmen. Wenn er so weit kommt, dann wird, wie das technische Dokument SCP (im Theorem 11 beweist) zeigt, der Rest des Netzwerks letztlich auch denselben Wert best\u00e4tigen, und somit wird N das f\u00f6derative Abstimmen mit einem bestimmten Wert als Ergebnis abschlie\u00dfen.<\/i><\/p>\n<p>F\u00f6deratives Abstimmen.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/bd68dc5172460c17fa2de54fcc0d9017.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>F\u00f6deratives Abstimmen.<\/i><\/p>\n<p>Der Abstimmungsprozess, die Annahme und die Best\u00e4tigung bilden einen vollst\u00e4ndigen Rundgang durch die f\u00f6derative Abstimmung. Das Stellar-Konsensprotokoll vereint viele solcher Runden, um ein vollst\u00e4ndiges Konsenssystem zu schaffen.<\/p>\n<h1>Stellar-Konsensprotokoll<\/h1>\n<p>\nDie zwei wichtigsten Eigenschaften eines Konsenssystems sind <i>Sicherheit<\/i> und <i>Robustheit<\/i>. Ein Konsensalgorithmus ist \u201esicher\u201c, wenn er niemals unterschiedlichen Teilnehmern unterschiedliche Ergebnisse liefern kann (Bobs Geschichtskopie wird niemals im Widerspruch zu Carol stehen). \u201eRobustheit\u201c bedeutet, dass der Algorithmus immer ein Ergebnis liefert, das hei\u00dft, er h\u00e4ngt nie fest.<\/p>\n<p>Das beschriebene Verfahren der f\u00f6derativen Abstimmung <i>ist sicher<\/i> im Sinne davon, dass wenn ein Knoten den Wert V best\u00e4tigt, kein anderer Knoten einen anderen Wert best\u00e4tigen wird. Aber \u201enicht einen anderen Wert best\u00e4tigen\u201c bedeutet nicht, dass er notwendigerweise etwas best\u00e4tigt. Die Teilnehmer k\u00f6nnen f\u00fcr so viele verschiedene Werte abstimmen, dass nichts die Annahmeschwelle erreicht. Das bedeutet, dass in der f\u00f6derativen Abstimmung nichts <i>Robustheit<\/i>.<\/p>\n<p>Das Stellar-Konsensprotokoll verwendet f\u00f6derative Abstimmung auf eine Weise, die sowohl Sicherheit als auch Robustheit gew\u00e4hrleistet. (Die Sicherheits- und Robustheitsgarantien von SCP haben eine theoretische Grenze. Die Konstruktion w\u00e4hlt eine sehr starke Sicherheitsgarantie und opfert dabei ein geringes Ma\u00df an Robustheit, aber unter Ber\u00fccksichtigung eines ausreichenden Zeitrahmens wird mit hoher Wahrscheinlichkeit Konsens erreicht). Kurz gesagt, die Idee ist es, mehrere f\u00f6derative Abstimmungen zu mehreren Werten durchzuf\u00fchren, bis einer von ihnen vollst\u00e4ndig durch alle Phasen der SCP-Abstimmung, die im Folgenden beschrieben werden, gegangen ist.<\/p>\n<p>Die Werte, um die SCP Konsens sucht, k\u00f6nnen eine Transaktionshistorie oder eine Bestellung zum Mittagessen oder etwas anderes sein, aber es ist wichtig zu beachten, dass es nicht die Werte sind, die angenommen oder best\u00e4tigt werden. Stattdessen erfolgt die f\u00f6derative Abstimmung \u00fcber <i>Aussagen \u00fcber diese Werte<\/i>.<\/p>\n<p>Die ersten Runden der f\u00f6derativen Abstimmung finden in der <i>Nominierungsphase<\/i> statt, wobei eine Reihe von Aussagen des Typs \u201eIch nominiere V\u201c gemacht werden, m\u00f6glicherweise f\u00fcr viele verschiedene Werte V. Ziel der Nominierung ist es, eine oder mehrere Aussagen zu finden, die die Annahme und Best\u00e4tigung durchlaufen.<\/p>\n<p>Nachdem die best\u00e4tigbaren Kandidaten gefunden wurden, geht SCP zur Abstimmungsphase \u00fcber, in der das Ziel darin besteht, einen gewissen <i>Wahlzettel<\/i> (also einen Beh\u00e4lter f\u00fcr den vorgeschlagenen Wert) und ein Quorum zu finden, das verk\u00fcnden kann <i>Commits<\/i> (commit). Wenn das Quorum den Wahlzettel committet, wird dessen Wert als Konsens akzeptiert. Bevor jedoch ein Knoten f\u00fcr den Commit des Wahlzettels abstimmen kann, muss er zuerst die <i>Stornierung<\/i> aller Wahlzettel mit einem niedrigeren Z\u00e4hlerwert best\u00e4tigen. Diese Schritte \u2013 das Stornieren von Wahlzetteln, um denjenigen zu finden, f\u00fcr den der Commit best\u00e4tigt werden kann \u2013 umfassen mehrere Runden federativer Abstimmungen zu verschiedenen Wahlzettelbehauptungen.<\/p>\n<p>In den folgenden Abschnitten werden Wahlvorschl\u00e4ge und Abstimmungen ausf\u00fchrlicher beschrieben.<\/p>\n<h1>Wahlvorschlag<\/h1>\n<p>\nZu Beginn der Vorschlagsphase kann jeder Knoten spontan einen Wert V w\u00e4hlen und f\u00fcr die Aussage 'Ich schlage V vor' stimmen. Das Ziel in dieser Phase besteht darin, den Vorschlag eines bestimmten Wertes durch federative Abstimmung zu best\u00e4tigen.<\/p>\n<p>Es ist m\u00f6glich, dass eine ausreichende Anzahl von Knoten f\u00fcr ausreichend unterschiedliche Behauptungen stimmt und kein Vorschlag die Annahmeschwelle erreicht. Daher reflektieren die Knoten neben der \u00dcbertragung ihrer eigenen Nominierungsstimmen die Nominierungen ihrer Nachbarn. Reflexion bedeutet, dass wenn ein Knoten f\u00fcr den Vorschlag V stimmt, aber eine Nachricht von einem Nachbarn sieht, der f\u00fcr den Vorschlag W stimmt, er dann sowohl f\u00fcr den Vorschlag V als auch f\u00fcr W stimmen wird. (Nicht alle Stimmen der Nachbarn werden w\u00e4hrend des Vorschlags reflektiert, da dies zu einer Explosion unterschiedlicher Nominierungen f\u00fchren kann. SCP beinhaltet einen Mechanismus zur Regulierung dieser Stimmen. Kurz gesagt, es gibt eine Formel zur Bestimmung der 'Priorit\u00e4t' eines Nachbarn aus der Sicht des Knotens, und es werden nur die Stimmen hochpriorisierter Knoten reflektiert. Je l\u00e4nger der Vorschlag dauert, desto niedriger wird die Schwelle, sodass der Knoten den Satz von Nachbarn erweitert, deren Stimmen er reflektieren wird. Die Priorit\u00e4tsformel beinhaltet als eines der Eingabewerte die Slotnummer, sodass ein hochpriorisierter Peer f\u00fcr einen Slot f\u00fcr einen anderen niedrigpriorisiert sein kann und umgekehrt.<\/p>\n<p>Konzeptionell ist die gleichzeitige Nominierung von V und W eine separate f\u00f6derative Stimme, die jeweils unabh\u00e4ngig Annahme oder Best\u00e4tigung erreichen kann. In der Praxis packen die Nachrichten des SCP-Protokolls diese einzelnen Stimmen zusammen.<\/p>\n<p>Obwohl die Abstimmung f\u00fcr die Nominierung von V das Versprechen beinhaltet, niemals gegen die Nominierung von V zu stimmen, wird auf Anwendungsebene \u2013 in diesem Fall SCP \u2013 definiert, was \u201edagegen\u201c bedeutet. SCP erkennt keine Aussage, die der Abstimmung \u201eIch nominieren X\u201c widerspricht, d. h. es gibt keine Nachricht \u201eIch bin gegen die Nominierung von X\u201c, sodass der Knoten f\u00fcr die Nominierung beliebiger Werte stimmen kann. Viele dieser Nominierungen f\u00fchren zu nichts, aber letztendlich kann der Knoten eines oder mehrere Werte annehmen oder best\u00e4tigen. Sobald der Nominierte best\u00e4tigt ist, wird er <i>Kandidat<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/794f55d076ec3e1773c49d32e29c084d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Die Nominierung durch SCP unter Verwendung von f\u00f6derativer Abstimmung. Es kann viele Werte \"B\" geben, die von gleichrangigen Knoten nominiert und von einem Knoten \u201ereflektiert\u201c werden.<\/i> <\/p>\n<p>Die Nominierung von Kandidaten kann zur Entstehung mehrerer best\u00e4tigbarer Kandidaten f\u00fchren. Daher verlangt SCP, dass die Anwendungsebene eine Methode bereitstellt, um Kandidaten in einen <i>Kontrast (composite) zu vereinigen. Die Methode zur Vereinigung kann beliebig sein. Wichtig ist, dass, wenn diese Methode deterministisch ist, jeder Knoten dieselben Kandidaten vereint. Im Abstimmungssystem f\u00fcr das Mittagessen kann \u201eVereinigung\u201c einfach bedeuten, einen von zwei Kandidaten abzulehnen. (Aber deterministisch: Jeder Knoten muss denselben Wert f\u00fcr den Ausschluss w\u00e4hlen. Zum Beispiel eine fr\u00fchere Wahl in alphabetischer Reihenfolge). Im Stellar-Zahlungsnetzwerk, wo die Abstimmung \u00fcber Transaktionshistorien stattfindet, bedeutet die Vereinigung zweier vorgeschlagener Nominierter die Vereinigung der Transaktionen, die sie enthalten, und der letzten der beiden Zeitstempel.<\/i> Technische Beschreibung von SCP beweist (Theorem 12), dass das Netzwerk am Ende der Nominationsphase auf einen einzigen Kontrast konvergiert. Aber es gibt ein Problem: F\u00f6derative Abstimmung ist ein asynchrones Protokoll (wie auch SCP). Mit anderen Worten, Knoten sind nicht zeitlich koordiniert, sondern nur durch die Nachrichten, die sie senden. Aus der Sicht eines Knotens ist unklar, wann<\/p>\n<p>Die technische Beschreibung des SCP beweist (Theorem 12), dass das Netzwerk am Ende der Vorlagephase schlie\u00dflich zu einem einzigen Komposit convergiert. Aber es gibt ein Problem: Das f\u00f6derative Abstimmungssystem ist ein asynchrones Protokoll (wie auch SCP). Mit anderen Worten, die Knoten sind nicht zeitlich koordiniert, sondern nur durch die gesendeten Nachrichten. Aus der Sicht eines Knotens ist es unklar, wann <i>die Unterst\u00fctzung<\/i> Phase der Kandidatenauswahl. Und obwohl alle Knoten letztendlich zu demselben Komposit gelangen, k\u00f6nnen sie auf diesem Weg unterschiedliche Routen w\u00e4hlen, wobei sie unterwegs verschiedene Kandidaten bilden und niemals sagen k\u00f6nnen, welcher von ihnen final ist.<\/p>\n<p>Aber das ist in Ordnung. Die Kandidatenauswahl ist nur eine Vorbereitung. Es ist wichtig, die Anzahl der Kandidaten zu begrenzen, um einen Konsens zu erreichen, der im Prozess entsteht. <i>Wahlvorgang<\/i> (Wahlvorgang).<\/p>\n<h1>Wahlvorgang<\/h1>\n<p>\nEin Wahlzettel ist ein Paar , wobei counter eine ganze Zahl ist, die mit 1 beginnt, und value ein Kandidat aus der Phase der Kandidatenauswahl ist. Es kann sich um den eigenen Kandidaten des Knotens oder um einen Kandidaten des benachbarten Knotens handeln, der von diesem Knoten angenommen wurde. Grob gesagt unternimmt der Wahlvorgang wiederholte Versuche, das Netzwerk dazu zu bringen, einen Konsens \u00fcber einen bestimmten Kandidaten auf einem bestimmten Wahlzettel durch die Durchf\u00fchrung von potenziell vielen f\u00f6derativen Abstimmungen \u00fcber Wahlzettelaussagen zu erreichen. Die Z\u00e4hler auf den Wahlzetteln verfolgen die unternommenen Versuche, und Wahlzettel mit h\u00f6heren Z\u00e4hlern haben Vorrang vor solchen mit niedrigeren Z\u00e4hlern. Wenn der Wahlzettel  feststeckt, beginnt eine neue Abstimmung, nun \u00fcber den Wahlzettel .<\/p>\n<p>Es ist wichtig zu unterscheiden <i>Werte<\/i> (zum Beispiel, was die Bestellung zum Mittagessen angeht: Pizza oder Salate), <i>Wahlzettel<\/i> (Paar counter-value) und <i>Aussagen<\/i> zu Wahlzetteln. Eine SCP-Runde umfasst mehrere Runden f\u00f6derativer Abstimmungen, insbesondere zu solchen Aussagen:<\/p>\n<ul>\n<li>\"Ich bin bereit, den Wahlzettel B zu genehmigen\" und\n<\/li>\n<li>\"Ich k\u00fcndige die Genehmigung des Wahlzettels B an\"<\/li>\n<\/ul>\n<p>\nAus Sicht dieses Knotens wird Konsens erreicht, wenn er den Wahlzettel B findet, f\u00fcr den er die Aussage \"Ich k\u00fcndige die Genehmigung des Wahlzettels B an\" best\u00e4tigen kann (das hei\u00dft, einen Quorum finden, das dies annimmt). Ab diesem Moment kann sicher mit dem Wert, der in B angegeben ist, gehandelt werden \u2013 zum Beispiel diese Bestellung zum Mittagessen aufgegeben werden. Dies wird als <i>Externalisierung<\/i> des Wertes bezeichnet. Sobald die Annahme des Wahlzettels best\u00e4tigt ist, kann der Knoten sicher sein, dass jeder andere Knoten dieser gleichen Wert ebenfalls externisiert hat oder dies in der Zukunft zwangsl\u00e4ufig tun wird.<\/p>\n<p>Obwohl konzeptionell viele f\u00f6derative Abstimmungen auf Erkl\u00e4rungen zu zahlreichen verschiedenen Abstimmungsunterlagen stattfinden, erfolgt der Austausch nicht mit allzu vielen Nachrichten, da jede Nachricht eine Reihe von Abstimmungen verkapselt. Eine Nachricht f\u00f6rdert somit den Zustand vieler f\u00f6derativer Abstimmungen gleichzeitig, zum Beispiel: \u201eIch akzeptiere das Commit der Abstimmung von  bis .\u201c<\/p>\n<p>Was bedeuten die Begriffe \u201evorbereitet\u201c (prepared) und \u201ecommit\u201c (commit)?<\/p>\n<p>Ein Knoten stimmt f\u00fcr das Commit eines Abstimmungsunterlagens, wenn er \u00fcberzeugt ist, dass andere Knoten keine Commit f\u00fcr Abstimmungen mit anderen Werten vornehmen werden. Diese \u00dcberzeugung ist das Ziel der Vorbereitung der Erkl\u00e4rung. Eine Abstimmung, in der gesagt wird: \u201eIch bin bereit f\u00fcr das Commit der Abstimmung B\u201c, ist das Versprechen, niemals ein Commit f\u00fcr eine Abstimmung mit einem Wert kleiner als B vorzunehmen, d.\u00a0h. mit einem kleineren Z\u00e4hler (SCP verlangt, dass die Werte in den Abstimmungen eine bestimmte Reihenfolge haben. Somit ist die Abstimmung  kleiner als , wenn N1&lt;N2, und auch wenn N1=N2 und V1&lt;V2). Diese kleineren Abstimmungen werden im Rahmen der vorbereitenden Abstimmung \u201eabgebrochen\u201c (aborted), w\u00e4hrend B als \u201evorbereitet\u201c gilt.<\/p>\n<p>Warum bedeutet \u201eIch bin bereit f\u00fcr das Commit der Abstimmung B\u201c, dass ich verspreche, niemals ein Commit f\u00fcr Abstimmungen kleiner B zuzulassen? Weil SCP abort als das Gegenteil von commit definiert. Das Abstimmen zur Vorbereitung der Abstimmung impliziert auch das Abstimmen zum Abbrechen anderer Abstimmungen, und, wie bereits besprochen, ist das Abstimmen f\u00fcr etwas ein Versprechen, niemals gegen es zu stimmen.<\/p>\n<p>Bevor ein Commit \u00fcbertragen wird, muss der Knoten zuerst eine Abstimmung finden, die er als vorbereitet best\u00e4tigen kann. Mit anderen Worten, er f\u00fchrt eine f\u00f6derative Abstimmung zur Frage \u201eIch bin bereit f\u00fcr das Commit der Abstimmung B\u201c durch, m\u00f6glicherweise f\u00fcr viele verschiedene Abstimmungen, bis er eine findet, die das Quorum akzeptiert.<\/p>\n<p>Woher kommen die Stimmzettel f\u00fcr die Abstimmungsvorbereitung? Zun\u00e4chst \u00fcbertr\u00e4gt der Knoten die Vorbereitung zur Abstimmung f\u00fcr , wobei C der Kandidat-Komposit ist, der in der Phase der Nominierung erstellt wurde. Selbst nach Beginn der Abstimmungsvorbereitung kann die Nominierung jedoch zur Entstehung zus\u00e4tzlicher Kandidaten f\u00fchren, die neue Stimmzettel werden. In der Zwischenzeit kann es unterschiedliche Kandidaten unter den Peers geben, und sie k\u00f6nnen eine blockierende Menge bilden, die akzeptiert: \u201eIch bin bereit, das Commit des Stimmzettels B2 vorzunehmen\u201c, was den Knoten \u00fcberzeugt, dies ebenfalls zu akzeptieren. Schlie\u00dflich gibt es einen Timeout-Mechanismus, der neue Runden der f\u00f6derierten Abstimmung mit neuen Stimmzetteln und h\u00f6heren Z\u00e4hlern generiert, falls die aktuellen Stimmzettel feststecken.<\/p>\n<p>Sobald der Knoten einen Stimmzettel B findet, der als vorbereitet best\u00e4tigt werden kann, sendet er eine neue Nachricht: \u201eCommit des Stimmzettels B\u201c. Dieses Abstimmungsergebnis sagt den Peers, dass der Knoten B niemals aufgeben wird. Tats\u00e4chlich bedeutet, wenn B ein Stimmzettel  darstellt, dass \u201eCommit des Stimmzettels \u201c bedingungslose Zustimmung bedeutet, f\u00fcr die Bereitwilligkeit jedes Stimmzettels von  bis  zu stimmen. Dieser zus\u00e4tzliche Wert hilft anderen Knoten, den Peer mit dem Commit einzuholen, wenn sie sich noch in fr\u00fcheren Phasen des Protokolls befinden.<\/p>\n<p>An dieser Stelle sollte erneut betont werden, dass dies asynchrone Protokolle sind. Nur weil ein Knoten gegen ein Commit stimmt, bedeutet das nicht, dass seine Peers dies ebenfalls tun. Einige von ihnen k\u00f6nnen immer noch \u00fcber Aussagen abstimmen, um sich auf die Abstimmung vorzubereiten, w\u00e4hrend andere m\u00f6glicherweise den Wert bereits externalisiert haben. SCP erkl\u00e4rt, wie ein Knoten jede Art von Peer-to-Peer-Nachricht unabh\u00e4ngig von seiner Phase verarbeiten sollte.<\/p>\n<p>Wenn die Nachricht \u201eIch k\u00fcndige die Abstimmung &lt;N,C&gt;\u201c nicht angenommen oder best\u00e4tigt werden kann, besteht die M\u00f6glichkeit, dass die Nachricht &lt;N+1,C&gt; oder &lt;N+2,C&gt; angenommen oder best\u00e4tigt wird \u2013 oder in jedem Fall irgendein Bulletin mit dem Wert C und nicht einem anderen, da der Knoten bereits versprochen hat, &lt;N,C&gt; niemals zur\u00fcckzunehmen. Bis zu dem Zeitpunkt, an dem der Knoten Stimmen f\u00fcr die Abstimmung \u00fcbertr\u00e4gt, wird es C oder nichts sein, je nachdem, wie weit der Konsens voranschreitet. Allerdings reicht dies dem Knoten noch nicht aus, um C zu externalisieren. Einige byzantinische Piraten (die weniger als die erforderliche Anzahl an Quoren basierend auf unseren Sicherheitsannahmen ausmachen) k\u00f6nnten den Knoten anl\u00fcgen. Die Annahme und danach die Best\u00e4tigung eines bestimmten Bulletins (oder eines Bereichs von Bulletins) ist es, was dem Knoten das Vertrauen gibt, schlie\u00dflich C zu externalisieren.<\/p>\n<p><img decoding=\"async\" alt=\"Wir kl\u00e4ren das Konsensprotokoll von Stellar\" src=\"\/wp-content\/uploads\/2019\/03\/c59f036bb8aa189bb3d4540f54121391.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Die Abstimmung von SCP durch f\u00f6derierte Abstimmung. Nicht angezeigt: Jederzeit kann ein Timer ausgel\u00f6st werden, der den Z\u00e4hler im Bulletin erh\u00f6ht (und m\u00f6glicherweise einen neuen Komposit aus zus\u00e4tzlichen nominierten Kandidaten erzeugt).<\/i> <\/p>\n<p>Und das ist alles! Sobald das Netzwerk zu einem Konsens gelangt ist, ist es bereit, dies immer wieder zu tun. Im Zahlungsnetzwerk Stellar geschieht dies ungef\u00e4hr alle 5 Sekunden: ein Kunstst\u00fcck, das sowohl Sicherheit als auch Widerstandsf\u00e4higkeit erfordert, die durch SCP garantiert sind.<\/p>\n<p>SCP kann dies erreichen, indem es sich auf mehrere Runden f\u00f6derierter Abstimmung st\u00fctzt. F\u00f6derierte Abstimmung wurde durch das Konzept der Quoren-Slices m\u00f6glich: Gruppen von gleichwertigen Knoten, denen jeder Knoten beschlossen hat, als Teil seines (subjektiven) Quorums zu vertrauen. Diese Konfiguration bedeutet, dass ein Konsens sogar in einem Netzwerk mit offener Mitgliedschaft und byzantinischen Betr\u00fcgereien erreicht werden kann.<\/p>\n<h1>Weitere Lekt\u00fcre<\/h1>\n<p><\/p>\n<ul>\n<li>Das originale technische Dokument zu SCP finden Sie unter <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stellar.org\/papers\/stellar-consensus-protocol.pdf\">hier<\/a><\/noindex>, und <noindex><a rel=\"nofollow\" href=\"https:\/\/datatracker.ietf.org\/doc\/draft-mazieres-dinrg-scp\/\">hier<\/a><\/noindex> Projekt zur Spezifikation f\u00fcr seine Implementierung.\n<\/li>\n<li>Der urspr\u00fcngliche Autor des SCP-Protokolls, David Mazieres, erkl\u00e4rt es vereinfacht (aber dennoch technisch) <noindex><a rel=\"nofollow\" href=\"http:\/\/www.scs.stanford.edu\/~dm\/blog\/simplified-scp.html\">hier<\/a><\/noindex>.\n<\/li>\n<li>Vielleicht waren Sie \u00fcberrascht, in diesem Artikel die Begriffe \u201eMining\u201c oder \u201eProof of Work\u201c nicht zu finden. SCP verwendet diese Methoden nicht, aber einige andere Konsensalgorithmen tun dies. Zane Wiserspoon hat einen zug\u00e4nglichen <noindex><a rel=\"nofollow\" href=\"https:\/\/hackernoon.com\/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3\">\u00dcberblick \u00fcber Konsensalgorithmen<\/a><\/noindex>.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bobg\/scp\/blob\/master\/Lunch.md\">Schritt-f\u00fcr-Schritt-Beschreibung<\/a><\/noindex> eines einfachen Netzwerks, das in einer vollst\u00e4ndigen Runde SCP Konsens erreicht.\n<\/li>\n<li>F\u00fcr Leser, die sich f\u00fcr Implementierungen von SCP interessieren: siehe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stellar\/stellar-core\/tree\/master\/src\/scp\">C++-Code<\/a><\/noindex>, der von dem Zahlungsnetzwerk Stellar verwendet wird, oder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bobg\/scp\">Go-Code<\/a><\/noindex>, den ich zum besseren Verst\u00e4ndnis des SCP erstellt habe.<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444710\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-30047","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:33:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:33:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wir besch\u00e4ftigen uns mit dem Stellar-Konsensprotokoll | ProHoster","description":"Das Stellar-Konsensprotokoll wurde erstmals in.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar | ProHoster","og:description":"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432.","og:url":"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:33:25+00:00","article:modified_time":"2019-10-31T18:33:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30047","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-20 23:34:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:43:15","updated":"2026-01-20 23:34:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=30047"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30047\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=30047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=30047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=30047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}