Obwohl das Kernkonzept im vergangenen Sommer bewiesen wurde, als Leadentwickler Vitalik Buterin, Gavin Wood und Jeffrey Wilcke die POC-Serie (Proof-of-Concept) in Python, C ++ und GO initiierten, wurden diese Implementierungen festgelegt. Wir sind alle bestrebt, einen stabilen Befehlszeilen -Kunden zu veröffentlichen, und Probleme, die im externen Audit markiert sind, werden bei der Entdeckung gelöst. Sobald dieser Vorgang abgeschlossen ist, sollte eine allgemeine Veröffentlichung um die Ecke sein. In der Zwischenzeit entwickelt sich der Rest des Ökosystems weiterhin zu raffinierteren Versionen.
Eine der Herausforderungen mit einem Projekt dieses Umfangs und dieser Komplexität ist die Einigung einfach auf eine bestimmte Sache. Das Übersetzen menschlicher Abstraktionen in Code ist eine schwierige Aufgabe wie Sogar die Wörter, die wir wählen beeinflusst verschiedene Arten, Ideen mit Code auszudrücken. Wenn wir mehr um diese Kernideen bauen und wirklich erleben, wie die Realität der Theorie trifft, können wir die zugrunde liegenden Spezifikationen verfeinern, um Mehrdeutigkeiten zu beseitigen. Dies alles zahlt sich aus, wenn das Team eine saubere und gut verstandene Vision teilt, die sich effektiv auf andere Entwickler unterschiedlicher Disziplinen übersetzen sollte.
Anzahl der Git -Commits im Laufe der Zeit
Eine Vielzahl von Testsuiten ergänzt ein wichtiges Vertrauensniveau, das die verschiedenen Implementierungen an eine Spezifikation einhalten. Auf der Konsensfront haben wir eine Reihe von VM- und State -Tests verwendet, um bekannte Ergebnisse zu simulieren, und haben Randomisierung und Fuzzing hinzugefügt, um diesen Testraum zu erhöhen. Es werden ebenfalls eine Reihe von System- und Netzwerktests durchgeführt, um sicherzustellen, dass Kunden auf erwartete Weise kommunizieren oder auf bestimmte Netzwerkszenarien reagieren.
Tests sind nicht nur für den Erfolg konzipiert, sondern alle Arten von Fehlerbedingungen werden in die Testsuiten eingesperrt, um sicherzustellen, dass bekannte Fehler (z. B. das Auslaufen von Gas oder abrupt von einem Gleichaltrigen abrupt) korrekt gemeldet werden. Dies bedeutet, dass die Entscheidung, wenn Änderungen am Verhalten der Kunden vorgenommen werden, eher von Daten und Metriken als von Theorie und Darmgefühlen angetrieben wird.
Mit der Grafikknotenkonnektivität können wir die Gesundheit des Netzwerks visuell untersuchen
Über die Testen der Kernkomponenten hinaus haben wir begonnen, Tests auf den Außenschichten zu implementieren, um sicherzustellen, dass die Kunden auf eine Vielzahl von Aufrufen des zugrunde liegenden Systems auf die gleiche Weise reagieren, mit leicht konsumierbarem JSON. Diese Spezifikationen sind verknüpft im Wiki und die Implementierung und Kommunikation über verschiedene Teams hinweg vorantreiben. Dies hilft sicherzustellen, dass das, was sich in unseren Köpfen befindet, zuverlässig in Code übersetzt wird und dass all dies getestet und geprüft wird.
All diese Verbesserungen sind wichtig für die Gesundheit des überlagenden Ökosystems und helfen dabei, ein Scheinwerfer für ansonsten sehr nuancierte Probleme zu richten. Zusätzlich zur Verfeinerung der virtuellen Kern- und Serialisierungsschichten wurden Sicherheitsaudits mit einem in der Dezentralisierung und kryptografischen Technologien erlebten Drittunternehmen initiiert.
Eine grobe Momentaufnahme der Entwicklungsbemühungen.
Wie sieht sich all diese zugrunde liegenden Technobabble dem allgemeinen Benutzer aus? Für den Frontier -Rollout wollen wir stabile Binärdateien auf wichtigen Betriebssystemen (Mac, Windows, Linux) freigeben. Die Hauptschnittstellen bestehen hauptsächlich aus dem Befehlszeilenclient, der interaktiven JavaScript-Konsole und JSON-RPC. In Go-Ehereum haben wir kürzlich diesen Kunden in „Geth“ umbenannt, eine Anspielung auf beide Masseneffekt Und Altes Englisch.
Die Verwendung des Befehlszeilenclients ist für viele ein vertrauter Prozess. Zum Beispiel können Sie ein neues Konto mit erstellen Geth Account neuZu diesem Zeitpunkt fordert Sie das Programm auf ein Passwort auf, das Konto zu sichern. Das Starten von Geth als Bergmann kann durch Aufrufen mit einem Parameter wie SO durchgeführt werden: Geth -Mine. Dies ist eine großartige Möglichkeit, um mit dem System zu interagieren, hat aber seine eigenen Einschränkungen. Wie macht man beispielsweise, wenn Sie mit dem Bergbau begonnen haben?

