[Blocktrades] 1. Update in 2021 über BlockTrades Arbeit an der Hive-Software

in Deutsch D-A-CH3 years ago

Dies ist eine Übersetzung des Artikel von @blocktrades, welcher unter https://peakd.com/hive-139531/@blocktrades/1st-update-of-2021-on-blocktrades-work-on-hive-software aufgerufen werden kann.

Es sind einige Wochen seit meinem letzten Bericht vergangen, da ich zuerst mit den Vorbereitungen für das HiveFest beschäftigt war, dann schlugen die Feiertage zu und ich beschloss, mich auf das Programmieren zu konzentrieren, während ein Großteil unserer Mitarbeiter im Urlaub war und ich nicht so viele Managementaufgaben zu erledigen hatte. Insbesondere wollte ich einige groß angelegte Änderungen am Hivemind-Code vornehmen, während es weniger Änderungen von anderen Programmierern gab.

In der Zwischenzeit freue ich mich, ankündigen zu können, dass wir kurz davor sind, unser erstes "versioniertes" Release von hivemind zu taggen: v1.24.0. Die Hauptversion wird auf 1 gesetzt, um aus dem "Beta"-Status herauszukommen, in dem sich hivemind so lange befand, und um die große Überarbeitung zu repräsentieren, die wir an der hivemind-Codebasis vorgenommen haben, 24, um die zugehörige Hard-Fork-Version von hived zu bezeichnen, die zu verwenden ist, und die dritte Zahl (derzeit 0), um über kleinere Überarbeitungen zu melden, die die Leistung verbessern, zusätzliche Funktionen hinzufügen, usw. Dies ist ein wichtiger Meilenstein für unsere Arbeit an Hive und bedeutet, dass wir nun endlich den Kopf frei haben, um große neue Aufgaben zu übernehmen.

Hived Arbeit (Blockchain Node Software)

Wir arbeiten noch daran, ein Hived-Plugin zu erstellen, das die benötigten Daten während der Hive-Neuindizierung und des normalen Blockempfangs direkt in die Datenbank von Hivemind schreiben kann. Die meisten Daten, die von get_block_api bereitgestellt werden, sind für hivemind uninteressant, so dass die Verwendung dieser API, um die Daten zu erhalten, unnötig CPU verschwendet, zusätzlich zur Verlangsamung von hivemind führt. Ich erwarte, dass die Verwendung des Plugin-Ansatzes zu einer signifikanten Beschleunigung der anfänglichen Synchronisationszeit für hivemind führen wird, und es sollte auch die normale hivemind Live-Sync-Schreibzeit reduzieren. Die Arbeit ist hier im Gange:
https://gitlab.syncad.com/hive/hive/-/commits/km_live_postgres_dump/

Die Arbeit an dem Code für die Implementierung des Verfalls von Governance-Stimmen (Witness-Votes, Proposal-Votes und Voter-Proxy-Änderungen), wenn ein Konto seine Aktivität einstellt, wurde ebenfalls fortgesetzt, die Arbeit ist hier im Gange (einer unserer neuen Programmierer arbeitet daran als Einführung in den Kern-Blockchain-Code):
https://gitlab.syncad.com/hive/hive/-/merge_requests/160

Im letzten Entwickler-Call schlug jemand vor (ich glaube, glücklicherweise), dass es sich heutzutage so anhörte, als hätten wir mindestens 5 Kernentwickler, die an Hive-Software bei BlockTrades gearbeitet haben, seit Hive gestartet ist. Ich wusste, dass die Zahl höher war, aber ich kannte die genaue Zahl nicht, also beschloss ich, es zu überprüfen und es sieht so aus, als wären es 10 gewesen (beachten Sie, dass dies keine zusätzlichen Programmierer einschließt, die an anderer Hive-Software wie hivemind und condenser arbeiten).

Wir haben auch noch ein paar andere Leute, die Erfahrung mit der Hive-Codebasis aus Steemit-Tagen haben, die derzeit an anderen Projekten arbeiten, also kann man mit Fug und Recht behaupten, dass wir genügend Kernprogrammierer für den 1 Layer haben, falls jemand in diesem Punkt besorgt war.

Hivemind (2nd Layer Microservice für Social Media Anwendungen)

Wie im Intro erwähnt, stehen wir kurz vor der Veröffentlichung einer offiziellen Version von hivemind, und in den letzten Wochen war eine Menge Arbeit nötig, um dorthin zu gelangen. Hier ist eine kurze Liste einiger Arbeiten, die in letzter Zeit in die Release-Codebasis eingeflossen sind:

https://gitlab.syncad.com/hive/hivemind/-/merge_requests/426
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/411
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/395
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/387
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/428

Und das war meine "Urlaubsarbeit" beim Optimieren von Abfragen :-)
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/454

