Geth 1.6 – Puppeth-Meister

Das Team von Go Ethereum hat viel mehr Leckereien als ursprünglich erwartet und ist stolz darauf, endlich die erste Inkarnation der 1.6 Geth-Release-Serie zu liefern! Wenn man sich die Commit-Liste anschaut, wird dies ein Monster-Post!

Toml-Konfigurationsdateien

Seit sehr langer Zeit haben die Leute darum gebeten, dass wir Konfigurationsdateien unterstützen, um beim Wechseln zwischen verschiedenen öffentlichen und Piratenketten zu helfen. Wir haben uns nicht sehr auf private Netzwerke konzentriert, also haben wir die Leute immer darauf hingewiesen, in diesen Fällen Shell-Skripte zu verwenden. Obwohl sie für viele Szenarien geeignet sind, sind Shell-Skripte nicht auf verschiedene Betriebssysteme übertragbar, insbesondere nicht auf Unix und Windows.

Auf vielfachen Wunsch hin haben wir die gesamte Konfiguration und das Flag-Handling für Geth 1.6 überarbeitet und endlich Unterstützung für diese vielgewünschte Funktion bereitgestellt. Die Konfigurationsdatei verwendet das TOML-Format und die Felder, die gesetzt werden können, werden eins zu eins den Konfigurationsstrukturen zugeordnet go-ethereum verwendet intern. Bestimmte Felder wurden ausgelassen, um zu verhindern, dass sensible Daten in Konfigurationsdateien zirkulieren.

Es kann entmutigend sein, herauszufinden, wie Sie eine “richtige” Konfigurationsdatei für Ihren Knoten mit allen korrekten Feldern erstellen, die genau so eingerichtet sind, wie Sie es möchten – wie auch immer die Feldnamen lauten. Stattdessen wird Geth 1.6 mit einem Befehl ausgeliefert, den Sie aufrufen können, um genau die Konfigurationsdatei zu drucken, die Sie benötigen, basierend auf Ihren benutzerdefinierten Aufruf-Flags (geth –your-favorite-flags dumpconfig). Dieser Dump kann dann über geladen werden geth –config yourfile.toml. Wir planen auch, das Einbetten der Genesis-Konfigurationen zu ermöglichen, aber das erfordert etwas mehr Überlegung, um es abzuschließen.

Reines Go ethash

Ethereum hatte von Anfang an eine C-Ethash-Implementierung, die von den verschiedenen Clients geteilt wurde. Dies trug dazu bei, den Wartungsaufwand zu reduzieren, während sich der Algorithmus weiterentwickelte, auf Kosten des Hinzufügens eines großen Teils nicht trivialen C-Codes go-ethereum.

Dies begann im Laufe der Zeit immer mehr zu schmerzen. Ohne C-Kenntnisse im Go Ethereum-Team konnten wir Leistungsprobleme nicht richtig handhaben und von Natur aus keine Optimierungen implementieren, die für mobile Geräte unerlässlich sind. Das Design von C ethash verhindert, dass es auf Big-Endian-Prozessoren läuft, die ein invasives Redesign erfordern würden. Schließlich beeinträchtigt die Abhängigkeit von C-Code unsere Portabilität und Wartbarkeit erheblich.

Beginnend mit Geth 1.6 haben wir unsere Verwendung des ursprünglichen C ethash eingestellt und es vollständig in Go neu implementiert. Dies ermöglicht es uns, Mining-DAGs gleichzeitig auf allen verfügbaren CPUs zu generieren, alte Mining-DAGs zu rotieren, anstatt sie auf unbestimmte Zeit zu speichern, speicherabgebildete Überprüfungs-Caches zu verwenden, die für schnelle mobile Startzeiten unerlässlich sind, und auf jeder Plattform auszuführen, die Go unterstützt. Einzelheiten, Leistungszahlen und CLI-Flags finden Sie in der Pure Go ethash PR.

Router-CPU-Kompatibilität

Wir waren immer stolz darauf, die zu unterstützen go-ethereum Codebasis auf einer Vielzahl exotischer Plattformen, die durch das Gewicht eines vollständigen Knotens stark eingeschränkt waren. Da der Light-Client jedoch langsam ausgereift ist, macht es immer mehr Sinn, unsere Plattformen in zuvor nicht realisierbare Richtungen zu erweitern.

