Nach fast drei Monaten nach dem “Neustart” des C ++ – Teams möchte ich ein Update über das Team selbst geben, was wir getan haben und was wir vorhaben.
Team Update
The so-called C++ team currently consists of Paweł Bylica (@chfast), Greg Colvin (@gcolvin), Liana Husikyan (@LianaHus), Dimitry Khokhlov (@winsvega), Yann Levreau (@yann300), Bob Summerwill (@bobsummerwill), me (@chriseth) and (kindly “donated” by ERIS Industries) RJ (@VOR0220).
Paweł ist der ursprüngliche Autor des in LLVM ansässigen EVM-to-Nat-Just-in-Time-Compilers, der im April wieder zusammengefügt wurde und die JIT weiter verbessern wird.
Greg trat im Februar bei und erzielte bereits erhebliche Beschleunigungen für die C ++ – Implementierung der virtuellen Maschine Ethereum, wobei seine Erfahrung die Implementierung der Java Virtual Machine für seinen früheren Arbeitgeber Oracle verwendet hat.
Liana und Yann arbeiten an Solidität und seinen IDES (ja, Plural, siehe unten!).
Dimitry ist für die Konsenstests verantwortlich und arbeitet auch am C ++ – Kern.
Bob trat im Februar bei (nachdem er länger Teil der Community war) und leitet derzeit die ehrgeizige Bemühungen, die C ++ – Codebasis zu entwirren. Er war auch ein großer Beitrag zur Homestead Guide.
RJ kam im März zu ERIS Industries und arbeitet am Soliditäts Compiler.
Darüber hinaus ist die Koordination und Zusammenarbeit zwischen C ++ und den GO-Teams auf einem völlig anderen Niveau als zuvor. Einer der Gründe, warum wir den Dolmetscher verbessern, besteht darin, eine Wassermarke für den Go-Ehereum-Dolmetscher zu erhalten, und die während dieses Prozesse gezogenen Lehren werden direkt in den GO-Interpreter einfließen, um nur ein Beispiel zu nennen.
Remix ankündigen
Die Entwicklung von Solidität selbst und die Bereitstellung von Ressourcen und Tools für Personen, die intelligente Verträge und Dapps schreiben, ist einer der größten Arbeitsbereiche für das C ++ – Team. Ein wesentliches Tool ist ein Debugger für Solidität und die virtuelle Ethereum -Maschine, sodass Entwickler die virtuelle Maschine in die virtuelle Maschine “schauen” und den genauen Ort in ihrem Code finden können, der nicht das tut, was sie erwarten. Unsere ide Mischen ist eine wundervolle Software, die genau diese liefert. Leider benutzen die meisten Menschen es nicht und bevorzugen Browser-Solidität oder nur einige Einheiten -Testwerkzeuge.
Dies ist verständlich, die Leute möchten die Redakteure nicht wechseln (ich denke, dies ist auch der Grund, warum wir in den letzten Monaten eine große Anzahl von Solidity -Plugins für vorhandene IDEs erhalten haben) oder zusätzliche Software installieren. Darüber hinaus ist die relative Menge an externen Beiträgen, die wir für die HTML5+JS-basierte minimalistische IDE-Browser-Solidität erhalten haben, im Vergleich zu C ++/QT-basierter Mischung nur überwältigend.
Aus diesem Grund und in dem Versuch, die Modularität, Wiederverwendbarkeit und Offenheit zu erhöhen, haben wir beschlossen, die Art und Weise zu überdenken, wie wir Entwicklertools bereitstellen möchten: mit dem Remix -Projekt Wir werden eine Reihe wiederverwendbarer HTML5+JS -Module für die Entwicklung und Debugie von intelligenten Verträgen erstellen.
Dies bedeutet, dass es möglich sein wird, einen Debugger für EVM und Solidität in den Browser-Lholidität zu integrieren (der auch in Zukunft an einen herausragenderen Ort wechselt), aber auch in Visual Studio Code, Atom, Sublime, im Grunde jede IDE, die HTML5+JS-basiert ist. Sie werden sogar in der Lage sein, den Debugger im Nebel zu starten, auch für Transaktionen in der Vergangenheit!
Es ist wahrscheinlich etwas zu früh, um Remix auszuprobieren, aber wenn Sie möchten, befolgen Sie die Anweisungen im Repository. Verwenden Sie jedoch unbedingt die neueste Entwicklungsversion von CPP-Ehereum als Backend-Knoten.
Für alle anderen: Hier ist ein Screenshot einer frühen Proof of Concept -Version:
Andere Aufgaben
In Bezug auf den aktuellen Fokus für andere Projekte verbessern wir die Laufzeitleistung der virtuellen Maschine. Greg hat in diesem Bereich bereits große Fortschritte gemacht und hat immer noch viele Ideen. Derzeit richten wir allgemeine Benchmarks ein, damit wir die Leistung verschiedener Implementierungen und den Unterschied zwischen Dolmetschern und Just-in-Time-Compilern vergleichen können. Wir planen, den Just-in-Time-Compiler für andere Implementierungen wie Py-Ehereum und natürlich Go-Ehereum zur Verfügung zu stellen.
Für die Solidität sind die Hauptarbeitsbereiche derzeit feste Punkttypen, Strukturen als Teil des ABI und die Erweiterung der Nützlichkeit von Bibliotheken über “nicht linierbare” Funktionen und Vorlagen. Darüber hinaus möchten wir die Community einladen, nützliche Bibliotheken zu schreiben und zu veröffentlichen. Besonderer Dank geht an Alex Beregszaszi (@axic), Nick Johnson (@arachnid) und Andreas Olofsson (@Androlo) für einen tollen Start dort!
Schließlich möchten wir die derzeit verursachten Schmerzen reduzieren, die derzeit bei der Arbeit mit der C ++-Codebasis verursacht werden, insbesondere aufgrund externer und intra-Abhängigkeiten. Wir sind bereits fast an dem Punkt, an dem Solidität isoliert zusammengestellt werden kann, und das Ziel ist es, in unser altes Zuhause zurückzukehren, das Ethereum/CPP-Ehereum-Repository, wobei Teile nur dort abgeteilt werden, wo es sinnvoll ist, nämlich Mix, Solidität und EVMJit.