Es ermöglicht eine ziemlich große Beschleunigung, und unser Produktions-Hivemind-Server selbst hat jetzt nur noch eine Last von etwa 1 (dort befindet sich auch ein Hived, so dass die Gesamtlast auf dem System etwa 1,5 beträgt), während er einen großen Teil des API-Verkehrs von Hive verarbeitet. Kurz gesagt, Hivemind kann jetzt eine ziemlich große Menge an Datenverkehr bewältigen, ohne einen leistungsstarken Server zu benötigen (meine erste Vermutung ist, dass dieser einzelne Hivemind-Server etwa das 8-fache dieses Datenverkehrs ohne Probleme bewältigen könnte). Das bedeutet, dass Hive viel dezentraler geworden ist, da jeder durchschnittliche Unix-Enthusiast nun kostengünstig einen Server einrichten könnte, um unseren gesamten Datenverkehr zu bedienen.

Ich werde später einen detaillierten Bericht über die Ergebnisse der Optimierung der Latenz einzelner API-Aufrufe in einem Spreadsheet vorbereiten, da die dort enthaltenen Timing-Informationen für 2nd-Layer-App-Entwickler recht nützlich sein könnten.

(Bericht manuell hinzugefügt zu diesem Artikel:
https://peakd.com/hive-139531/@blocktrades/hive-api-node-performance-measurement)

Wir haben auch noch ausstehende Arbeiten an hivemind, die noch nicht zusammengeführt wurden, da wir immer noch eine lange Validierungszeit für Änderungen haben (wegen der Zeit, die für eine "volle Synchronisation" mit 50m+ Blöcken benötigt wird), und wir wollten ein offizielles Release herausbringen und die Releases für API-Nodes zurück in den "master"-Zweig verschieben und den "develop"-Zweig für experimentelle Änderungen belassen (aufgrund der Dringlichkeit der Entwicklung und der häufigen Aktualisierungen des Datenbankschemas haben wir den "develop"-Zweig als unseren Release-Zweig für API-Nodes seit HF24 verwendet). Als Teil dieses offiziellen Releases haben wir einen vollständigen Sync-Test mit der Version kurz vor den Optimierungen aus MR454 oben durchgeführt, aber die Änderungen in 454 werden dieses Ergebnis wahrscheinlich nicht beeinflussen, da es sich hauptsächlich um API-Optimierungen handelt.

Condenser (Open-Source Code für Seiten wie z.B.: https://hive.blog)

Wir haben die Änderungen an den dezentralen Listen fertiggestellt und bereitgestellt, hatten aber noch nicht viel Zeit, sie in der Produktion zu testen. Sie funktionieren aber gut, soweit ich weiß. Ich werde wahrscheinlich später am Tag einige Tests durchführen.

Was ist der Plan für die nächste Woche?

  • Fortsetzung der Erstellung von hivemind-Tests.
  • Wir haben noch ein paar weitere Optimierungen, die ähnlich wie die Änderungen in 454 durchgeführt werden können, wahrscheinlich werden sie diese Woche abgeschlossen.
  • Verschieben der hivemind-Tests in das hivemind-Repo anstelle von tests_api, um praktische Tests zu vereinfachen.
  • Beginnen der Design-Analyse für einen abgespeckten Microservice der 2. Layer und für die Entwicklung einer darauf aufbauenden Smart-Contract-Plattform.
  • Fortsetzung der Arbeit an der Beschleunigung der vollständigen Synchronisation von hivemind über das hived-Plugin, da die langsame Synchronisationszeit einen großen Einfluss auf die Geschwindigkeit von hivemind CI hat (was eine Obergrenze dafür setzt, wie schnell wir Änderungen validieren können). Diese Arbeit ist auch für den abgespeckten 2nd Layer Microservice erforderlich.
  • Fortsetzung der Arbeit an Governance-Änderungen für HF25 (Details zu dieser Arbeit hier: https://hive.blog/hive-139531/@blocktrades/roadmap-for-hive-related-work-by-blocktrades-in-the-next-6-months).
Sort:  

Das ist eine weitgehend 1:1 übernommene Deepl-Übersetzung, also reines c&p, könnte/sollte man eventuell dazuschreiben!
Ich upvote lieber originalen Content.

 3 years ago  

Wie du magst. Dreiviertel Stunde Arbeit - Akribisch Satz für Satz gegengeprüft. Man muss ja nicht zwingend jeden Satz vom Original abwandeln, damit die eigentliche Übersetzung dem Original entfernt wird.

Das sehe ich auch so, aber das ist doch auch gut so, denn viele Germanen lesen doch lieber das ganze in Deutsch.

Nen Vote gibt es von mir trotzdem, denn für Deepl bin ich meistens zu faul.

@louis88, Slow and Steady. Let's hope that these steps are solid one. Stay blessed.

Du hast ein Upvote von mir bekommen, diese soll die Deutsche Community unterstützen. Wenn du mich unterstützten möchtest, dann sende mir eine Delegation. Egal wie klein die Unterstützung ist, Du hilfst damit der Community. DANKE!