Labeler NearBy

Table of Contents

Mein erster Hackathon

In den späteren Teilen des Sommers 2022 wollte ich unbedingt an einem spannenden Projekt arbeiten. Ich hatte gerade mein Grundstudium abgeschlossen und arbeitete Vollzeit als Softwareingenieur. Ich wollte mich wirklich einem Nebenprojekt widmen und zu diesem Zeitpunkt hatte ich genug Freizeit dafür. Ich wusste wirklich nicht, woran ich arbeiten sollte, bis ich im August 2022 eine Website namens Devpost entdeckte. Devpost ist eine Website, die Softwarewettbewerbe, sogenannte Hackathons, veranstaltet. Beim Durchstöbern von Devpost stieß ich auf einen Hackathon namens NEAR MetaBUILD III, der von der Organisation NEAR Protocol ausgerichtet wurde.

Was ist NEAR?

Das NEAR Protocol ist eine Blockchain, die Smart Contracts und die Kryptowährung NEAR unterstützt. Es ist vor allem dafür bekannt, sehr niedrige Transaktionsgebühren zu haben, Smart Contracts zu unterstützen, ein eigenes offizielles Testnetz zu besitzen und eine großartige Entwicklerumgebung zu bieten, da man Smart Contracts in Rust und/oder JavaScript schreiben kann. Einen besseren Überblick über das NEAR Protocol erhalten Sie jedoch durch das erstaunliche Video von CoinGecko:

In dieser Zeit begann Coinbase offiziell, das NEAR Protocol als handelbare Münze auf ihrer Plattform zu unterstützen. Das war ein großes Ereignis, weil Coinbase dafür bekannt ist, bei der Auswahl der unterstützten Münzen sehr selektiv zu sein. Dies trug dazu bei, NEAR zu einer vertrauenswürdigeren Plattform zu machen. Sie können NEAR auf Coinbase noch immer bis heute handeln.

Warum engagieren?

Nachdem ich einige Zeit nachgedacht hatte, entschied ich mich, meine Zeit darauf zu verwenden, am NEAR MetaBUILD III Hackathon teilzunehmen. Meine Begründung war folgende:

  • Krypto wird nicht verschwinden und ist eine Technologie, die bleiben wird. Daher war es sinnvoll, etwas Zeit in das Erlernen der Technologie zu investieren.
  • Der Hackathon bot großartige Belohnungen, zwischen 20.000 $ und 100.000 $ in NEAR, wenn man einer der Gewinner war.
  • Der Hackathon hatte eine feste Frist, was bedeutete, dass das Projekt nicht über Monate hinweg gezogen werden konnte, wie es bei vielen Nebenprojekten üblich ist.
  • Das Projekt wäre eine großartige Lernerfahrung und eine hervorragende Einführung in Hackathons.
  • Im schlimmsten Fall würde mir der Hackathon ermöglichen, ein großartiges Projekt zu erstellen, das ich in meinem Lebenslauf präsentieren kann.

Mit all dem im Hinterkopf rief ich am 26. August 2022 meinen engen Freund aus dem College an und wir begannen, für diesen Hackathon zu planen. Der Hackathon sollte am 23. September 2023 beginnen und am 21. November 2022 enden. Obwohl die Frist gegen Ende des Hackathons auf den 24. November 2023 verlängert wurde. Da wir einen Monat zu früh waren, beschlossen wir, diese Zeit zu nutzen, um zu lernen und zu brainstormen, woran wir für diesen zweimonatigen Hackathon arbeiten würden. Im ersten Monat erhielten wir einen allgemeinen Überblick über Krypto und Blockchains. Wir prüften und übten im Testnetz von NEAR, überprüften das NEAR SDK und setzten ein paar Smart Contracts ein.

Die Idee

Nachdem wir eine großartige Einführung in alles rund um Blockchain und NEAR erhalten hatten, begannen wir, Ideen zu brainstormen. Ich wollte, dass dieses Projekt nicht nur ein „Hackathon-Projekt“ ist, sondern etwas, das zu einem Produkt werden kann, das andere nutzen können und das als Beispiel dafür dient, wie Krypto für Dinge außerhalb des reinen Handels nützlich sein kann.

