Ethereum ist in den letzten Monaten sehr schnell gewachsen. Transaktionsvolumen auf der Blockchain hat mehr als verdoppelt10 Transaktionen pro Sekunde für Tage überschreiten. Die Anzahl der neuen Konten pro Tag erstellt 100.000 bestandenund die Anzahl der Knoten hat trotz steigender Systemanforderungen zugenommen. Da die Aufmerksamkeit und das Interesse an dem Blockchain -Raum als Ganzes weiterhin neue Höchststände erreichen, treten wir in eine neue Phase des Wachstums der Branche ein: die Phase, in der wir endlich von Experimenten und Tests zu realen Live -Anwendungen wechseln.
Casper
Sharding
Py-evm
EIPs (Vorschläge zur Verbesserung von Ethereum)
Wir haben seit der letzten Zusammenfassung 12 EIPs verschmolzen.
Formelle Überprüfung
- Wir haben a Beitrag von Sidney Amani und seinen Kollegen bei Daten61 Dies reduziert die Anzahl der Argumentationsschritte bei der Überprüfung der EVM -Code.
- Ein Fehler in Bambus im Zusammenhang mit JSON ABI -Formatierung behoben.
Testen
- Testeth überprüft nun, dass die Test -JSON -Dateien mit den Testfüllungsdateien aktualisiert werden. Jeder Test hat einen Hash von seinem Füllstoff.
- Testeth zeigt eine Warnung, wenn es einen Test ohne Füllstoff gibt.
- Transaktionstestfüller sind jetzt im Allgemeinen Format. Ein Test beschreibt einen Fall für alle verschiedenen Gabelregeln.
- Einige große Testsuiten (mit vielen Tests) wurden in separate kleinere, für eine bessere Ausführung auf Threads über Ctest aufgeteilt.
- Testeth Random Code -Optionen wurden wiederbelebt. Mit `-CreateRandomTest` wird Testeth einen intelligenten Zufallsstaattest erzeugen. Dieser Befehl akzeptiert auch Optionen zum Generieren eines Zufallscode.
- Testeth -Optionen werfen eine Warnung/Fehler, wenn sie falsch verwendet werden.
- Neue Tests wurden aus der Tabelle hinzugefügt.
- Eine PR mit YAML -Unterstützung für Testfüllerdateien ist im Gange. Im Gegensatz zum JSON -Format ermöglicht das YAML -Format Benutzern und Multiline -Feldern für eine nette Smart Contract -Darstellung.
Remix
Neueste Update (Remix.ethereum.org) enthält:
- Eine Möglichkeit, Transaktionen aufzuzeichnen (um sie später auszuführen).
- Verwendung der Standard -JSON -IO -Schnittstelle für den Solidity Compiler.
- Verbesserung zum Solidity Editor.
- Direkte Verwendung des ABI zur Interaktion mit Verträgen.
- Allgemeine Schnittstellenverbesserung.
- Neues statisches Analysemodul.
Vielen Dank an @Ninabreznik (Solidity Editor), @serapath (Recorder), @Ryestew (Schnittstelle) für ihre aktiven Beiträge.
Wir konzentrieren uns nun darauf, den Code -Editor zu verbessern, Remixd (was jetzt für riesige Ordner kaum nutzbar ist) und das Polieren der Themen zu polieren.
Wir arbeiten weiterhin unser Bestes, um Remix.ethereum.org jeden Monat und für jede wichtige Fehlerbehebung zu aktualisieren. Da Remix in einer starken Entwicklung steht, kommen immer neue Funktionen ein. Sie können also gerne Feedback und Code beibehalten.
Solidität
Wir arbeiten an einem Optimierer für unsere neue Zwischensprache iulia. Das erste Ziel ist es, den extrem modularen Code des neuen ABI -Codierers in einen effizienten Code zu verwandeln. Natürlich profitieren alle Inline -Montage und auch der Hauptcodegenerator am Ende von dieser Arbeit. Im Gegensatz zum alten Optimierer, der im Grunde genommen in Bytecode in eine interne Darstellung eingeweicht und dann den Code von Grund auf neu generiert hat, besteht der neue Optimierer aus viele klein Und sehr einfach Person Stadien, die direkt auf der IULIA AST agieren und somit für die Korrektheit leicht überprüfbar sind.
Der zweite große Arbeitsbereich ist die SMT -Checker -Komponente. Es ist jetzt in der Lage, den Verzweigungen und Verbindungssteuerfluss korrekt zu befolgen, und nimmt auch an Bedingungen berücksichtigen. Versuchsschleife sich abkratzen ist die nächste Stufe.
Abgesehen davon machen wir viele winzig Änderungen zu dem Compiler und Sprache und Behebung des übrig Probleme, die im kürzlich abgeschlossenen Compiler -Audit identifiziert wurden.
Ich möchte mich bei den vielen freiwilligen externen Mitwirkenden für ihre harte Arbeit bedanken (wie immer werden einzelne Zuschreibungen auf der Release -Seite vorgenommen)!
Sicherheit
Wir setzen die Bemühungen fort, das EVM zu fuzzieren, und wenden auch Fuzz-Tests in andere Bereiche der Ethereum-Plattform wie dem Geth Networking Stack und der Solidity-Pipeline an, in der wir sehen, ob sie zur Qualitätssicherung einiger neuer IULIA-Komponenten verwendet werden können.
Wir erstellen einen neuen Unterzeichner, um erweiterte Anwendungsfälle zu ermöglichen, in denen die Kontoverwaltung vom Netzwerkknoten entkoppelt wird. Die Idee ist, eine was-you-see-is-What-You-Sign-Erfahrung zu haben, bei der die sensiblen Komponenten in einem separaten VM oder auf einem separaten Computer oder einem Mobiltelefon ausgeführt werden können.
Auf der Kopfgeldfront gab es eine Menge Aktivität, insbesondere auf den Nebel, und wir möchten alle Benutzer erinnern, dass Sie den Nebelbrowser nicht auf nicht vertrauenswürdigen Netzwerken oder nicht vertrauenswürdigen Websites verwenden.
Außerdem wird Ethereumj schließlich zu der Gruppe von Kunden hinzugefügt, die sich einem Hive-Test unterziehen, und Ethereumjs wird der Gruppe von Kunden hinzugefügt, die die gemeinsam genutzte JSON-Ausgabe unterstützen, damit es zusammen mit den anderen in den EVMLAB-Tools spielen kann.
Python -Ökosystem
Wir haben die Migration der Repositories für die meisten Python -Bibliotheken zum Ethereum Foundation GitHub abgeschlossen. Viele dieser Bibliotheken wurden im Prozess umbenannt, um einer einzigen Namenskonvention zu entsprechen. Wenn Sie eine der folgenden Bibliotheken verwenden, sollten Sie Ihre Abhängigkeiten aktualisieren.
- Ethereum-Utils umbenannt in Eth-Utils
- Ethereum-Abi-Utils umbenannt in Eth-Abi
- Ethereum-Keys umbenannt in Eth-Keys
- Ethereum-Key-Datei umbenannt in Eth-Key-Datei
- Ethereum-Tester umbenannt in Eth-Tester
Darüber hinaus wird der größte Teil des Python -Tools nun Abschreibungswarnungen ausstellen, wenn sie mit Python 2 ausgeführt werden. Die Unterstützung für Python 2 wird im ersten Quartal 2018 entfernt. Bitte upgrade auf Python 3, wenn Sie es noch nicht getan haben.
Ethereum-Tester
Der Eth-Tester Die Python Library hat einige Upgrades und Verbesserungen erhalten. Diese Bibliothek befindet sich noch in einem Beta vor der Veröffentlichung.
- Neu pyethereum> = 2.1.0, <2.2.0 Backend
- Aktualisiertes PY-EVM-Backend für die neuesten Byzanz-Regeln.
- Verschiedene Fehlerbehebungen.
Web3.py
Mit Web3.Py können Ihr Python -Code mit einem Ethereum -Knoten interagieren. Version 4 wurde als Beta veröffentlicht, einschließlich dieser Änderungen:
- Automatische Ethereum -Namensdienste -Lookups: Methoden, die HEX -Adressen akzeptieren, akzeptieren jetzt ENS -Namen.
- Arbeiten mit lokalen privaten Schlüssel: Unterschreiben und überprüfen Sie einfache Transaktionen, Vertragstransaktionen und Nachrichten.
- Besseres Erraten bei Verbindungsparametern, für weniger Boilerplate beim Initialisieren von Web3.
- EIP 55 Überall zurückgegeben und als Eingabe erforderlich.
- Bessere native Handhabung von Saiten- und Bytes -Typen; mehr “Bytes”, weniger hex `str`.
Ethereumjs Ökosystem
- Unser Byzanz aktualisieren ist gut aufgenommen (vor dem Byzantium immer noch verwendbar mit V2.2.2 freigeben) und bereits verwendet von Remix Und Ganache (Ehemaliger TestRPC).
- DevCon3 spricht weiter Web3.js 1.0Die EthJs Dev Toolkit und Remix Die Entwicklung wurden ebenso vorgestellt, ebenso unterschiedliche andere andere Gespräche In Bezug auf den relevanten technischen Hintergrund.
- Neu rostbn.js Bibliothek für die elliptischen Pairing -Vorkompilien in der VM basierend auf dem Rost Bibliothek von Zcash/Parität.
- Unterstützung für die Erstellung und Überprüfung von Merkle Proof in der Merkle-Patricia-Tree Bibliothek (mit freundlicher Genehmigung von @jbaylina).
- EIP-8 Kompatibilität und bessere Dokumentation für unsere devp2p Bibliothek.
- Viele devcon3 EthJs Feedback, kommende Updates: Mögliche Rückrufunterstützung für Node.js Clarity, Easy BLS Signing LIBS (Danke Dfinity!), Ein Ethereum -Knoten -Wrapper für einfachere Tests, Helferbibliotheken für Paketverwaltung, bessere Filterunterstützung.
Web3.js 1.0
Der 1.0 Zweig entwickelt sich mit Hilfe vieler Community -Beiträge. Obwohl es sich noch in der Beta befindet, verwenden viele Entwickler bereits 1,0 für ihre Projekte und die bisherige Reaktion war überwiegend positiv. In den nächsten Wochen die Web3-Accounts Das Paket wird geprüft, da es zum Generieren von Schlüssel und Signiermeldungen und Transaktionen verwendet werden kann.
EWASM (Ethereum WebAssembly)
Fortschritt geht weiter ewasm-kernel Und EVM2WASMdie einen Prototyp VM und Transpiler bilden, der in JS geschrieben wurde. Der Fortschritt setzt sich auch fort Heraein in C ++ geschriebenes VM, das mit der EVM-C-API kompatibel ist. Wir arbeiten daran, die EVM -State -Tests in eine EWASM -Testsuite umzuwandeln, die zum Testen von Hera verwendet werden kann. Das kurzfristige Ziel ist es, einen „Geth+Hera“ -Kunden aufzubauen und sie mithilfe eines EWASM-Testnetzes zu starten.
C ++ Ethereum
Geth
Seit der letzten Zusammenfassung gab es eine Geth -Veröffentlichung. V1.7.3. Highlights in dieser Veröffentlichung
enthalten:
- Version 2 des Les Light Client -Protokolls. LES/2 fügt Unterstützung für das Abrufen von partiellen Protokollblühen hinzu, was eine schnelle Protokollfilterung mit dem leichten Client ermöglicht.
- `Geth -Dev` ist viel schneller und verwendet den Nachweis der Autorität anstelle von Arbeiten.
Für die nächste Veröffentlichung konzentriert sich die Arbeit auf:
- Eine Überholung der VM -Verfolgungsinfrastruktur:
- Unterstützung für die Verfolgung einer Reihe von Blöcken, einschließlich der Rekonstruktion historischer Zustände.
- Vordefinierte Tracing -Funktionen, z. B. zum Sammeln aller internen Transaktionen oder zur Schließung eines bestimmten Aufrufs.
- Umgang mit privaten Schlüsseln von GETH in Helfer -Tools:
- Der Unterzeichner, ein Werkzeug zum Signieren von Transaktionen.
- ETHKEY, ein Befehlszeilen-Tool zum Umgang mit Schlüsseldateien.
- Versand eines arbeitenden Peer Discovery V5 -Prototyps und Veröffentlichung der zugehörigen EIPs.
- Aktivieren Sie statischere Analyse -Tools für kontinuierliche Integrationsergebnisse.
Nebel
Ethereum Wallet und Mist Beta hatten die 3 Millionen Downloads -Marke kombiniert überschritten. Die neueste Version 0.9.3 wurde über 450.000 Mal heruntergeladen.
Unser Team begrüßt zwei neue Mitglieder: Marc Garreau und Ryan Ghods. Nach einer Weile sind wir wieder in einem vollständigen Kader.
Hauptänderungen seit dem letzten Update:
– Leichte Client -Integration und Brieftasche Dapp -Anpassungen, obwohl der LES V2 noch experimentell ist.
– Ein Umschreiben des Kerns von Mist, das eine bessere staatliche Kontrolle und Ressourcen ermöglicht, die von der Anwendung behandelt werden.
– Studien und viele Mocks/Skizzen bezüglich des nächsten Schritts von Knoten-, Transaktions- und Kontenmanagement.
– zahlreiche Fehlerbehebungen und Ausgabenhandhabung.
Wir haben kürzlich einen Sicherheitsalarm in Bezug auf Chrom -Schwachstellen, die die Beta des Nebelbrowsers beeinflussen.
Schwarm
Eines unserer Projekte ist PSSein Messaging -System, das auf Schwarm gebaut wurde. Die für POC3 geplanten Funktionen sind größtenteils erledigt, und PSS wird bereits als Backend der Prototypen -Chat -Anwendung von Mainframe.
PSS verwendet das Routing -Netzwerk von Swarm, um Nachrichten zwischen Knoten zu liefern. Es implementiert bereits die folgenden Funktionen: Verschlüsselung (optional mit kurzlebigen Schlüssel, die vom Handshake -Modul erzeugt werden)Leuchtkraftkontrolle (Vollständige, teilweise oder keine Offenlegung von Adressen kommunizierender Knoten), RPC -API und Hochwasserprävention. Wir haben noch ein paar Aufgaben zu erledigen, hauptsächlich Stresstests und Benchmarking, und wir müssen auch den Code zum Go-Eterhereum-Master zurückführen.
Wir arbeiten auch an der tauschen, schwören und betrogen Anreizsystem. Wir haben eine Basis Implementierung von Schwindeltauschen und checkbuch im Schwarmcode auszutauschen, und die anderen Teile werden in der beschrieben In-Progress-Papier. Unser Ziel ist es, das Papier abzuschließen und die Incentive -Schicht zu implementieren.
In unserem Netzwerktests und Simulation Projekt, wir haben ein Framework implementiert, um ein Simulationsnetzwerk von DEVP2P -Knoten zu erstellen und auszuführen. Für die Simulation, die wir implementiert haben Knotenadapter die eine Testumgebung erstellen, in der die Knoten ausgeführt werden sollen (In-Process-, Executable- und Docker-Adapter). Wir haben auch eine 3D -Visualisierungs -App erstellt, um die Netzwerkstruktur und das Verhalten anzuzeigen.
Wir haben auch angefangen zu versprechen Zusammenarbeits mit Wolk (um eine Datenbankschicht über Swarm zu entwickeln), LivePeer (um Live -Video -Streaming mit SWARMing implementieren) und Status (um Lichtschwarmknoten für Mobile implementieren).
Flüstern
Version 6 von Whisper hat begonnen., WWE hofft, bis Ende Februar fertig zu werden. V6 bietet Knoten mehr Kontrolle über die Netzwerklast, untersucht die Verwendung von LIBP2P in der Go -Codebasis und verbessert die Kompatibilität mit der Parity -Version von Whisper.