Mit der Release-Familie 1.6 von Geth gehen wir weiter an die Grenzen, indem wir die Unterstützung für MIPS-CPUs einführen, die am häufigsten in Verbraucher-Routergeräten zu finden sind. Geth 1.6 läuft auf 64-Bit- und 32-Bit-MIPS-CPUs sowohl im Little-Endian- als auch im Big-Endian-Modus (mit freundlicher Genehmigung unseres neuen Ethash-Codes). Auf unserer Download-Seite finden Sie ab sofort vorgefertigte stabile und entwickelte Binärdateien für diese MIPs-CPUs.

Obwohl wir erfolgreich einen Consumer-Router ins Mainnet gestellt haben, gibt es noch viel zu tun, um das Erlebnis reibungslos zu gestalten. Der bemerkenswerteste Engpass ist die Speicherhärte von Ethash, die nicht zu vernachlässigende Mengen an Speicherplatz und Speicherkapazität erfordert … ein Grund mehr, auf PoS umzusteigen! 😉

Plugable Konsens-Engines

In den letzten Releases haben wir langsam daran gearbeitet, konsensbezogene Konzepte in unserer Codebasis zu abstrahieren, mit dem langfristigen Ziel, uns auf Casper und Proof-of-Stake vorzubereiten. Es war ein Feature mit niedrigerer Priorität, da so viele andere Aufgaben herumhingen. Die Prioritäten änderten sich, als das Ropsten-Testnetz durch Spam in einen unbrauchbaren Zustand versetzt wurde.

Die eigentliche Ursache für den Erfolg des Angriffs war, dass ein Proof-of-Work-Netzwerk nur so sicher ist wie die dahinter liegende Rechenkapazität. Ein Neustart eines neuen Testnetzes von Null würde nicht viel lösen, da ein Angreifer denselben Angriff immer wieder durchführen könnte. Die Zeit schien reif, sich um das darin enthaltene Konsensmodell zu bemühen go-ethereum und ermöglichen die Verwendung von Alternativen zum Proof-of-Work für kleinere Netzwerke, in denen ein anderes Sicherheitsmodell besser geeignet ist.

Das Ergebnis ist, dass Geth 1.6 ein austauschbares Konsensmodell bietet, bei dem Entwickler, die ihre eigene Gabel von Ethereum mit völlig unterschiedlichen Möglichkeiten zur Vereinbarung der Blockgültigkeit entwickeln möchten, dies jetzt tun können, indem sie eine einfache Go-Konsens-Engine-Schnittstelle implementieren. Das aktuelle ethash-gestützte Proof-of-Work-Konsensmodell ist auch „nur“ eine weitere Implementierung dieser Schnittstelle.

Clique-PoA-Protokoll (Proof-of-Authority).

Nachdem das alte Ropsten-Testnetz den Bach runtergegangen war, bemühten sich verschiedene Gruppen, ein neues Testnetz zu erstellen, das zu ihnen passen würde, aber für andere möglicherweise oder auch nicht sehr geeignet ist. Diese Bemühungen brachte ein umgekehrtes Ropsten-Testnetz des Parity-Teams hervor (das sich auf benutzerdefinierten Soft-Fork-Code, Bootnodes und Blacklists stützte) und das Kovan-Testnetz eines Parity-Konglomerats (das sich auf eine damals undokumentierte Parity-Konsens-Engine stützte). Beide Lösungen sperren andere Clients aus.

Unsere Lösung bestand darin, eine clientübergreifende Proof-of-Authority-Konsens-Engine namens Clique (EIP 255) vorzuschlagen. Die wichtigsten Designüberlegungen hinter Clique waren Einfachheit (d. h. Minimierung des Aufwands für das Hinzufügen zu verschiedenen Clients) und Kompatibilität (d. h. Unterstützung vorhandener Synchronisierungstechnologien in alle Kunden). Der Vorschlag wurde am 17. März 2017 von allen Kundenentwicklern angenommen.

Mit unserer Version 1.6.0 go-ethereum bietet auch eine vollständige Implementierung der Clique Proof-of-Authority Consensus Engine. Zusätzlich zu allen konsensbezogenen Funktionen unterstützt die Engine auch anpassbare Blockzeiten für private Netzwerkszenarien. Wie Sie Ihr eigenes Clique-Netzwerk erstellen können … 😉

Puppeth-Netzwerkmanager