Mit diesem Gedanken beschlossen wir zunächst, etwas Ähnliches wie das Unreal Engine Blueprint zu erstellen, jedoch für die einfache Erstellung und Bereitstellung von Smart Contracts auf der NEAR-Blockchain ohne Programmieraufwand. Eine Woche vor Beginn des Hackathons ließen wir die Idee jedoch fallen, weil sie einfach keinen Sinn ergab. Warum sollte jemand unser Tool benutzen, um NEAR Smart Contracts zu erstellen, wenn es dafür noch keinen praktischen Anwendungsfall gibt? Es wäre, als würde man ein Tool entwickeln, das viele Menschen nicht benötigen.

Mit nur einer Woche bis zum Start des Hackathons begannen wir erneut zu brainstormen und entschieden uns für diese Idee:

A decentralized platform where AI researchers can outsource
data labeling to labelers around the world

Wir nannten das Projekt „Labeler NearBy“. Unsere Entscheidung, diese Idee zu wählen, basierte auf den folgenden Gründen:

  • KI-Entwicklung erfordert menschliche Kennzeichnung von Daten für das Training.
  • Das Finden und Verwalten von qualifizierten Personen für die Kennzeichnung spezifischer Datensätze ist herausfordernd.
  • Die Idee wurde bereits erfolgreich von einem Unternehmen namens Scale AI umgesetzt, wie daran zu sehen ist, dass sie eine Produkt-Markt-Passung gefunden haben.
  • Zentrale Dienste wie Scale AI werfen Bedenken auf, da Organisationen ihre Daten an das Kennzeichnungsunternehmen senden müssen, das dann weltweit menschliche Kennzeichner auslagert. Nach dem Kennzeichnungsprozess gibt das Unternehmen die gekennzeichneten Daten an die Organisation zurück. Dadurch verliert die Organisation die Kontrolle über wertvolle Trainingsdaten, die das Kennzeichnungsunternehmen zur Schulung eigener Modelle nutzen könnte. Die Dezentralisierung dieses Dienstes schien eine logische Lösung zu sein.
  • Wir fanden nur sehr wenige Projekte im Bereich dezentraler Apps (dApp), die an dieser Idee arbeiten, was uns die Möglichkeit bietet, in diesem Bereich zu innovieren und Vorreiter zu sein.

Um die Komplexität zu reduzieren, beschlossen wir, dass Labeler NearBy vorerst nur Bilddaten unterstützt.

Einreichung

Nachdem die Idee ausgewählt war und der Hackathon offiziell begonnen hatte, begannen mein Freund und ich mit dem Aufbau von Labeler NearBy. Wir arbeiteten zwei Monate an unserem Projekt, bis wir am 24. November 2022 den endgültigen Entwurf unseres Projekts bei Devpost einreichten. Wir reichten unser Projekt bei Devpost ein und erstellten auch eine Kopie unserer Einreichung auf GitHub. Dieser Blog deckt nicht jeden technischen Aspekt und Entwicklungsprozess von Labeler NearBy ab. Wenn Sie mehr darüber erfahren möchten, wie Labeler NearBy funktioniert, oder unsere endgültige Einreichung einsehen wollen, besuchen Sie bitte einen der folgenden Links:

Labeler NearBy besteht aus zwei Codebasen: ln-researcher und ln-labeler. Diese Codebasen sind vollständig Open Source unter der MIT-Lizenz und können über die folgenden Links eingesehen werden:

Hier ist ein allgemeiner Überblick darüber, wie Labeler NearBy (LN) funktionieren würde:

Ein Forscher benötigt gekennzeichnete Bilder, um sein KI-Modell zu trainieren. Dafür nutzt der Forscher LN, um seine Daten zu hosten und eine Möglichkeit für Kennzeichner bereitzustellen, die Daten zu kennzeichnen. Dies wird über ln-researcher erreicht, einen selbstgehosteten Webservice, der aus einer API, den Smart Contracts des Forschers und einer lokalen Postgres-Datenbank besteht. Für den Kennzeichner wird (wäre) ein Web-Frontend bereitgestellt, das ihm den Zugriff und die Kennzeichnung der Bilder des Forschers ermöglicht. Während des Kennzeichnungsprozesses wird ein Bild von verschiedenen Kennzeichnern jeweils dreimal gekennzeichnet. Nur der Kennzeichner mit den besten Kennzeichnungen, bestimmt durch ein Abstimmungssystem, wird mit NEAR-Coins belohnt. Die für diesen Prozess verantwortliche Web‑App heißt ln-labeler. Der Forscher finanziert jede Kennzeichnungsoperation, und NEAR-Coins können über Coinbase leicht in Dollar umgewandelt werden. Alle Transaktionslogistiken werden von Smart Contracts auf der NEAR‑Protocol‑Blockchain abgewickelt.

