https://www.vgkb.de/w/api.php?action=feedcontributions&user=Viktor&feedformat=atomVGKB - Benutzerbeiträge [de]2024-03-28T11:15:56ZBenutzerbeiträgeMediaWiki 1.33.0https://www.vgkb.de/w/index.php?title=HTTPS_Crashkurs&diff=286HTTPS Crashkurs2020-02-26T14:50:35Z<p>Viktor: Neu angelegt</p>
<hr />
<div>{{Header Kurse}}<br />
{{Infobox Kurs<br />
|Name=HTTPS Crashkurs<br />
|Kursbild=HTTPS Crashkurs Kursbild.png<br />
|Thema=HTTPS- und Let's Encrypt-Einstieg<br />
|Dauer=4 Stunden<br />
|Veröffentlichung=18. Februar 2020<br />
|URL=[https://www.udemy.com/https-kurs udemy.com/https-kurs]<br />
}}<br />
<br />
'''Der HTTPS-Crashkurs: Dein Einstieg in SSL/TLS!''' ist mein siebter veröffentlichter [[Kurse|Udemy-Kurs]] und als Mittelstufenkurs für Admins gedacht, die einen Einstieg in das HTTPS sowie dem zugehörigen Ökosystem am Beispiel von ''[[Let's Encrypt]]'' bekommen wollen.<br />
<br />
== Beschreibung / Werbetext ==<br />
HTTPS ist seit einigen Jahren in aller Munde. Es stellt eine Transportverschlüsselung für Webseiten dar und ist teils gesetzliche Anforderung für Webseitenbetreiber. Dieser gut dreistündige Crashkurs ermöglicht dir den schnellen Einstieg in diese Technik.<br />
<br />
Der Kurs beginnt mit den Grundlagen von HTTP und HTTPS, um den Gegenstand des Kurses näher kennenzulernen. Ein kurzer Exkurs in ausgewählte Themen der Kryptographie festigt das Verständnis, um die Hintergründe einzuordnen.<br />
<br />
Im praktischen Teil wird nachvollziehbar lokal die grundlegende Konfiguration von selbstsignierten Zertifikaten in den bekanntesten Webservern, dem Apache HTTP Server (apache2) sowie NGINX (nginx), geübt.<br />
<br />
Hiernach wird der Einsatz des certbots für apache2 und nginx sowie von Certify The Web für die IIS gezeigt, um Zertifikate von der kostenlosen und allgemein akzeptierten Zertifizierungsstelle Let's Encrypt zu beziehen. Voraussetzungen hierfür sind ein öffentlich erreichbarer Server sowie eine eigene Domain mit DNS-Zugriff.<br />
<br />
Der Kurs ermöglicht einen anschaulichen Einstieg für alle, die ihren Webserver um die HTTPS-Funktionalität erweitern möchten! Ein Muss für jeden Webseiten- und Webserverbetreiber!<br />
<br />
[[Kategorie:Kurs]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Datei:HTTPS_Crashkurs_Kursbild.png&diff=285Datei:HTTPS Crashkurs Kursbild.png2020-02-26T14:48:11Z<p>Viktor: </p>
<hr />
<div></div>Viktorhttps://www.vgkb.de/w/index.php?title=Kurse&diff=284Kurse2020-02-26T14:46:50Z<p>Viktor: neuer Kurs</p>
<hr />
<div>Dieses Portal umfasst Informationsseiten zu meinen angebotenen '''Kursen'''.<br />
<br />
== Online-Kurse ==<br />
{| class="wikitable"<br />
! # !! Name !! Veröffentlichung !! Stichwörter<br />
|-<br />
| 7 || [[HTTPS Crashkurs|Der HTTPS-Crashkurs: Dein Einstieg in SSL/TLS!]] || Anfang 2020 || HTTPS, Let's Encrypt<br />
|-<br />
| 6 || [[Python Crashkurs|Python Crashkurs für (Quer) Einsteiger]] || Mitte 2019 || Python<br />
|-<br />
| 5 || [[Git Crashkurs|Der Git Crashkurs - Versionskontrolle praktisch und kompakt]] || Anfang 2019 || Git<br />
|-<br />
| 4 || [[Webentwicklung mit Python und Django]] || Mitte 2018 || Python, Django<br />
|-<br />
| 3 || [[Das eigene Wiki für Dokumentation, etc. mit DokuWiki]] || Anfang 2018 || DokuWiki<br />
|-<br />
| 2 || [[Virtualisierung für Einsteiger]] || Mitte 2017 || KVM, VirtualBox, Proxmox<br />
|-<br />
| 1 || [[Der eigene Server mit Ubuntu Server 16.04]] || Mitte 2016 || Ubuntu Server 16.04, Apache, Samba, Ajenti<br />
|}<br />
<br />
[[Kategorie:Themenbereich]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Django&diff=283Django2019-12-29T14:51:58Z<p>Viktor: Changelog</p>
<hr />
<div>{{Hinweisbox Wikipedia|Django (Framework)}}<br />
[[File:Django logo.svg|200px|right]]<br />
'''Django''' ist ein Python-Framework, das 2005 veröffentlicht wurde.<br />
<br />
== Updates ==<br />
<br />
Diese Tabelle listet einige neuere und wichtige (Major, Minor) Django-Releases auf.<br />
<br />
{| class="wikitable"<br />
! Versionsnummer !! Datum !! Changelog<br />
|-<br />
| 3.0 || 2019-12-02 || [https://docs.djangoproject.com/en/3.0/releases/3.0/ 3.0]<br />
|-<br />
| 2.2 || 2019-04-01 || [https://docs.djangoproject.com/en/3.0/releases/2.2/ 2.2]<br />
|-<br />
| 2.1 || 2018-08-01 || [https://docs.djangoproject.com/en/3.0/releases/2.1/ 2.1]<br />
|-<br />
| 2.0 || 2017-12-02 || [https://docs.djangoproject.com/en/3.0/releases/2.0/ 2.0]<br />
|-<br />
| 1.9 || 2017-04-04 || [https://docs.djangoproject.com/en/3.0/releases/1.11/ 1.9]<br />
|}<br />
<br />
== Weblinks ==<br />
* [https://www.djangoproject.com/ Homepage]<br />
<br />
[[Kategorie:Python]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Ethereum&diff=282Ethereum2019-12-28T12:22:05Z<p>Viktor: White Paper</p>
<hr />
<div>{{Infobox<br />
|Bildname=Ethereum logo 2014.svg<br />
|Bildbreite=80px<br />
|Feldname1=Typ<br />
|Daten1=Software, [[Blockchain]]<br />
|Feldname2=Erschienen<br />
|Daten2=30. Juli 2015<ref>[https://blog.ethereum.org/2015/07/30/ethereum-launches/ Ethereum Launches - Ethereum Blog]</ref><br />
|Feldname3=Homepage<br />
|Daten3=[https://www.ethereum.org/ ethereum.org]<br />
}}<br />
<br />
'''Ethereum''' ist ein verteiltes, [[blockchain]]-basisertes System, auf dem dezentrale Applikationen verwaltet und betrieben werden können. Ethereum ist hierbei Software und Blockchain zugleich. Davon abzugrenzen, aber verwandt, ist der als Kryptowährung fungierende Token '''Ether''', der als Austauschmedium zur Verrechnung von Gebühren für z.B. Ressourcen dient.<br />
<br />
== Unterartikel ==<br />
* [[Ethereum/Upgrades|Upgrades]]<br />
<br />
== Weblinks ==<br />
* [https://www.ethereum.org/ Homepage von Ethereum]<br />
* [https://github.com/ethereum/wiki/wiki Technical Wiki]<br />
* [https://etherscan.io/ Blockchain-Explorer etherscan.io]<br />
* White Paper<br />
** Vitalik Buterin et al. [https://github.com/ethereum/wiki/wiki/White-Paper A Next-Generation Smart Contract and Decentralized Application Platform]<br />
** Gavin Wood. [https://gavwood.com/paper.pdf Ethereum: A secure decentraliced generalised transaction ledger].<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Ethereum]]<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Let%27s_Encrypt&diff=281Let's Encrypt2019-12-28T11:40:45Z<p>Viktor: added Category:Let's Encrypt using HotCat</p>
<hr />
<div>{{Hinweisbox Wikipedia|Let's Encrypt}}<br />
'''Let's Encrypt''' ist ein Zertifizierungsstelle und eine Dienst, der es ermöglicht, X.509-Zertifikate für TLS auszustellen. Der Dienst ist kostenlos und wird über automatisierte Prozesse abgewickelt.<ref>[https://letsencrypt.org/about/ About Let's Encrypt], abgerufen am 2019-12-28</ref><br />
<br />
== Weblinks ==<br />
* [https://letsencrypt.org/ Homepage von Let's Encrypt]<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Let's Encrypt]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Kategorie:Let%27s_Encrypt&diff=280Kategorie:Let's Encrypt2019-12-28T11:40:32Z<p>Viktor: Die Seite wurde neu angelegt: „Kategorie:Internet“</p>
<hr />
<div>[[Kategorie:Internet]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Let%27s_Encrypt&diff=279Let's Encrypt2019-12-28T11:39:57Z<p>Viktor: Neu angelegt</p>
<hr />
<div>{{Hinweisbox Wikipedia|Let's Encrypt}}<br />
'''Let's Encrypt''' ist ein Zertifizierungsstelle und eine Dienst, der es ermöglicht, X.509-Zertifikate für TLS auszustellen. Der Dienst ist kostenlos und wird über automatisierte Prozesse abgewickelt.<ref>[https://letsencrypt.org/about/ About Let's Encrypt], abgerufen am 2019-12-28</ref><br />
<br />
== Weblinks ==<br />
* [https://letsencrypt.org/ Homepage von Let's Encrypt]<br />
<br />
== Einzelnachweise ==<br />
<references /></div>Viktorhttps://www.vgkb.de/w/index.php?title=Bitcoin&diff=278Bitcoin2019-12-28T11:35:57Z<p>Viktor: added Category:Kryptowährung using HotCat</p>
<hr />
<div>{{Infobox<br />
|Bildname=Bitcoin_logo.svg<br />
|Feldname1=Erschienen<br />
|Daten1=2009<br />
|Feldname2=Typ<br />
|Daten2=[[Kryptowährung]], [[Blockchain]]<br />
|Feldname3=[[Konsensalgorithmus|Konsensverfahren]]<br />
|Daten3=[[Proof of Work]] mit SHA256<br />
}}<br />
<br />
'''Bitcoin''' ist eine Kryptowährung und setzt auf die Distributed-Ledger-Technologie. Im Zuge der Entwicklung wurden die Konzepte von [[Merkle tree]]s und [[Hashcash]] in Form einer Datenstruktur, die heute als [[Blockchain]] bezeichnet wird, weitergeführt. Somit ist Bitcoin das erste verteilte System, das auf dieser Datenstruktur in der Form aufbaut. Bitcoin wurde 2009 veröffentlicht. Als Autor wird Satoshi Nakamoto genannt.<br />
<br />
== Weblinks ==<br />
* [https://bitcoin.org/ Homepage von Bitcoin]<br />
* Das Bitcoin-Paper: [https://bitcoin.org/bitcoin.pdf Bitcoin: A Peer-to-Peer Electronic Cash System]<br />
* [https://www.blockchain.com Blockchain Explorer blockchain.com]<br />
<br />
[[Kategorie:Blockchain]]<br />
[[Kategorie:Bitcoin]]<br />
[[Kategorie:Kryptowährung]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Coin360&diff=277Coin3602019-12-28T11:35:41Z<p>Viktor: added Category:Kryptowährung using HotCat</p>
<hr />
<div>'''Coin360''' ist ein Infografikdienst, der Daten aus dem Kryptowährungsmarkt aggregiert und insbesondere über eine Heatmap darstellt.<br />
<br />
== Weblinks ==<br />
* [https://coin360.com/ coin360.com]<br />
<br />
[[Kategorie:Kryptowährung]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Kryptow%C3%A4hrung&diff=276Kryptowährung2019-12-28T11:35:28Z<p>Viktor: added Category:Kryptowährung using HotCat</p>
<hr />
<div>Als '''Kryptowährung''' werden digitale Zahlungsmittel bezeichnet, die auf kryptographischen Werkzeugen und Verfahren basieren.<ref>Seite „Kryptowährung“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 4. Dezember 2019, 14:08 UTC. URL: https://de.wikipedia.org/w/index.php?title=Kryptow%C3%A4hrung&oldid=194630994 (Abgerufen: 7. Dezember 2019, 13:02 UTC)</ref> Dies umfasst oft digitale Signaturen und Datenstrukturen wie die [[Blockchain]].<br />
<br />
== Einzelnachweise == <br />
<references /><br />
<br />
[[Kategorie:Kryptowährung]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Kategorie:Kryptow%C3%A4hrung&diff=275Kategorie:Kryptowährung2019-12-28T11:35:15Z<p>Viktor: Die Seite wurde neu angelegt: „Artikel, die mit Kryptowährungen zu tun haben.“</p>
<hr />
<div>Artikel, die mit [[Kryptowährung]]en zu tun haben.</div>Viktorhttps://www.vgkb.de/w/index.php?title=Coin360&diff=274Coin3602019-12-28T11:34:34Z<p>Viktor: Neu angelegt</p>
<hr />
<div>'''Coin360''' ist ein Infografikdienst, der Daten aus dem Kryptowährungsmarkt aggregiert und insbesondere über eine Heatmap darstellt.<br />
<br />
== Weblinks ==<br />
* [https://coin360.com/ coin360.com]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Ethereum&diff=273Ethereum2019-12-28T11:32:38Z<p>Viktor: Links</p>
<hr />
<div>{{Infobox<br />
|Bildname=Ethereum logo 2014.svg<br />
|Bildbreite=80px<br />
|Feldname1=Typ<br />
|Daten1=Software, [[Blockchain]]<br />
|Feldname2=Erschienen<br />
|Daten2=30. Juli 2015<ref>[https://blog.ethereum.org/2015/07/30/ethereum-launches/ Ethereum Launches - Ethereum Blog]</ref><br />
|Feldname3=Homepage<br />
|Daten3=[https://www.ethereum.org/ ethereum.org]<br />
}}<br />
<br />
'''Ethereum''' ist ein verteiltes, [[blockchain]]-basisertes System, auf dem dezentrale Applikationen verwaltet und betrieben werden können. Ethereum ist hierbei Software und Blockchain zugleich. Davon abzugrenzen, aber verwandt, ist der als Kryptowährung fungierende Token '''Ether''', der als Austauschmedium zur Verrechnung von Gebühren für z.B. Ressourcen dient.<br />
<br />
== Unterartikel ==<br />
* [[Ethereum/Upgrades|Upgrades]]<br />
<br />
== Weblinks ==<br />
* [https://www.ethereum.org/ Homepage von Ethereum]<br />
* [https://github.com/ethereum/wiki/wiki Technical Wiki]<br />
* [https://etherscan.io/ Blockchain-Explorer etherscan.io]<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Ethereum]]<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=DApp&diff=272DApp2019-12-28T09:25:30Z<p>Viktor: added Category:Blockchain using HotCat</p>
<hr />
<div>Eine '''dezentrale Applikation''' ('''DApp''') ist ein Programm, das auf einem verteilten System arbeitet.<br />
<br />
Bekanntes Beispiel ist hier [[Ethereum]], wo DApps in Verbindung mit der [[Blockchain]] betrieben werden. Bei Ethereum kann sich eine DApp als ausführbares Programm vorgestellt werden, das auf den Nodes (Knoten) ausgeführt wird. Benötigte Ressourcen (Rechenleistung, Speicher, ...) können ermittelt und in Form von Fees (Gebühren) abgeführt werden.<br />
<br />
== Weblinks ==<br />
* [https://www.stateofthedapps.com/de State of the DApps] - Verzeichnis von über 3.000 DApps auf Ethereum und weiteren Blockchains<br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=DApp&diff=271DApp2019-12-28T09:25:23Z<p>Viktor: </p>
<hr />
<div>Eine '''dezentrale Applikation''' ('''DApp''') ist ein Programm, das auf einem verteilten System arbeitet.<br />
<br />
Bekanntes Beispiel ist hier [[Ethereum]], wo DApps in Verbindung mit der [[Blockchain]] betrieben werden. Bei Ethereum kann sich eine DApp als ausführbares Programm vorgestellt werden, das auf den Nodes (Knoten) ausgeführt wird. Benötigte Ressourcen (Rechenleistung, Speicher, ...) können ermittelt und in Form von Fees (Gebühren) abgeführt werden.<br />
<br />
== Weblinks ==<br />
* [https://www.stateofthedapps.com/de State of the DApps] - Verzeichnis von über 3.000 DApps auf Ethereum und weiteren Blockchains</div>Viktorhttps://www.vgkb.de/w/index.php?title=Dapp&diff=270Dapp2019-12-28T09:24:21Z<p>Viktor: Weiterleitung nach DApp erstellt</p>
<hr />
<div>#REDIRECT [[DApp]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Namenskonventionen_(Softwareentwicklung)&diff=269Namenskonventionen (Softwareentwicklung)2019-12-24T14:41:09Z<p>Viktor: Neu angelegt</p>
<hr />
<div>In der Softwareentwicklung bzw. im Software Engineering sind '''Namenskonventionen''' das A und O, um eine einheitliche Struktur zu ermöglichen.<br />
<br />
Dies ist eine Sammlung von Ideen und vor allem '''Meinungen''', um eine eigene Namenskonvention zu finden. Es gibt keine Patentlösung, ich versuche nur, verschiedene Denkweisen zu beleuchten. Habe ich etwas vergessen? [[Projekt:Kontakt|Kontaktiere mich]] gerne!<br />
<br />
<blockquote><br />
There are only two hard things in Computer Science: cache invalidation and naming things.<br />
– <cite>Phil Karlton<ref>[http://quotesondesign.com/?p=2460 Cite source], [https://skeptics.stackexchange.com/questions/19836/has-phil-karlton-ever-said-there-are-only-two-hard-things-in-computer-science Discussion]</ref></cite><br />
</blockquote><br />
<br />
== Q & A ==<br />
=== Relationsnamen: Plural oder Singular? ===<br />
<small>(gefunden auf [https://stackoverflow.com/questions/338156/table-naming-dilemma-singular-vs-plural-names Stack Overflow])</small><br />
<br />
Hier sind die Lager gespalten, hier sagen viele Singular<ref>[https://stackoverflow.com/a/5841297 Community Wiki]. Stack Overflow. Abgerufen am 2019-12-24.</ref> und viele Plural<ref>[https://stackoverflow.com/a/338174 Community Wiki]. Stack Overflow. Abgerufen am 2019-12-24.</ref>. Ich selber nutze grötenteils aber '''Singular'''.<br />
<br />
<br />
=== Package Namen: Plural oder Singular? ===<br />
<small>(gefunden auf [https://softwareengineering.stackexchange.com/questions/75919/should-package-names-be-singular-or-plural Stack Exchange Softeware Engineering])</small><br />
<br />
<blockquote>Use the '''plural''' for packages with '''homogeneous contents''' and the '''singular''' for packages with '''heterogeneous contents'''.<ref>Matthew Rodatus: [https://softwareengineering.stackexchange.com/a/75929 Should package names be singular or plural?]. Stack Exchange Software Engineering. Bearbeitet von Sergey Brunov. Abgerufen am 2019-12-24.</ref></blockquote><br />
Homogener Inhalt soll mit Plural benannt werden, heterogener mit Singular. Das wirkt erst einmal völlig konträr zu [[#Relationsnamen: Plural oder Singular?]], macht aber Sinn, wenn man sich ein Beispiel veranschaulicht:<br />
<br />
* Task'''s''' impliziert, dass sich im Package Klassen / Module / ... vom '''Typ''' Task befinden (→ homogen, Typ)<br />
* Task impliziert, dass sich im Package Klassen / Module / ... befinden, '''die etwas mit Task zu tun haben''' (→ heterogen, Kategorie)<br />
<br />
Weiterhin gilt: intuitiv lässt sich<br />
<br />
* ein TaskHandler, TaskBuilder, ... in Task verfügen und<br />
* eine CleanUpTask, RefreshTask, RebuildTask, ... eher in Tasks vermuten.<br />
<br />
Ähnlichkeiten gibt es beim Thema [https://english.stackexchange.com/questions/25713/what-is-the-difference-between-a-category-and-a-type category vs. type].<br />
<br />
== Einzelnachweise ==<br />
<references /></div>Viktorhttps://www.vgkb.de/w/index.php?title=Vorlage:Neue_Artikel&diff=268Vorlage:Neue Artikel2019-12-14T11:46:04Z<p>Viktor: </p>
<hr />
<div>* [[Merkle tree]], Datenstruktur für Integritätsschutz<br />
* [[Kryptowährung]], Definitionsartikel<br />
* [[Coinbase]], Quelle der Zahlungen bei Block Rewards<br />
* [[Block Reward]], Anreiz für das Mining in [[Proof of Work]]-Systemen</div>Viktorhttps://www.vgkb.de/w/index.php?title=Kategorie:Datenstruktur&diff=267Kategorie:Datenstruktur2019-12-14T11:45:03Z<p>Viktor: Die Seite wurde neu angelegt: „Kategorie:Informatik“</p>
<hr />
<div>[[Kategorie:Informatik]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Merkle_tree&diff=266Merkle tree2019-12-14T11:44:46Z<p>Viktor: Neu angelegt</p>
<hr />
<div>[[Datei:Hash Tree.svg|thumb|Ein Merkle tree]]<br />
<br />
Ein '''Merkle tree''' bzw. '''Hash tree''' oder '''Hash-Baum''' ist eine Datenstruktur. Diese Datenstruktur ist ein Baum, in dem jedes Blatt den Hashwert eines Datenblocks und jeder innere Knoten den Hashwert der jeweiligen Hashwerte der Kindsknoten trägt.<ref>„Hash-Baum“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 7. Juni 2019, 17:43 UTC. URL: https://de.wikipedia.org/w/index.php?title=Hash-Baum&oldid=189344507 (Abgerufen: 14. Dezember 2019, 11:30 UTC)</ref><ref>Wikipedia contributors, "Merkle tree," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Merkle_tree&oldid=927270752 (accessed December 14, 2019). </ref> Entwickelt und patentiert wurde die Datenstruktur von Ralph Merkle.<ref>[https://worldwide.espacenet.com/textdoc?DB=EPODOC&IDX=US4309569 US-Patent 4309569]. Ralph Merkle: Method of providing digital signatures. Veröffentlicht 1982.</ref><br />
<br />
== Anwendung ==<br />
Merkle trees werden heutzutage in verschiedenen Systemen eingesetzt. In der Versionsverwaltung [[Git]] stellen Sie die Integrität eines Repositories sicher. Darüberhinaus bilden sie die Grundlage für viele [[Blockchain]]-Implementierungen.<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Datenstruktur]]<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Hauptseite&diff=265Hauptseite2019-12-13T18:39:39Z<p>Viktor: Neues Design</p>
<hr />
<div>__NOTOC__<br />
<div style="border: 1px solid #e8e8e8; background-color: #F9F9F9; width: 100%; min-height: 100px;" id="header"><br />
<div style="float: left; width: 70%;" id="header-left"><br />
<div style="text-align: center;"><br />
<div style="font-size: 26px;"><br />
Willkommen im VGKB!<br />
</div><br />
<br />
Dieses Wiki ist eine Sammlung von Artikeln aus mathematischen und technischen Themenbereichen.<br />
</div><br />
</div><br />
<div style="margin-left: 80%; width: 20%;" id="header-right"><br />
Schnellzugriff:<br />
<br />
* [[:Kategorie:Themenbereich|Alle Themenbereiche]]<br />
* [[:Special:AllPages|Seitenindex]]<br />
</div><br />
</div><br />
<br />
<div style="width: 100%; text-align: center; font-size: 16px; margin-top: 5px; padding-top: 15px;"><br />
<strong>Beliebte Themenbereiche</strong><br />
<hr /><br />
{| style="font-variant: small-caps; text-align: center; margin: auto; overflow: auto; font-size: 18px;"<br />
|style="padding: 15px;"| [[File:Tux.svg|80px|link=Linux]] ||style="padding: 15px;"| [[File:Texmaker128.png|80px|link=LaTeX]] ||style="padding: 15px;"| [[File:OOjs UI icon math-progressive.svg|80px|link=Mathematik]] ||style="padding: 15px;"| [[File:Epiphany-bookmarks.svg|80px|link=Kurse]] ||style="padding: 15px;"| [[File:Gnome-fs-network.svg|80px|link=Netzwerke]] ||style="padding: 15px;"| [[File:Applications-internet.svg|85px|link=Internet]] ||style="padding: 15px;"| [[File:Nuvola apps kbluebox.svg|85px|link=Blockchain]]<br />
|-<br />
| [[Linux]] || [[LaTeX]] || [[Mathematik]] || [[Kurse]] || [[Netzwerke]] || [[Internet]] || [[Blockchain]]<br />
|}<br />
</div><br />
<br />
<div id="content" style="margin-top: 20px;"><br />
<div style="float: left; width: 50%;" id="left-pane"><br />
<div style="padding: 3px;"><br />
<!-- BOX 1 --><br />
<div style="background-color: #d6eaf8; border: 1px solid #2e86c1; width: 100%; min-height: 80px;"><br />
<div style="padding: 5px;"><br />
<div style="background-color: #a9cce3; font-size: 18px; padding: 5px; margin-bottom: 5px; font-weight: 800; border: 1px solid #d3d3d3;"><br />
<p style="margin: 0;">Artikel des Monats</p><br />
</div><br />
{{:Hauptseite/Artikel des Monats}}<br />
</div><br />
</div><br />
<!--/ BOX 1 --><br />
<!-- BOX 2 --><br />
<div style="background-color: #d6eaf8; border: 1px solid #2e86c1; width: 100%; min-height: 80px; margin-top: 5px;"><br />
<div style="padding: 5px;"><br />
<div style="background-color: #a9cce3; font-size: 18px; padding: 5px; margin-bottom: 5px; font-weight: 800; border: 1px solid #d3d3d3;"><br />
<p style="margin: 0;">Neue Artikel</p><br />
</div><br />
{{Neue Artikel}}<br />
</div><br />
</div><br />
<!--/ BOX 2 --><br />
</div><br />
</div><br />
<div style="float: left; width: 50%;" id="right-pane"><br />
<div style="padding: 3px;"><br />
<!-- BOX 1 --><br />
<div style="background-color: #fdebd0; border: 1px solid #eb984e; width: 100%; min-height: 80px;"><br />
<div style="padding: 5px;"><br />
<div style="background-color: #f5cba7; font-size: 18px; padding: 5px; margin-bottom: 5px; font-weight: 800; border: 1px solid #d3d3d3;"><br />
<p style="margin: 0;">Über das Wiki</p><br />
</div><br />
[[File:Crystal Clear app Internet Connection Tools.svg|80px|right]] Das '''vgar Knowledge Base''' (VGKB) ist ein Wiki, das aus dem 2016 gestarteten Blog [https://blog.v-gar.de/ vNotes] entstand und das Ziel hat, die How To-Artikel aus dem Blog systematisch zu bündeln und weitere Artikel aus mathematischen und technischen Bereichen zu entwickeln.<br />
<br />
Das VGKB wird von [https://www.v-gar.de/ Viktor Garske] betreut und geschrieben. Es versteht sich mehr als Einstiegsquelle und gibt keine Garantie auf Richtigkeit oder gar Vollständigkeit.<br />
</div><br />
</div><br />
<!--/ BOX 1 --><br />
<!-- BOX 2 --><br />
<div style="background-color: #fdebd0; border: 1px solid #eb984e; width: 100%; min-height: 80px; margin-top: 5px;"><br />
<div style="padding: 5px;"><br />
<div style="background-color: #f5cba7; font-size: 18px; padding: 5px; margin-bottom: 5px; font-weight: 800; border: 1px solid #d3d3d3;"><br />
<p style="margin: 0;">Kontakt und Unterstützung</p><br />
</div><br />
[[File:Mail+chat icon (partly blue).png|80px|right]] Das VGKB entsteht momentan als '''privates Projekt'''. Für Fragen, Ideen, Artikelwünsche oder Anregungen könnt ihr euch an die E-Mail-Adresse auf der [[Projekt:Kontakt|Kontaktseite]] wenden.<br />
<br />
Ich verzichte im VGKB bewusst auf Werbung und nervige Pop-ups. Kosten für Pflege der Artikel, Administration und Infrastruktur begleiche ich '''aus eigener Tasche'''. Wenn Dir meine Artikel gefallen oder geholfen haben, würde ich mich sehr freuen, '''wenn du mein Angebot unterstützt'''. Alle weiteren Informationen findest du auf der Seite '''[https://www.v-gar.de/sponsor/ Unterstützen]'''.<br />
</div><br />
</div><br />
<!--/ BOX 2 --><br />
</div><br />
</div><br />
</div><br />
<div style="clear: both;"></div></div>Viktorhttps://www.vgkb.de/w/index.php?title=Vorlage:Neue_Artikel&diff=264Vorlage:Neue Artikel2019-12-13T18:14:52Z<p>Viktor: Neu angelegt</p>
<hr />
<div>* [[Kryptowährung]], Definitionsartikel<br />
* [[Coinbase]], Quelle der Zahlungen bei Block Rewards<br />
* [[Block Reward]], Anreiz für das Mining in [[Proof of Work]]-Systemen<br />
* [[Best block chain]], anerkannte Blockkette</div>Viktorhttps://www.vgkb.de/w/index.php?title=Hauptseite/Artikel_des_Monats&diff=263Hauptseite/Artikel des Monats2019-12-13T18:06:07Z<p>Viktor: Neu angelegt</p>
<hr />
<div><includeonly><onlyinclude>[[File:Let's Encrypt Certificate Firefox example.png|125px|left|Zertifikatsanzeige im Mozilla Firefox für ein Let's Encrypt-Zertifikat]] Mit '''[[Let's Encrypt Wildcardzertifikate|Wildcardzertifikaten von Let's Encrypt]]''' es im Gegensatz zu "normalen" Zertifikaten möglich, die Gültigkeit eines Zertifikats auf eine unbestimmte Anzahl an DNS-Namen (i.d.R. Subdomains) zu erweitern. Während ein Zertifikat im Regelfall für eine fest definierte Domain gültig ist, wird mit einem Platzhalter, auch Wildcard genannt, der Geltungsbereich entsprechend erweitert. Ein Zertifikat für *.vgapps.de würde somit für www.vgapps.de, subdomain1.vgapps.de oder my-test.vgapps.de, nicht aber für vgapps.de oder www.test.vgapps.de gültig sein, da zwangsläufig das Domainlevel übereinstimmen muss. Die Einrichtung ist für dieses 2018 eingeführte Feature mit certbot möglich und erfolgt über einen DNS TXT-Record.</onlyinclude></includeonly><noinclude><br />
AdM-Box:<br />
<br />
<div style="width: 48%; border: 1px solid #e8e8e8; padding: 5px;"><br />
{{:Hauptseite/Artikel des Monats}}<br />
</div><br />
</noinclude></div>Viktorhttps://www.vgkb.de/w/index.php?title=Let%27s_Encrypt_Wildcardzertifikate&diff=262Let's Encrypt Wildcardzertifikate2019-12-13T18:00:44Z<p>Viktor: Typo</p>
<hr />
<div>[[File:Let's Encrypt Certificate Firefox example.png|thumb|Let's Encrypt ermöglicht seit März 2018<ref>vgl. [https://blog.v-gar.de/2018/03/lets-encrypt-wildcard-zertifikate-verfuegbar/ Blogartikel auf vNotes] sowie [https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579 Originalquelle]</ref> die Ausstellung von Wildcardzertifikaten]]<br />
Mit '''Wildcardzertifikaten''' es im Gegensatz zu "normalen" Zertifikaten möglich, die Gültigkeit eines Zertifikats auf eine unbestimmte Anzahl an DNS-Namen (i.d.R. Subdomains) zu erweitern. Während ein Zertifikat im Regelfall für eine fest definierte Domain gültig ist (z.B. <code>vgapps.de</code>), wird mit einem Platzhalter, auch ''Wildcard'' genannt, der Geltungsbereich entsprechend erweitert. Ein Zertifikat für <code>*.vgapps.de</code> würde somit für <code>www.vgapps.de</code>, <code>subdomain1.vgapps.de</code> oder <code>my-test.vgapps.de</code>, nicht aber für <code>vgapps.de</code> oder <code>www.test.vgapps.de</code> gültig sein, da zwangsläufig das Domainlevel übereinstimmen muss.<br />
<br />
== Vorteile und Nachteile ==<br />
Vorteil im Gegensatz zu fest definierten Zertifikaten ist:<br />
<br />
* die höhere Flexibilität (ein Zertifikat für alles)<br />
* Wartungsfreundlichkeit (es muss ebenfalls nur ein Zertifikat erneuert werden)<br />
<br />
Nachteile ergeben sich aus<br />
<br />
* dem höheren Aufwand bei der Verifikation (bisher nur DNS challenge) und<br />
* dem Missbrauchspotential (ein entwendetes, nicht gesperrtes Zertifikat kann auf weitere hierfür gültige Domains angewandt werden)<br />
<br />
== Wildcard-Zertifikat einrichten ==<br />
=== mit certbot ===<br />
{{Blogartikel|https://blog.v-gar.de/2018/03/lets-encrypt-wildcard-zertifikate-erstellen/}}<br />
<br />
Voraussetzungen:<br />
* Installation des ACME-Client [https://certbot.eff.org/ certbot]<br />
* Möglichkeit, TXT-Records in der DNS-Zone zu erstellen<br />
<br />
<syntaxhighlight lang="sh"><br />
certbot -d vgapps.de -d *.vgapps.de --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns certonly<br />
</syntaxhighlight><br />
<br />
{| class="wikitable"<br />
! Kommandoausschnitt !! Bedeutung<br />
|-<br />
| <code>certbot</code> || Executable (evtl. ist alternativ <code>./certbot-auto</code> benötigt, insb. bei Git-Version)<br />
|-<br />
| <code>-d vgapps.de</code> || Zertifikat soll für die eigentliche Domain gültig sein...<br />
|-<br />
| <code>-d *.vgapps.de</code> || ...sowie per Wildcard für alle Subdomains ersten Levels<br />
|-<br />
| <code>--server https://acme-v02.api.letsencrypt.org/directory</code> || API-Endpunkt spezifizieren (nur v2 unterstützt Wildcard)<br />
|-<br />
| <code>--manual</code> || manuelle challenge (nicht automatisierbar, insb. für renew wichtig)<br />
|-<br />
| <code>--preferred-challenges dns</code> || DNS challenge anwählen<br />
|-<br />
| <code>certonly</code> || nur Zertifikat holen, nicht weitere Dienste (Apache, ...) hierfür konfigurieren<br />
|}<br />
<br />
Mitunter muss neues Konto angelegt werden, weshalb die E-Mail-Adresse und eine Bestätigung der Nutzungsbedingungen (erneut) abgefragt werden.<br />
<br />
Hiernach (und dem OK, dass Let's Encrypt die IP der anfragenden Instanz öffentlich loggt) wird folgender Text (ähnlich und natürlich bezogen auf die konkreten Domaindaten) angezeigt:<br />
<br />
<pre>Please deploy a DNS TXT record under the name<br />
_acme-challenge.vgapps.de with the following value:<br />
<br />
3AAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhFU</pre><br />
<br />
Der Key muss nun als TXT-Record in der jeweiligen Zone angelegt werden. Danach Enter drücken.<br />
<br />
Hiernach wird, wenn die Optionen wie oben eingesetzt werden, noch ein weiterer Key angezeigt, den ihr auch in die Zone eintragen müsst, weil jede angefragte Domain eine eigene Challenge/Validierung benötigt. Und ja, es ist im DNS möglich, dass es zu einer Domäne mehrere Ressource Records gibt. Das Ganze kann dann z.B. in der Zone so aussehen:<br />
<br />
<pre>_acme-challenge.vgapps.de. 300 IN TXT "3AAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhFU"<br />
_acme-challenge.vgapps.de. 300 IN TXT "4BAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhAB"</pre><br />
<br />
Ist die Zone geupdatet und ihr habt euch über das Zone-Update vergewissert, kann dann nochmals mit Enter bestätigt werden, sodass die Domains validiert werden. Nach Erledigung sind die Certs wie immer unter /etc/letsencrypt/live/ verfügbar. Die TXT-Records werden bis zur renewal nicht mehr benötigt.<br />
<br />
Hinweis zur renewal: die Renewal kann aufgrund der Option <code>--manual</code> nicht wie üblich mit ''certbot renew'' durchgeführt werden, sondern erfordert, dass das gleiche oben angegebene Kommando nochmals ausgeführt wird. Hierbei wird glücklicherweise kein <code>-0001</code>-Unterordner erstellt.<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Linux]]<br />
[[Kategorie:Let's Encrypt]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Bitcoin/St%C3%BCckelung&diff=261Bitcoin/Stückelung2019-12-12T12:32:05Z<p>Viktor: Lesbarkeit</p>
<hr />
<div>Die '''Stückelung von Bitcoin''' ist wie folgt definiert: <br />
<br />
<big>1 Bitcoin (BTC) = 100.000.000 Satoshis (sat)</big>.<ref>[https://bitcoin.org/en/glossary/denominations Denominations], Bitcoin.org Developer Documentation Glossary, abgerufen am 2019-12-12</ref><br />
<br />
Darüberhinaus gibt es noch weitere Stückelungen:<br />
<br />
* 1 Bitcoin (BTC) = 1.000 Milli-Bitcoin (mBTC)<ref>siehe SI-Vorsätze</ref><br />
* 1 Bitcoin (BTC) = 1.000.000 Bits<ref>[https://bitcoin.org/de/faq#wird-die-begrenze-menge-von-bitcoins-keine-einschraenkung-darstellen Wird die begrenze Menge von Bitcoins keine Einschränkung darstellen?], Bitcoin.org FAQ, abgerufen am 2019-12-12</ref><br />
* 1 Milli-Bitcoin (mBTC) = 1.000 Bits<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Bitcoin]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Pow&diff=260Pow2019-12-12T09:35:23Z<p>Viktor: Weiterleitung nach Proof of Work erstellt</p>
<hr />
<div>#REDIRECT [[Proof of Work]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=PoW&diff=259PoW2019-12-12T09:35:02Z<p>Viktor: Weiterleitung nach Proof of Work erstellt</p>
<hr />
<div>#REDIRECT [[Proof of Work]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Proof_of_Work&diff=258Proof of Work2019-12-12T09:34:37Z<p>Viktor: Abkürzung</p>
<hr />
<div>[[File:Noto Emoji Oreo 26cf.svg|150px|right]]<br />
'''Proof of Work''' (Abkürzung: '''PoW''') ist ein verbreitetes Verfahren für einen [[Konsensalgorithmus]], dessen Merkmale ein Arbeitsnachweis sowie Asymmetrie sind. Dabei nehmen am Verfahren zwei Entitäten teil (im Folgenden [[Alice und Bob]]). Alice und Bob haben sich auf einen Proof of Work-Algorithmus geeignet. Gemäß diesem führt Alice mittelschwere Berechnungen durch, die Bob mit geringem Aufwand nachprüfen kann. Das Ausführen dieses Verfahrens im Zusammenhang mit der [[Blockchain]] wird auch als '''Mining''' bzw. '''Schürfen''' bezeichnet.<br />
<br />
== Vereinfachtes Beispiel ==<br />
[[File:PrimeDecompositionExample.svg|thumb|Primfaktorzerlegung am Beispiel 864]]<br />
Ein vereinfachtes Beispiel für eine solche Berechnung wäre eine Primfaktorzerlegung: die Zahl <math>424242</math> benötigt zur Faktorisierung mit einem in Python implementierten Algorithmus<ref>Algorithmensammlung: Zahlentheorie: Primfaktorisierung. (1. Juni 2018). Wikibooks, Die freie Bibliothek. Abgerufen am 15. November 2019, 10:51 von https://de.wikibooks.org/w/index.php?title=Algorithmensammlung:_Zahlentheorie:_Primfaktorisierung&oldid=852431.</ref> ca. 80 Schritte (und deutlich mehr CPU-Zyklen), um auf das Ergebnis <math>2 \cdot 3 \cdot 3 \cdot 7 \cdot 13 \cdot 37</math> zu kommen. Für Bob ist der Zerlegung vergleichsweise einfach zu überprüfen: er muss die Zahlen einfach nur wieder zusammenmultiplizieren und schauen, ob wieder die Ausgangszahl herauskommt.<ref group="Anm">Hier wird der Einfachheit halber vernachlässigt, dass Bob überprüfen müsste, ob die Faktoren auch wirklich prim sind, was zuungunsten der Laufzeit geht, sofern auf kein Time-Memory Tradeoff zurückgegriffen wird.</ref> Bei der Zahl 42424242 wären es für Alice bereits ~220 Schritte, bei 4242424242 über 1000.<br />
<br />
Soll dieser Arbeitsnachweis in Verbindung mit einer Nachricht (z.B. eines Blocks) erbracht werden, muss die Nachricht natürlich mit der Proof of Work-Aufgabe, im Folgenden Challenge genannt, verbunden werden, damit Alice nicht auf Vorrat Arbeitsnachweise für beliebige Nachrichten berechnen kann. Man könnte sich hier z.B. darauf einigen, die dezimalen ASCII-Werte der Nachricht zu konkatinieren, also die Zahlen hintereinander zu schreiben. Bei der Nachricht TEST und den ASCII-Werten T = 84, E = 69, S = 83 wäre das <math>84698384</math>.<br />
<br />
Das Verfahren, das hier mit einer Faktorisierung realisiert wurde, kann natürlich entsprechend ausgetauscht werden. In der Praxis kommen häufig (krytographische) ''Hashfunktionen'' vor: hier werden Eingangswerte einer (großen) Eingabemenge auf eine kleinere Zielmenge abgebildet. Dadurch, dass die Abbildung nicht injektiv ist, kann es also Hashwerte geben, die durch verschiedene Eingaben erzeugt werden können. Es ist möglich, eine 10 GB große ISO-Datei zu hashen – aus dem Hash lässt sich aber sehr unwahrscheinlich (abhängig vom Verfahren) eindeutig wieder die gleiche ISO-Datei ableiten. Deswegen ist hier auch die Rede von ''Einwegfunktionen''.<br />
<br />
== Anwendung in der Blockchain ==<br />
Bei vielen Blockchain-Systemen werden folgende Regeln für den Konsens aufgestellt:<br />
<br />
# Jeder Block enthält die Pflichtfelder "vorheriger Hash" und "Nonce".<br />
# Von jedem Block lässt sich ein Hash erzeugen.<br />
# Jeder Block ist genau dann gültig, wenn er eine festgelegte Aufgabe erfüllen kann.<br />
# Es wird der Zweig der Blockchain verwendet, der valide ist und den größten Arbeitsaufwand benötigte.<br />
<br />
Schematisch sieht das Verfahren so aus:<br />
<br />
[[Datei:Blockchain Proof of Work Schema German.png|800px|center]]<br />
<br />
Im Folgenden wird jeder Punkt genauer erläutert. Die Python-Beispiele sollen beim Verständnis helfen.<br />
<br />
=== Punkt 1: Datenstruktur ===<br />
Hier wird eine Festlegung zur Datenstruktur getroffen, damit die Blockchain als Solches funktioniert.<br />
<br />
<syntaxhighlight lang="python"><br />
class Block:<br />
prev_hash = None<br />
nonce = -1<br />
...<br />
</syntaxhighlight><br />
<br />
Der vorherige Hash <code>prev_hash</code> sorgt für die Verkettung durch den [[Merkle tree]] bzw. Hash-Baum, sodass die Blöcke in der Reihenfolge gehalten werden. Der <code>nonce</code> (Abkürzung sinnbildlich für "number used once") ist für die Challenge wichtig.<br />
<br />
=== Punkt 2: Hashing ===<br />
Der Block muss hashbar sein. Der Hash muss alle Informationen enthalten, die den Block eindeutig indentifzieren, d.h. im einfachsten Fall vorherigen Hash, Nonce sowie die eigentlichen Daten / Payload (z.B. Transaktionen).<br />
<br />
<syntaxhighlight lang="python"><br />
class Block:<br />
# -- Attribute aus Punkt 1 weggelassen --<br />
<br />
@property<br />
def block_string(self):<br />
return "{0}-{1}-{2}".format(self.prev_hash, self.data, self.nonce)<br />
<br />
def hash(self):<br />
return hashlib.sha256(bytes(self.block_string, "utf-8")).hexdigest()<br />
</syntaxhighlight><br />
<br />
In diesem Beispiel wird der Hashalgorithmus SHA256 eingesetzt. Der zu hashende Wert ist ein String, in dem alle wichtigen Informationen hintereinander geschrieben werden. Wie genau nun der String erzeugt wird, ist unerheblich. Das Verfahren muss allerdings immer das gleiche sein (damit zum Nachprüfen auch in drei Jahren für die SHA256-Eingabe der gleiche String generiert werden kann) und muss natürlich alle eindeutig identifzierbaren Informationen enthalten.<br />
<br />
=== Punkt 3: Aufgabe ===<br />
Hier liegt der Kern des Proof of Works. Damit ein Block als gültig angesehen werden kann, muss eine mittelschwere (aber trotzdem lösbare) Aufgabe gelöst werden. Bei Bitcoin muss z.B. der Hash am Anfang eine bestimmte Anzahl an Nullen haben. Dies ist schwer, weil der Hashalgorithmus für Diffusion (Lawineneffekt) und Konfusion (Einbahnstraße) ausgelegt ist: es muss also solange etwas an der Hashfunktioneneingabe geändert werden, bis ein Hash mit führenden Nullen herauskommt und die Aufgabe somit gelöst ist.<br />
<br />
Aber an welcher Stelle können wir jetzt noch was am Block ändern, damit wir den Eingabewert variieren können? Hier kommt der Nonce ins Spiel, dessen einzige Aufgabe in diesem Zusammenhang genau die Funktion als variabler Wert zum Verändern der Hashfunktioneingabe ist.<br />
<br />
<syntaxhighlight lang="python"><br />
class Block:<br />
# -- Attribute und Methoden aus vorherigen Punkten weggelassen --<br />
<br />
def mine(self, difficulty):<br />
found = False # initiale Werte setzen<br />
while not found: # arbeiten, bis found = True ist<br />
self.nonce += 1 # nonce um 1 erhoehen<br />
self.current_hash = self.hash() # hash des Blocks bilden<br />
# pruefen ob das Ergebnis so viele fuehrerende Nullen hat<br />
# wie in der Schwierigkeit vorgegeben<br />
if self.current_hash[0:difficulty] == "0" * difficulty:<br />
# wenn ja, found = True und somit Schleife abschliessen<br />
found = True<br />
</syntaxhighlight><br />
<br />
Diese Funktion <code>mine()</code> arbeitet so lange, bis die Aufgabe gelöst ist.<ref group="Anm">...oder der Wertebereich des Variablentypes überläuft und möglicherweise unvorhergesehen Dinge passieren</ref> Die difficulty ist hier in Form von "Anzahl führender Nullen" gegeben und kann je nach Anforderung der Blockchain variabel verändert werden. Je mehr führende Nullen benötigt werden, desto schwieriger ist praktisch die Berechnung.<br />
<br />
=== Punkt 4: Verfizierbarkeit ===<br />
[[File:Blockchain.svg|thumb|150px|Eine Blockchain. Alle schwarzen Blöcke gehören zu dem Zweig / Branch / Strang, der für die Knoten verbindlich ist.]]<br />
Anhand der im Block abgespeicherten Nonce kann nun die Aufgabe nun von anderen Teilnehmern nachgestellt werden und somit verifziert werden. Ist dies rekursiv bis zum [[Genesis-Block]], dem ersten Block (der keinen weiteren prev_hash hat), möglich, ist der Branch / Zweig valide.<br />
<br />
Hat man nun konkurrierende Blöcke, kann mit Rücksicht auf die Difficulty ermittelt werden, welcher den größten Aufwand hatte und somit nun verwendet wird.<br />
<br />
Beispiel: eine Blockchain hat die Difficulty 10 für alle Blöcke<ref group="Anm">In der Praxis verändert sich die Difficulty von Zeit zu Zeit.</ref>. Es liegen nun zwei konkurrierende Blöcke vor: ein schwarzer und ein lilafarbener Block (siehe Grafik rechts, gemeint sind die Blöcke ersten schwarzen resp. lilalen Blöcke von oben aus gesehen). Mit der Annahme, dass die Ketten für sich valide sind, kann nun die Anzahl der validaten Blöcke der jeweiligen Kette ermittelt werden. Bei Schwarz sind das 9, bei Lila 8. Multipliziert mit der Schwierigkeit 10 sind das für Schwarz 90 und für Lila 80. Der gültige Zweig ist nun der schwarze, da er mit dem höheren Aufwand erstellt wurde.<br />
<br />
Auffallen sollte hierbei die lilane Kette in der Mitte des Bildes: wenn man die Kette gedanklich durchgeht, lässt sich erkennen, dass zum Zeitpunkt in der Mitte des Bildes die lilane Kette die zu verwendende Blockchain hätte sein müssen. Das war auch so – allerdings hat sich herausgestellt, dass dieser Teil der Kette verwaist ist, weil er kein zukünftiger Block diesen Block als Vorgänger wählt. Die Transaktionen sind also vom verwaisten Zweig hinfällig.<br />
<br />
Aus diesem Grund sollte generell erst auf Informationen aus einem Block zurückgegriffen werden, wenn<br />
<br />
# dieser Block aus der Hauptkette stammt und<br />
# der Block eine bestimmte Anzahl von Nachfolgern hat.<br />
<br />
Die Anzahl der Nachfolger ist unterschiedlich, so wird bei Bitcoin üblicherweise auf den Wert 6 verwiesen.<br />
<br />
== Anmerkungen ==<br />
<references group="Anm" /><br />
<br />
== Siehe auch ==<br />
* Video [[Blockchain selber bauen]]<br />
** Quelltext für die Beispiele in diesem Artikel: [https://github.com/v-gar/yt-code/blob/master/blockchain/chain.py chain.py]<br />
<br />
== Weblinks ==<br />
* [https://en.bitcoin.it/wiki/Proof_of_work Proff of work im bitcoin.it-Wiki]<br />
* [https://www.torsten-horn.de/techdocs/ascii.htm ASCII-Tabelle]<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Bitcoin/St%C3%BCckelung&diff=257Bitcoin/Stückelung2019-12-12T09:31:48Z<p>Viktor: Neu angelegt</p>
<hr />
<div>Die '''Stückelung von Bitcoin''' ist wie folgt definiert: 1 Bitcoin (BTC) = 100.000.000 Satoshis (sat).<ref>[https://bitcoin.org/en/glossary/denominations Denominations], Bitcoin.org Developer Documentation Glossary, abgerufen am 2019-12-12</ref><br />
<br />
Darüberhinaus gibt es noch weitere Stückelungen:<br />
<br />
* 1 Bitcoin (BTC) = 1.000 Milli-Bitcoin (mBTC)<ref>siehe SI-Vorsätze</ref><br />
* 1 Bitcoin (BTC) = 1.000.000 Bits<ref>[https://bitcoin.org/de/faq#wird-die-begrenze-menge-von-bitcoins-keine-einschraenkung-darstellen Wird die begrenze Menge von Bitcoins keine Einschränkung darstellen?], Bitcoin.org FAQ, abgerufen am 2019-12-12</ref><br />
* 1 Milli-Bitcoin (mBTC) = 1.000 Bits<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Bitcoin]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Rust_Cookbook&diff=256Rust Cookbook2019-12-11T20:19:25Z<p>Viktor: </p>
<hr />
<div>Im '''[[Rust]] Cookbook''' sammle ich Codesnippets, die an der ein und anderen Stelle das Leben einfacher machen.<br />
<br />
== I/O ==<br />
=== Readline ohne Zeilenvorschub ===<br />
{{Blogartikel|https://blog.v-gar.de/2019/04/rust-zeilenvorschub-nach-eingabe-entfernen/}}<br />
Hier gibt es mehrere Wege der Umsetzung.<br />
<br />
'''Mit .pop():'''<br />
<syntaxhighlight lang="Rust"><br />
use std::io::{Write, stdin, stdout};<br />
<br />
fn main() {<br />
// Intro<br />
println!("-- INPUT Demo --");<br />
print!("Please enter something: ");<br />
stdout().flush().unwrap();<br />
<br />
// Input<br />
let mut inputvar: String = String::new(); <br />
stdin().read_line(&mut inputvar).expect("Error while data input"); <br />
inputvar.pop(); // remove trailing newline<br />
<br />
// Output<br />
println!("Eingabe: {}", inputvar);<br />
}<br />
</syntaxhighlight><br />
<br />
'''Bzw. dies als verbesserte cross-platform Version:'''<br />
<syntaxhighlight lang="Rust"><br />
fn trim_newline(s: &mut String) {<br />
while s.ends_with('\n') || s.ends_with('\r') {<br />
s.pop();<br />
}<br />
}<br />
</syntaxhighlight><br />
'''<br />
Oder noch kürzer und mit trim:'''<br />
<br />
<syntaxhighlight lang="Rust"><br />
let len = input.trim_end_matches(&['\r', '\n'][..]).len();<br />
input.truncate(len);<br />
</syntaxhighlight><br />
<br />
[[Kategorie:Rust]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Blockchain&diff=255Blockchain2019-12-11T20:17:50Z<p>Viktor: /* Grundlagen */</p>
<hr />
<div>[[File:Blockchain.svg|100px|right]]<br />
Der Themenbereich '''Blockchain''' behandelt die gleichnamige besondere Datenstruktur sowie das zugehörige Ökosystem.<br />
<br />
== Grundlagen ==<br />
* [[Konsensalgorithmus]]<br />
** [[Proof of Work]]<br />
** [[Proof of Stake]]<br />
** [[Proof of Burn]]<br />
* Besondere Blöcke:<br />
** [[Genesis-Block]]<br />
** [[Stale Block]]<br />
** [[Orphan Block]]<br />
* [[Fork (Blockchain)|Forks]]<br />
<br />
== Blockchain-Implementierungen ==<br />
* [[Bitcoin]]<br />
* [[Ethereum]]<br />
<br />
== Smart Contracts ==<br />
* [[Smart Contract]]<br />
* [[DApp]]<br />
<br />
[[Kategorie:Blockchain]]<br />
[[Kategorie:Themenbereich]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Fork_(Blockchain)&diff=254Fork (Blockchain)2019-12-11T20:17:23Z<p>Viktor: Hard Fork</p>
<hr />
<div>[[File:Open Iconic fork.svg|100px|right]]<br />
Ein '''Fork''' bezeichnet die Folgen innerhalb der [[Blockchain]] nach Änderung des [[Konsensalgorithmus]]. Dies geschieht in aller Regel nach Updates.<br />
<br />
Grundsätzlich können Forks bezüglich der Abwärtskompatibilität unterschieden werden. '''Soft Forks''' sind abwärtskompatibel, während '''Hard Forks''' ''nicht'' abwärtskompatibel sind.<br />
<br />
== Hard Fork ==<br />
Oft sind Hard Fork eine Folge von bestimmten Upgrades. Dies ist immer dann der Fall, wenn die Änderungen nicht abwärtskompatibel sind, also mit dem Upgrade Abläufe und Verhaltensweisen erlaubt werden, die vorher verboten waren. Wird ein Upgrade nicht von ausreichend Nutzern adaptiert, kann sich die Blockkette teilen. Dies zeigt das folgende Schema:<br />
<br />
[[Datei:Blockchain Hard Fork.png|thumb|450px|Schema eines Hard Forks]]<br />
<br />
Schauen wir uns das in der Grafik einmal an und fangen oberhalb der gestrichelten Linie an, wo Version 1 läuft: Blöcke werden wie üblich der Blockchain angefügt, indem sie auf einen Parent bzw. Elternteil verweisen. Somit lässt sich rekursiv der Weg zum Urblock, dem [[Genesis-Block]], zurückverfolgen. Das [[Proof of Work]]-Verfahren sagt weiterhin aus, dass Grundlage für neue Transaktionen die Kette an Blöcken ist („best block chain“), für die der meiste Aufwand in Form von Mining nötig war. So erklären sich auch die doppelten Blöcke mit der gleichen Nummer: sie gelten als [[Stale Block|„abgelaufen“ (stale)]], sofern eine andere Kette mehr Nachfolger hat. Soweit so gut – schauen wir uns nun den Bereich unterhalb der gestrichelten Linie an: hier wird Version 2 betrieben. Anfangs bei Block 99 verhält sich das System genau wie Version 1. Es ist allerdings einprogrammiert, dass ab Block 100 die Änderungen scharf gestellt werden. Das hat zur Folge, dass die dann weitergeführte Blockchain nicht mehr mit Version 1 kompatibel ist.<br />
<br />
Problematisch ist dies, weil somit double spending, das mehrfache Ausgeben des gleichen Coins, möglich wird: wer bis zum Block 99 einen Coin in seiner Wallet hatte, kann ihn nun auf beiden Chains zwei Mal ausgeben, da die Ketten nicht mehr miteinander kommunizieren können. Werden Coins aus der Version 1-Blockchain (ab Block 100) von einer Exchange sogar noch zum Handel angeboten, ist das Chaos perfekt: dann haben wir einen weiteren Altcoin (alternative coin) mit eigenem Kurs, etc. Da alte Vermögen (die von Block ≤ 99) ebenfalls gültig sind, haben wir quasi neue Token geschaffen – der Rest ist Auslegungssache vom Finanzamt.<br />
<br />
Um nicht durch die potentielle Fragmentierung Schaden zu erleiden, sind die Entwickler von solchen Systemen meist bemüht, eine hohe Adaption von Upgrades zu erreichen. Dazu aber später noch mehr.<br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Hard_Fork&diff=253Hard Fork2019-12-11T20:06:51Z<p>Viktor: Weiterleitung nach Fork (Blockchain) erstellt</p>
<hr />
<div>#REDIRECT [[Fork (Blockchain)]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Ethereum/Upgrades&diff=252Ethereum/Upgrades2019-12-11T20:05:59Z<p>Viktor: Bildgröße</p>
<hr />
<div>[[File:Ethereum_logo_2014.svg|thumb|100px|Ethereum-Logo]]<br />
Dieser Artikel gibt eine Übersicht über die verschiedenen '''Ethereum-Upgrades'''. Sie werden genutzt, um die Entwicklung des verteilten Systems zu ermöglichen. Upgrades führen nicht selten zu [[Hard Fork]]s.<br />
<br />
== Bisherige Upgrades ==<br />
Eine Übersicht bisheriger Upgrade ist u.a. [https://eth.wiki/en/roadmap im eth.wiki] verfügbar.<br />
<br />
== Istanbul ==<br />
{{Blogartikel|https://blog.v-gar.de/2019/12/ethereum-istanbul-upgrade/}}<br />
Das Upgrade mit dem Codenamen Istanbul wirkt ab Blocknummer [https://etherscan.io/block/9069000 9.069.000] und bringt für Ethereum einige Neuigkeiten mit:<br />
<br />
; [https://github.com/ethereum/EIPs/pull/2129 EIP-152]: soll Interoperabilität mit Zcash ermöglichen und verbessern<br />
; [https://eips.ethereum.org/EIPS/eip-1108 EIP-1108] und [https://eips.ethereum.org/EIPS/eip-2028 EIP-2028]: machen (Privatsphäre)funktionalitäten erschwinglicher, indem die Kosten für zk-SNAKS (zero knowledge-Instrumenten für bessere Privatsphäre) angepasst und die Gebühr (bei Ethereum sog. gas) von Calldata von 68 gas pro Byte auf 16 gas pro Byte gesenkt werden<br />
; [https://eips.ethereum.org/EIPS/eip-1884 EIP-1884]: hebt die Kosten (gas) für bestimmte opcodes an<br />
; [https://eips.ethereum.org/EIPS/eip-1344 EIP-1344]: fügt das <code>CHANID</code> opcode hinzu, um die korrekte Blockkette zu tracken<br />
; [https://eips.ethereum.org/EIPS/eip-2200 EIP-2200]: ändert das gas metering im Zusammenhang mit dem <code>SSTORE</code> opcode<br />
<br />
Die Umstellung erfolgte am 08. Dezember 2019 um 00:25:09 Uhr UTC.<br />
<br />
== Muir Glacier ==<br />
Muir Glacier wird ab Block [https://etherscan.io/block/9200000 9.200.000] (voraus. 31. Dezember 2019) und setzt [https://eips.ethereum.org/EIPS/eip-2384 EIP-2384] um.<br />
<br />
[[Kategorie:Ethereum]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Ethereum/Upgrades&diff=251Ethereum/Upgrades2019-12-11T20:05:31Z<p>Viktor: Neu angelegt</p>
<hr />
<div>[[File:Ethereum_logo_2014.svg|thumb|Ethereum-Logo]]<br />
Dieser Artikel gibt eine Übersicht über die verschiedenen '''Ethereum-Upgrades'''. Sie werden genutzt, um die Entwicklung des verteilten Systems zu ermöglichen. Upgrades führen nicht selten zu [[Hard Fork]]s.<br />
<br />
== Bisherige Upgrades ==<br />
Eine Übersicht bisheriger Upgrade ist u.a. [https://eth.wiki/en/roadmap im eth.wiki] verfügbar.<br />
<br />
== Istanbul ==<br />
{{Blogartikel|https://blog.v-gar.de/2019/12/ethereum-istanbul-upgrade/}}<br />
Das Upgrade mit dem Codenamen Istanbul wirkt ab Blocknummer [https://etherscan.io/block/9069000 9.069.000] und bringt für Ethereum einige Neuigkeiten mit:<br />
<br />
; [https://github.com/ethereum/EIPs/pull/2129 EIP-152]: soll Interoperabilität mit Zcash ermöglichen und verbessern<br />
; [https://eips.ethereum.org/EIPS/eip-1108 EIP-1108] und [https://eips.ethereum.org/EIPS/eip-2028 EIP-2028]: machen (Privatsphäre)funktionalitäten erschwinglicher, indem die Kosten für zk-SNAKS (zero knowledge-Instrumenten für bessere Privatsphäre) angepasst und die Gebühr (bei Ethereum sog. gas) von Calldata von 68 gas pro Byte auf 16 gas pro Byte gesenkt werden<br />
; [https://eips.ethereum.org/EIPS/eip-1884 EIP-1884]: hebt die Kosten (gas) für bestimmte opcodes an<br />
; [https://eips.ethereum.org/EIPS/eip-1344 EIP-1344]: fügt das <code>CHANID</code> opcode hinzu, um die korrekte Blockkette zu tracken<br />
; [https://eips.ethereum.org/EIPS/eip-2200 EIP-2200]: ändert das gas metering im Zusammenhang mit dem <code>SSTORE</code> opcode<br />
<br />
Die Umstellung erfolgte am 08. Dezember 2019 um 00:25:09 Uhr UTC.<br />
<br />
== Muir Glacier ==<br />
Muir Glacier wird ab Block [https://etherscan.io/block/9200000 9.200.000] (voraus. 31. Dezember 2019) und setzt [https://eips.ethereum.org/EIPS/eip-2384 EIP-2384] um.<br />
<br />
[[Kategorie:Ethereum]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Datei:Blockchain_Hard_Fork.png&diff=250Datei:Blockchain Hard Fork.png2019-12-07T13:50:54Z<p>Viktor: Viktor lud eine neue Version von Datei:Blockchain Hard Fork.png hoch</p>
<hr />
<div></div>Viktorhttps://www.vgkb.de/w/index.php?title=Hard_fork&diff=249Hard fork2019-12-07T13:43:09Z<p>Viktor: Weiterleitung nach Fork (Blockchain) erstellt</p>
<hr />
<div>#REDIRECT [[Fork (Blockchain)]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Kryptow%C3%A4hrung&diff=248Kryptowährung2019-12-07T13:04:36Z<p>Viktor: Neu angelegt</p>
<hr />
<div>Als '''Kryptowährung''' werden digitale Zahlungsmittel bezeichnet, die auf kryptographischen Werkzeugen und Verfahren basieren.<ref>Seite „Kryptowährung“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 4. Dezember 2019, 14:08 UTC. URL: https://de.wikipedia.org/w/index.php?title=Kryptow%C3%A4hrung&oldid=194630994 (Abgerufen: 7. Dezember 2019, 13:02 UTC)</ref> Dies umfasst oft digitale Signaturen und Datenstrukturen wie die [[Blockchain]].<br />
<br />
== Einzelnachweise == <br />
<references /></div>Viktorhttps://www.vgkb.de/w/index.php?title=Block_Reward&diff=247Block Reward2019-12-07T12:59:44Z<p>Viktor: ref fix</p>
<hr />
<div>Als '''Block Reward''' wird bei Kryptowährungen und [[blockchain]]-basierten Systemen ein Incentive (engl. Anreiz) bezeichnet, der dazu beiträgt, die (je nach Währung mitunter initiale) Menge an Token, den Währungseinheiten, zu verteilen.<ref>[https://bitcoin.org/en/glossary/block-reward Block Reward], Bitcoin Developer Glossary, abgerufen am 2019-12-07</ref><br />
<br />
Die Motivation liegt darin, dass z.B. Miner sich für das Mining Tokens aus der [[Coinbase]], der "Tokenquelle", auf ein eigens festgelegtes Konto transferieren können. Über das ''Verfahren'' des Block Rewards muss im gesamten System Konsens herrschen, da sonst andere Nodes diese Blöcke mit den besonderen Transkationen für invalide erklären könnten.<ref>[https://bitcoin.org/en/glossary/coinbase-transaction Coinbase transaction], Bitcoin Developer Glossary, abgerufen am 2019-12-07</ref><br />
<br />
== Siehe auch ==<br />
* [[Proof of Work]]<br />
* [[Bitcoin]]<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Blockchain]]<br />
[[Kategorie:Bitcoin]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Coinbase&diff=246Coinbase2019-12-07T12:58:55Z<p>Viktor: +Kategorie:Blockchain; +Kategorie:Bitcoin using HotCat</p>
<hr />
<div>Unter der '''Coinbase''' versteht sich bei [[Bitcoin]] ein spezielles Feld in sog. '''Coinbase transactions''', das als Quelle für die [[Block Reward]]s eingesetzt wird.<ref>[https://bitcoin.org/en/glossary/coinbase Coinbase], Bitcoin Developer Glossary, abgerufen 2019-12-07</ref><br />
<br />
== Weblinks ==<br />
* [https://bitcoin.stackexchange.com/q/4571 What is the coinbase?], Frage auf der StackExchange<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Blockchain]]<br />
[[Kategorie:Bitcoin]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Coinbase&diff=245Coinbase2019-12-07T12:58:40Z<p>Viktor: Neu angelegt</p>
<hr />
<div>Unter der '''Coinbase''' versteht sich bei [[Bitcoin]] ein spezielles Feld in sog. '''Coinbase transactions''', das als Quelle für die [[Block Reward]]s eingesetzt wird.<ref>[https://bitcoin.org/en/glossary/coinbase Coinbase], Bitcoin Developer Glossary, abgerufen 2019-12-07</ref><br />
<br />
== Weblinks ==<br />
* [https://bitcoin.stackexchange.com/q/4571 What is the coinbase?], Frage auf der StackExchange<br />
<br />
== Einzelnachweise ==<br />
<references /></div>Viktorhttps://www.vgkb.de/w/index.php?title=Block_Reward&diff=244Block Reward2019-12-07T12:52:13Z<p>Viktor: Neu angelegt</p>
<hr />
<div>Als '''Block Reward''' wird bei Kryptowährungen und [[blockchain]]-basierten Systemen ein Incentive (engl. Anreiz) bezeichnet, der dazu beiträgt, die (je nach Währung mitunter initiale) Menge an Token, den Währungseinheiten, zu verteilen.<ref>[https://bitcoin.org/en/glossary/block-reward Block Reward], bitcoin.it-Wiki, abgerufen am 2019-12-07</ref><br />
<br />
Die Motivation liegt darin, dass z.B. Miner sich für das Mining Tokens aus der [[Coinbase]], der "Tokenquelle", auf ein eigens festgelegtes Konto transferieren können. Über das ''Verfahren'' des Block Rewards muss im gesamten System Konsens herrschen, da sonst andere Nodes diese Blöcke mit den besonderen Transkationen für invalide erklären könnten.<ref>[https://bitcoin.org/en/glossary/coinbase-transaction Coinbase transaction], bitcoin.it-Wiki, abgerufen am 2019-12-07</ref><br />
<br />
== Siehe auch ==<br />
* [[Proof of Work]]<br />
* [[Bitcoin]]<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Blockchain]]<br />
[[Kategorie:Bitcoin]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Stale_Block&diff=243Stale Block2019-12-07T12:41:21Z<p>Viktor: Typo</p>
<hr />
<div>[[Datei:Blockchain Stale Block.png|thumb|Ausschnitt einer Blockchain mit Stale Blocks (grau) und der [[best block chain]] (grün)]]<br />
Als '''Stale Block''' wird in der [[Blockchain]] ein Block bezeichnet, der valide ist, aber nicht mehr der längsten Blockkette bzw. dem anerkannten Blockchain-Zweig, angehört. Alle Transaktionen des Blocks, sofern sie nicht im anerkannten Blockchain-Zweig trotzdem enthalten sind, sind somit nicht mehr verfügbar bzw. "ungeschehen". Für übliche Transaktionen ist dies vernachlässigbar, da sie mit hoher Wahrscheinlichkeit in der Menge der anderen konkurrendierenden Blöcken enthalten sind, aus deren Mitte dann der anerkannte Blockchain-Zweig weitergeführt wird.<br />
<br />
Entscheidend für Miner ist allerdings, dass der [[Block Reward]], der sich für erfolgreiches Mining zugerechnet werden darf, ebenfalls nicht mehr verfügbar ist. Da diese Block Reward-Transaktion nur im "geminten" Block und nicht im Mempool vorliegt, wird sie auch nicht in anderen Blöcken vorkommen. (Oder wer will schon auf seinen Reward verzichten und ihn der Konkurrenz geben?)<br />
<br />
Stale Blocks sind meist gemeint, wenn von [[Orphan Block]]s die Rede ist, da beide Terme oft verwechselt werden.<br />
<br />
== Siehe auch ==<br />
* [[Proof of Work]]<br />
<br />
== Weblinks ==<br />
* [https://bitcoin.org/en/glossary/stale-block Stale Block], Bitcoin.org Developer Documentation Glossary, abgerufen am 2019-12-07<br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Best_block_chain&diff=242Best block chain2019-12-07T12:40:44Z<p>Viktor: Die Seite wurde neu angelegt: „In dieser Grafik gehören alle schwarzen sowie der grüne [[Genesis-Block zur best block chain]] Als '''best block chain'''…“</p>
<hr />
<div>[[File:Blockchain.svg|thumb|100px|In dieser Grafik gehören alle schwarzen sowie der grüne [[Genesis-Block]] zur best block chain]]<br />
Als '''best block chain''' wird die Kette an Blöcken in einer [[Blockchain]] bezeichnet, für deren Blöcke gemeinsamer Konsens herrscht. Im Bezug auf das [[Proof of Work]]-Verfahren wäre dies die Kette, für deren Neuerstellung (mining) der höchste Aufwand erforderlich ist.<ref>[https://bitcoin.org/en/glossary/block-chain Block chain], bitcoin.it-Wiki, abgerufen am 2019-12-07</ref><br />
<br />
== Siehe auch ==<br />
* [[Stale Block]], Blöcke, die valide sind und nicht zur best block chain gehören<br />
<br />
== Einzelnachweise ==<br />
<references /><br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Stale_Block&diff=241Stale Block2019-12-07T12:36:17Z<p>Viktor: Bild</p>
<hr />
<div>[[Datei:Blockchain Stale Block.png|thumb|Ausschnitt einer Blockchain mit Stale Blocks (grau) und der [[best block chain]] (grüne)]]<br />
Als '''Stale Block''' wird in der [[Blockchain]] ein Block bezeichnet, der valide ist, aber nicht mehr der längsten Blockkette bzw. dem anerkannten Blockchain-Zweig, angehört. Alle Transaktionen des Blocks, sofern sie nicht im anerkannten Blockchain-Zweig trotzdem enthalten sind, sind somit nicht mehr verfügbar bzw. "ungeschehen". Für übliche Transaktionen ist dies vernachlässigbar, da sie mit hoher Wahrscheinlichkeit in der Menge der anderen konkurrendierenden Blöcken enthalten sind, aus deren Mitte dann der anerkannte Blockchain-Zweig weitergeführt wird.<br />
<br />
Entscheidend für Miner ist allerdings, dass der [[Block Reward]], der sich für erfolgreiches Mining zugerechnet werden darf, ebenfalls nicht mehr verfügbar ist. Da diese Block Reward-Transaktion nur im "geminten" Block und nicht im Mempool vorliegt, wird sie auch nicht in anderen Blöcken vorkommen. (Oder wer will schon auf seinen Reward verzichten und ihn der Konkurrenz geben?)<br />
<br />
Stale Blocks sind meist gemeint, wenn von [[Orphan Block]]s die Rede ist, da beide Terme oft verwechselt werden.<br />
<br />
== Siehe auch ==<br />
* [[Proof of Work]]<br />
<br />
== Weblinks ==<br />
* [https://bitcoin.org/en/glossary/stale-block Stale Block], Bitcoin.org Developer Documentation Glossary, abgerufen am 2019-12-07<br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Datei:Blockchain_Stale_Block.png&diff=240Datei:Blockchain Stale Block.png2019-12-07T12:34:31Z<p>Viktor: </p>
<hr />
<div></div>Viktorhttps://www.vgkb.de/w/index.php?title=Stale_Block&diff=239Stale Block2019-12-07T12:27:26Z<p>Viktor: Orphan Blocks</p>
<hr />
<div>Als '''Stale Block''' wird in der [[Blockchain]] ein Block bezeichnet, der valide ist, aber nicht mehr der längsten Blockkette bzw. dem anerkannten Blockchain-Zweig, angehört. Alle Transaktionen des Blocks, sofern sie nicht im anerkannten Blockchain-Zweig trotzdem enthalten sind, sind somit nicht mehr verfügbar bzw. "ungeschehen". Für übliche Transaktionen ist dies vernachlässigbar, da sie mit hoher Wahrscheinlichkeit in der Menge der anderen konkurrendierenden Blöcken enthalten sind, aus deren Mitte dann der anerkannte Blockchain-Zweig weitergeführt wird.<br />
<br />
Entscheidend für Miner ist allerdings, dass der [[Block Reward]], der sich für erfolgreiches Mining zugerechnet werden darf, ebenfalls nicht mehr verfügbar ist. Da diese Block Reward-Transaktion nur im "geminten" Block und nicht im Mempool vorliegt, wird sie auch nicht in anderen Blöcken vorkommen. (Oder wer will schon auf seinen Reward verzichten und ihn der Konkurrenz geben?)<br />
<br />
Stale Blocks sind meist gemeint, wenn von [[Orphan Block]]s die Rede ist, da beide Terme oft verwechselt werden.<br />
<br />
== Siehe auch ==<br />
* [[Proof of Work]]<br />
<br />
== Weblinks ==<br />
* [https://bitcoin.org/en/glossary/stale-block Stale Block], Bitcoin.org Developer Documentation Glossary, abgerufen am 2019-12-07<br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Orphan_Block&diff=238Orphan Block2019-12-07T12:25:48Z<p>Viktor: Neu angelegt</p>
<hr />
<div>[[File:Blockchain Orphan Block.png|thumb|Orphan Block in einer Blockchain mit insgesamt 5 Blöcken]]<br />
Unter einem '''Orphan Block''' (engl. ''verwaister'' Block) wird ein Block verstanden, für den auf der lokalen Node kein parent (Elternblock) gefunden werden kann. Auf der Node ist er durch die nicht mögliche Verifizierbarkeit somit invalide.<br />
<br />
Fälschlicherweise werden Orphan Blocks oft mit [[Stale Block]]s verwechselt: valide Blöcke, die allerdings nicht Teil der [[best block chain]] sind, werden als Stale Blocks bezeichnet.<br />
<br />
== Weblinks ==<br />
* [https://en.bitcoin.it/wiki/Orphan_Block Orphan Block] im bitcoin.it-Wiki<br />
<br />
[[Kategorie:Blockchain]]</div>Viktorhttps://www.vgkb.de/w/index.php?title=Datei:Blockchain_Orphan_Block.png&diff=237Datei:Blockchain Orphan Block.png2019-12-07T11:52:28Z<p>Viktor: </p>
<hr />
<div></div>Viktor