Bauen Sie gerne ein privates Netzwerk auf? Beantworte das nicht! Um die Wahrheit zu sagen, wenn Sie jemals versucht haben, Ihr eigenes privates Ethereum-Netzwerk aufzubauen – sei es aus freundlichem Spaß, Unternehmensarbeit oder Hackathon-Hilfe –, werden Sie sicherlich wissen, wie mühsam dies ist. Das Konfigurieren eines Genesis-Blocks ist eine Sache, aber wenn Sie zu Bootnodes, Full Nodes, Minern und Light Clients kommen, werden die Dinge schnell dünn … und wir haben noch nicht einmal über Überwachung, Explorer, Faucets, Wallets gesprochen. Es ist ein Chaos.

Geth 1.6 enthält ein neues Tool namens Marionette, das darauf abzielt, diesen speziellen Schmerzpunkt zu lösen. Puppeth ist ein CLI-Assistent, der beim Erstellen eines neuen Ethereum-Netzwerks bis hin zu Genesis, Bootnodes, Unterzeichnern, Ethstats, Faucet, Dashboard und mehr hilft, ohne den Aufwand, der normalerweise erforderlich wäre, um alle diese Dienste einzeln zu konfigurieren. Puppeth verwendet ssh, um sich in entfernte Server einzuwählen, und baut seine Netzwerkkomponenten mithilfe von docker-compose aus Docker-Containern auf. Der Benutzer wird über einen Befehlszeilenassistenten durch den Prozess geführt, der die schwere Arbeit und die Topologiekonfiguration automatisch hinter den Kulissen durchführt.

Puppeth ist keine Wunderwaffe. Wenn Sie über große interne Ethereum-Bereitstellungen verfügen, die auf Ihren eigenen Orchestrierungstools basieren, ist es immer besser, die vorhandene Infrastruktur zu nutzen. Wenn Sie jedoch ohne viel Aufhebens Ihr eigenes Ethereum-Netzwerk erstellen müssen, könnte Ihnen Puppeth tatsächlich dabei helfen … schnell. Alles wird in Containern bereitgestellt, sodass Ihr System nicht mit seltsamen Paketen übersät wird. Allerdings ist es die erste Veröffentlichung von Puppeth, gehen Sie also vorsichtig vor und versuchen Sie, es nicht auf kritischen Systemen bereitzustellen.

Rinkeby-Testnetz

Wie bereits in diesem Beitrag erwähnt, ist das Ropsten-Testnetz vor einigen Monaten auseinandergefallen. Es gibt laufende Bemühungen, es wiederzubeleben, da es ein wertvoller Bestandteil des Ethereum-Ökosystems ist. Dennoch halten wir es für unerlässlich, Entwicklern ein Netzwerk zur Verfügung zu stellen, auf das sie sich verlassen können und das nicht so leicht angegriffen werden kann. Ein solches Netzwerk ist die zweite Hälfte des EIP 255-Vorschlags, das Rinkeby-Testnetz.

Am 10. April haben wir die Alpha-Version von Rinkeby gestartet, einem neuen Proof-of-Authority-Testnetz, das auf dem Clique-Protokoll basiert. Rinkeby wird derzeit von drei (3) Signaturknoten der Foundation unterstützt, aber wir freuen uns auch darauf, externe Einrichtungen zu fördern, damit die Widerstandsfähigkeit des Netzwerks gefördert werden kann. Das Netzwerk verfügt auch über einen öffentlichen GitHub-authentifizierten Faucet, der für alle unter den gleichen Bedingungen zugänglich ist. Warum es sich um eine Alpha-Version handelt, Rinkeby ist die erste Live-Inkarnation von Clique, und wir müssen noch sehen, wie es sich unter globaler Last schlägt.

Also, wie können Sie darauf zugreifen? Da es sich um Alpha handelt, haben wir Geth 1.6 noch kein Flag dafür hinzugefügt, aber wir haben uns sehr bemüht, es mehr als trivial zu machen, es zu verbinden und zu verwenden … über seine eigene Website unter https://www.rinkeby. io/! Dashboard, Ethstats, Faucet und Konnektivitäts-Tutorials für Geth, Wallet/Mist und Android/iOS! Wenn Sie sich fragen, wie wir das alles gemacht haben, Puppeth natürlich! Dies ist wofür Puppeth geboren wurde, und Sie können dasselbe auch für Ihre eigenen privaten Netzwerke haben!

Schwarmdaten montieren