Sie können unser Demo‑Video von Labeler NearBy für den Hackathon hier ansehen:

Größte Leistung

Die Funktion, auf die ich am meisten stolz bin, ist eine Funktion namens getImage(). Diese Funktion dient als API‑Endpunkt in ln-researcher und spielt eine entscheidende Rolle in der Datenpipeline zwischen Forschern und Kennzeichnern in Labeler NearBy (LN).

Dieser API‑Endpunkt ermöglicht es Forschern, ihre Bilder sicher und zuverlässig zur Kennzeichnung zu verteilen. Die Kennzeichnungsaufgaben werden über einen NEAR‑Smart‑Contract auf der NEAR‑Protocol‑Blockchain verwaltet, während die Bilddaten vom Forscher über ln-researcher gehostet werden.

Der Endpunkt führt eine Reihe von Sicherheitsprüfungen durch, um sicherzustellen, dass nur der zugewiesene Kennzeichner auf das Bild zugreifen kann. Dies beinhaltet die Überprüfung der Signatur der Anfrage und die Prüfung des zugehörigen Smart Contracts, um die Existenz der Aufgabe und deren Zuweisung an den anfragenden Kennzeichner zu bestätigen.

Sobald die Anfrage in der selbstgehosteten ln-researcher API des Forschers validiert ist, ruft die Funktion das Bild aus der lokalen Postgres‑Datenbank ab, verschlüsselt das Bild und liefert es an den autorisierten Kennzeichner, der das Bild anschließend für die Kennzeichnung entschlüsseln kann. Gleichzeitig aktualisiert die Funktion den Status des Bildes in der Datenbank, um den Fortschritt der Bildkennzeichnung anzuzeigen. Während dieses Prozesses werden RSA‑Schlüssel sowohl des Forschers als auch des Kennzeichners zur Authentifizierung verwendet. AES‑Verschlüsselung wird zum Verschlüsseln des Bildes eingesetzt.

Dieser Endpunkt spielt eine entscheidende Rolle bei der Verwaltung der sicheren und kontrollierten Verteilung von Bildern von Forschern zu Kennzeichnern. Er gewährleistet einen sicheren Datentransfer und verfolgt und verwaltet den Bildkennzeichnungsprozess effektiv. Darüber hinaus hat dieser Prozess das Potenzial, die Notwendigkeit der Verwendung von HTTPS zumindest für diesen Endpunkt zu eliminieren.

Dieser spezifische Endpunkt/Funktion wurde getestet und als funktionsfähig erwiesen. Unten ist ein Diagramm, das die Gesamtfunktionalität von Labeler NearBy veranschaulicht, einschließlich einer klaren Darstellung, wie der oben erwähnte Endpunkt/Funktion funktioniert:

Ergebnis

Leider ist die traurige Realität, dass wir dieses Projekt nicht vollständig bis zum Hackathon-Deadline abschließen konnten. Der größte Teil des Projekts war fertiggestellt, wie zum Beispiel der ln-researcher, aber das Frontend (ln-labeler) war nicht fertig und wir konnten keine Live-Demo bereitstellen. Obwohl das Backend (ln-researcher) im Wesentlichen fertig war, konnten wegen des nicht funktionierenden Frontends und fehlender Live-Demo niemand die Idee von Labeler NearBy ausprobieren. Nicht nur das, sondern die Juroren konnten das Projekt nicht testen und mussten stattdessen die Einreichung lesen, den Code durchgehen und/oder versuchen, ihn selbst auszuführen. Das ließ unsere Gewinnchancen praktisch auf null Prozent sinken. Das wurde am 15. Dezember 2022 bestätigt, als die Hackathon-Gewinner bekannt gegeben wurden, und wir gehörten nicht dazu.

Verlieren

Ich werde nicht verbergen, dass das Endergebnis dieses Hackathons entmutigend war. Monate wurden in dieses Projekt investiert und ich hatte eine große Vision dafür, da ich dachte, es würde Forschern ein sehr nützliches Werkzeug bieten.