Verwenden Sie Geths interaktive JavaScript -Konsole
Für eine nützlichere Möglichkeit, das Programm zu steuern, hat Geth eine JavaScript -Konsole, die von a unterstützt wird JavaScript -API. Starten Sie es mit einem einfachen Befehl: Geth Console. Mit Geth beginnt das die Interaktive Konsolegeben den Benutzern die Vertrautheit von JavaScript -Skripten zur Steuerung des Systems vom Terminal. Um zum Beispiel ein bisschen mehr über den lokalen Knoten herauszufinden, laufen Sie Admin.nodeInfo ().
Diese Kontrolle wird teilweise von angetrieben von Ethereum.jsEine JavaScript -Bibliothek, die dazu beiträgt, nicht nur die Konsole, sondern auch Dapps eine freundliche Schnittstelle zu bieten. Es basiert auf einem gut dokumentierten JSON-RPC Schnittstelle zur automatisierten Verarbeitung oder Integration in die vorhandene Infrastruktur. Die Arbeit an vielen dieser Komponenten ist noch nicht abgeschlossen, da strenge Anstrengungen unternommen werden, um sicherzustellen, dass die Implementierungen dieselbe Sprache sprechen und so im Allgemeinen wie möglich kompatibel sind.
Eine kurze Sicht auf den Baustatus
All dies wird natürlich öffentlich auf GitHub aufgebaut und umfasst verschiedene kontinuierliche Integrationsaspekte wie automatisierte Builds und Berichterstattung über wichtige Plattformen. Dies ist kein Programm, das eine Spezifikation definiert – dies ist eine Spezifikation, die zwischen Maschinen und Menschen über den Globus getestet und gekreuzt wird.
Gleichzeitig führt die Arbeiten an mehreren anderen Komponenten zum Ökosystem, einschließlich GUI -Schnittstellen für Mist (Dapp -Browser) und Mix (IDE). Viele der Tools, auf denen wir verwenden und aufbauen, sind neu und erfordern manchmal stromaufwärts gepatschen, um sicherzustellen, dass alles wie erwartet funktioniert. Dies ist ein großer Vorteil für alle Open -Source -Entwicklung und eines der vielen positiven Nebenprodukte aller Stunden, die tatsächlich technische Software verbracht haben. Obwohl das Warten lang erscheinen mag, nimmt der Fortschritt und das anhaltende Vertrauen in das gesamte System stetig zu.
Abgesehen von den technischen Ins und Outs of Development hat unser Kommunikationsteam weiterhin mit der Community interagiert, um öffentliche Bildungsmaterial wie Tutorials und Videos zu produzieren. Darüber hinaus hilft unser Verwaltungsmitarbeiter dabei, Zahlungen zu verarbeiten und verschiedene lokale Gesetze zu erfüllen, einschließlich mühsamer Dinge wie Beschäftigungssteuern.
Teil des Ethereum -Projekts zu sein, war eine außergewöhnliche Erfahrung voller Aufregung. Was begann als nur als eine Idee Vor etwas mehr als einem Jahr hat eine außergewöhnliche technische Anstrengung von Fachleuten hervorgerufen, die alle erforderlichen Infrastrukturen implementieren, die für den Aufbau einer revolutionären dezentralen Anwendungsplattform erforderlich sind.
Wenn Netflix eingeführt wird Chaosaffensie behaupteten, “Wir haben festgestellt, dass die beste Verteidigung gegen große unerwartete Misserfolge darin besteht, häufig zu scheitern. Indem wir häufig Misserfolge verursachen, zwingen wir unsere Dienste, auf eine Weise gebaut zu werden, die widerstandsfähiger ist.”. Bei der Entwicklung von Ethereum haben wir die Vorteile aus erster Hand erlebt, aus denen stammt ständig ein System anstrengen.
Und während wir die Aufgabe haben, die Plattform zu erstellen, von der Sie träumen, ist eine große Ehre, wir bauen sie, weil wir möchten, dass es existiert. Vielen Dank für Ihre Geduld, wie wir denken, schlafen, essen und Hundefutter die Plattform. Wir sind so ängstlich wie jeder andere zu sehen, welche Art von Daapps nach dem Live -Mainnet starten wird!