Wenn Sie unsere experimentelle Schwarm-Implementierung schon einmal verwendet haben, wissen Sie, dass das Arbeiten mit Dateien recht einfach ist, aber wenn es darum geht, mit ganzen Ordnern – möglicherweise verschachtelt – zu arbeiten, kann es umständlich werden. Gut für ein Programm, aber weniger für die manuelle Benutzerinteraktion.

Um diesen Mangel zu beheben, bietet die Swarm-Implementierung, die mit unserer aktuellen Version geliefert wird, einige Meilensteinfunktionen, insbesondere die Möglichkeit, ganze Verzeichnisse über Tarball-Streams in der HTTP-Schnittstelle hoch- und herunterzuladen sowie einen ganzen Ordner in Ihr lokales Dateisystem einzuhängen SICHERUNG! Dies sollte Swarm sowohl für Dateisicherungszwecke als auch für das einfache Durchsuchen komplexer Verzeichnisstrukturen viel praktikabler machen.

Abgesehen von diesen netten Funktionen sah Swarm verschiedene Stabilitätsverbesserungen und Bugfixes, erhielt die Möglichkeit, Manifeste über die Befehlszeile zu manipulieren und daraus Listen/Sitemaps zu erstellen.

64-Bit-Gasberechnungen

Das Ethereum Yellow Paper gibt an, dass Gas, das in Transaktionen enthalten ist, einen beliebigen Wert bis zu der lächerlichen Menge von 2^256 haben kann (was fast so viele Transaktionen abdecken könnte wie die Anzahl der Atome im bekannten Universum). Als solche ist die go-ethereum EVM wurde implementiert, um mit diesen wahnsinnig großen Zahlen für Gasberechnungen zu arbeiten gleich große Leistungseinbußen beim Ausführen jeder Transaktion.

Da es einfach keinen sinnvollen Grund gibt, Big-Number-Arithmetik für Gasberechnungen zu verwenden, hat Geth 1.6 auf die Arbeit mit 64-Bit-Werten umgestellt, was ein nativer hardwareunterstützter Typ auf jeder modernen CPU ist. Wenn Sie sich fragen, ob dies eine Einschränkung darstellen würde, könnte ein einzelner Block mit einem Gaslimit von 64 Bit in 44-mal mehr Transaktionen passen als die Anzahl der roten Blutkörperchen im menschlichen Körper. Ich denke, wir sind auf absehbare Zeit sicher.

In Bezug auf die Leistungsverbesserung haben wir keine genaue Zahl, aber man kann mit Sicherheit sagen, dass das Einsparen von Hunderten von Speicherzuweisungen bei jeder einzelnen Transaktion keine schlechte Sache sein kann.

Schlußbemerkungen

Neben allen oben genannten hervorgehobenen Funktionen a Zahlreiche Fehlerkorrekturen wurden ebenfalls integriert, von Ethstats-Berichten über Singleton-Miner-Netzwerke bis hin zu Fixes für die Verbreitung von Sterntopologien und mehr. Bitte überprüfen Sie die Versionshinweise zu Geth 1.6.0 für einen komprimierten Überblick.

Weitere kleinere Features sind ständige Verbesserungen des Light-Protokolls, umfangreiche Weiterentwicklung des Whisper-Protokolls (das einer öffentlichen v5-Veröffentlichung sehr nahe kommt) und wir haben sogar unser gesamtes Protokollierungssystem gegen eine viel schönere und robustere Version ausgetauscht.

Wie immer können Sie Geth über Ihren bevorzugten Paketmanager installieren oder eine vorgefertigte Binärdatei für eine Vielzahl von unterstützten Plattformen herunterladen.

Fröhliches Puppenspiel! Die go-ethereum Autoren.

WICHTIGER HINWEIS

Angesichts der Art dieser Version, die umfangreiche Überarbeitungen rund um die Gasberechnungen in der virtuellen Maschine von Ethereum und umfangreiche Refactorings rund um die Plug-in-Consensus-Engine-Split umfasst, bitten wir Produktionsbenutzer, beim Upgrade Vorsicht und Sorgfalt walten zu lassen. Wir betrachten Geth 1.6 als Vorabversion, bis die Stabilität im großen Maßstab bestätigt ist.*