Ich habe einen klaren Standard für die Projekte, die ich angehe: Sie sind entweder erfolgreich oder sie scheitern; es gibt keinen Mittelweg. Also war dieses Projekt ein Misserfolg, weil es nicht vollständig bis zur Frist fertiggestellt wurde und für potenzielle Nutzer unzugänglich blieb.

Aber es ist wichtig, sich daran zu erinnern, dass Scheitern ein natürlicher Teil des Lebens ist. Unsere Erfolge basieren auf den Lektionen, die wir aus unseren Misserfolgen lernen. Obwohl das Ergebnis dieses Hackathons entmutigend war, lieferte es dennoch wertvolle Erkenntnisse für die Entwicklung und den Aufbau eines Projekts/Produkts.

Gelernte Lektionen

Die wichtigsten Lektionen, die ich aus dieser Erfahrung gezogen habe, waren die folgenden:

  1. Das Projekt, das wir ausgewählt haben, erforderte viele Funktionen, die im Voraus gebaut werden mussten, bevor wir iterieren konnten. Was meine ich damit? Nun, dieses Projekt erforderte, dass fast alle Komponenten der Idee fertiggestellt wurden, bevor wir die Idee überhaupt testen konnten. Es wäre sinnvoller gewesen, ein Projekt zu wählen, das weniger wesentliche Komponenten zum Funktionieren benötigte. Auf diese Weise hätten wir die wesentlichen Komponenten schneller bauen können und dann früher am Projekt iterieren können. Dadurch hätten wir die Frist leichter einhalten und ein Projekt schaffen können, das vielleicht einfacher, aber vollständiger gewesen wäre. YC, ein Tech-Startup-Accelerator, betont, dass man schnell starten, mit Nutzern sprechen und iterieren sollte. Wir hätten das mit unserem Projekt für diesen Hackathon tun sollen.
  2. Wir haben unterschätzt, wie lange der Bau dieses Projekts dauern würde. Dies war unser erster Hackathon und unser erstes Mal, dass wir eine dezentrale Anwendung (dApp) erstellt haben. Darüber hinaus arbeitete ich Vollzeit als Softwareingenieur und mein Freund schloss seinen Master ab. Trotzdem dachten wir, dass 2 Monate ausreichen würden. Es wäre sinnvoller gewesen, den Umfang des Projekts zu reduzieren und/oder ein weiteres Teammitglied zu finden, das unsere Arbeitsbelastung verringern könnte.
  3. Winston Churchill sagte berühmt: „Perfektion ist der Feind des Fortschritts“. Ich behandelte dieses Projekt wie ein Business-to-Customer (B2C)-Produkt, obwohl es in Wirklichkeit nur ein Hackathon-Projekt und höchstens ein Minimalprodukt (MVP) war. Daher habe ich zu Beginn zu viel Zeit mit kleinen Details verschwendet, anstatt meine Zeit darauf zu konzentrieren, die Kernfunktionen ausreichend zum Laufen zu bringen.

Zusätzlich zu diesen wertvollen Lektionen habe ich neue Fähigkeiten erworben, die sowohl in meinen persönlichen Nebenprojekten als auch in beruflichen Vorhaben von unschätzbarem Wert sind. Diese Fähigkeiten umfassen:

  1. Entwicklung von APIs mit Node.js, JavaScript und Express.js
  2. Einrichtung und Nutzung von PostgreSQL für Datenmanagement
  3. Einbindung von PostgreSQL in die API-Entwicklung durch die Verwendung von Paketen wie PG.
  4. Verwendung von RSA (asymmetrische Verschlüsselung) und AES (symmetrische Verschlüsselung) für verbesserte Datensicherheit.

Fazit

Insgesamt bin ich froh, dass wir an diesem Hackathon teilgenommen haben, obwohl ich vom Endergebnis enttäuscht bin. Ich bin dankbar für die wertvollen Lektionen und Fähigkeiten, die ich bei der Arbeit an Labeler NearBy erworben habe, da sie mich zu einem besseren Entwickler gemacht haben und wesentlich zur Entwicklung meines nächsten Projekts beigetragen haben: Notify-Cyber.

Weitere Anmerkungen

  • Ich könnte zu Labeler NearBy zurückkehren, aber für den Moment befindet sich dieses Projekt in einer „langen Pause“
  • Derzeit sollte Labeler NearBy NUR im Testnetz von NEAR laufen. Es benötigt weitere Entwicklung, Tests und Audits.