Es ist wichtig, dass alle Produktionsbenutzer die Risiken verstehen, die mit neuen Versionen wie dieser verbunden sind. Es kann unentdeckte Fehler und unerwartete Folgen geben, die zu Verlusten oder anderen unerwünschten Ergebnissen führen können. Diese Version ist für erfahrene Produktionsbenutzer gedacht, die die Geth-Plattform verstehen, die Auswirkungen, die sie auf die Benutzer haben kann, und die Risiken, die neue Versionen dieser Art beinhalten.


Share post on

Sonic BTC is reader-supported. When you buy through links on our site, we may earn an affiliate commission.

Ethereum

ÐΞVcon-0 Recap

Day 1 - Monday 24th Nov - ÐΞV: Mission and Processes The first day...

By Roger Gofman
Gav’s Ethereum ÐΞV Replace IV Ethereum

Gav’s Ethereum ÐΞV Replace IV

Time for another update! A lot has happened since ÐΞVcon-0, our internal developer conference....

By Roger Gofman
Secret Sharing DAOs: The Different Crypto 2.0 Ethereum

Secret Sharing DAOs: The Different Crypto 2.0

The crypto 2.0 industry has been making strong progress in the past year developing...

By Roger Gofman
On Silos Ethereum

On Silos

One of the criticisms that many people have made about the current direction of...

By Roger Gofman
Ethereum Group Survey Ethereum

Ethereum Group Survey

Back in November, we created a short survey for the Ethereum community to help...

By Roger Gofman
Mild Shoppers and Proof of Stake Ethereum

Mild Shoppers and Proof of Stake

Special thanks to Vlad Zamfir and Jae Kwon for many of the ideas described...

By Roger Gofman
The P + epsilon assault Ethereum

The P + epsilon assault

Special thanks to Andrew Miller for the idea of ​​this attack and to Zack...

By Roger Gofman
Attending to the border Ethereum

Attending to the border

So first some background. We already shared a bit about what to expect from...

By Roger Gofman

Latest Posts

CryptoSlate Wrapped Day by day: Binance Targets Cyber ​​Monetary Crimes;  CEL tanks after Alex Mashinsky resigns from Celsius – CryptoSlate Binance

CryptoSlate Wrapped Day by day: Binance Targets Cyber ​​Monetary Crimes; CEL tanks after Alex Mashinsky resigns from Celsius – CryptoSlate

Some of the biggest news in the cryptosphere for September 27 include Binance's new...

By Roger Gofman
Ethereum

ÐΞVcon-0 Recap

Day 1 - Monday 24th Nov - ÐΞV: Mission and Processes The first day...

By Roger Gofman
ITS HAPPENING AGAIN (Historical past Repeating)!! Ethereum Worth Prediction, Bitcoin Information In the present day (BTC & ETH) Videos

ITS HAPPENING AGAIN (Historical past Repeating)!! Ethereum Worth Prediction, Bitcoin Information In the present day (BTC & ETH)

ITS HAPPENING AGAIN (History Repeating)!! Ethereum Price Prediction, Bitcoin News Today (BTC & ETH)...

By Roger Gofman
Rocketize Token, Child DogeCoin and Shiba Predator: These meme cash will show you how to keep away from the unfavorable results of the bear market – NewsWatch Dogecoin

Rocketize Token, Child DogeCoin and Shiba Predator: These meme cash will show you how to keep away from the unfavorable results of the bear market – NewsWatch

It is possible to see an upward trend in transaction volume with the new...

By Roger Gofman
Cardano (ADA) is listed by the Swiss Crypto Asset Administration Service – U.At this time Cardano

Cardano (ADA) is listed by the Swiss Crypto Asset Administration Service – U.At this time

Alex Dovbnya A Swiss crypto wealth management app has added support for the Cardano...

By Roger Gofman
Astar Community’s Web3 Advert Showcases 329 Prime Manufacturers in Japan – FinanceFeeds Polkadot

Astar Community’s Web3 Advert Showcases 329 Prime Manufacturers in Japan – FinanceFeeds

Blockchain innovation hub Astar Network is making strides in driving Web3 adoption around the...

By Roger Gofman
Gav’s Ethereum ÐΞV Replace IV Ethereum

Gav’s Ethereum ÐΞV Replace IV

Time for another update! A lot has happened since ÐΞVcon-0, our internal developer conference....

By Roger Gofman
13 Finest Cryptos Beneath $1 to Purchase in 2022 – Cryptonews Stellar

13 Finest Cryptos Beneath $1 to Purchase in 2022 – Cryptonews

Disclaimer: The Industry Talk section features insights by crypto industry players and is not...

By Roger Gofman