API Gateway für Web3: Wie APISIX Hyperchain stärkt

August 9, 2021

Case Study

Überblick

Als weltweit führender Anbieter von Unternehmens- und Konsortiums-Blockchain-Infrastrukturen und Lösungen ist Hyperchain Technologies bestrebt, innovative Infrastrukturen aufzubauen und die digitale Entwicklung der Gesellschaft zu fördern. Während seines rasanten Wachstums stieß Hyperchain bei der Einrichtung seiner Hyperchain-Blockchain-Plattform auf zahlreiche Probleme, wie folgt:

  • Kein standardisiertes Traffic-Management mit dem potenziellen Risiko eines Systemzusammenbruchs
  • Unvollständige Sicherheitskontrolle und Authentifizierungsverwaltung
  • Unbequeme Berechtigungskontrolle
  • Hohe Kosten für öffentliche Netzwerk-IP-Adressen
  • Instabile Blockchain-Knoten: Einzelne Knoten sind anfällig für Angriffe
  • Fehlende einheitliche Verwaltung mehrerer Protokolle

Hyperchain probierte Kong und NGINX aus, aber leider konnten diese die Geschäftsszenarien von Hyperchain nicht zufriedenstellend abdecken. Nach der Einführung von Apache APISIX wurden jedoch alle oben genannten Probleme gelöst, wodurch die Hyperchain-Blockchain-Plattform mit unendlicher Vitalität ausgestattet wurde.

Über die Hyperchain-Blockchain-Plattform

Die Hyperchain-Blockchain-Plattform bezieht sich auf die Einbettung des Blockchain-Frameworks in die Cloud-Computing-Plattform, wobei die Vorteile der Cloud-Service-Infrastruktur in Bezug auf Bereitstellung und Verwaltung genutzt werden. Es handelt sich um eine offene Blockchain-Plattform, die Entwicklern ein bequemes und leistungsstarkes Blockchain-Ökosystem sowie unterstützende Dienstleistungen bietet und auch die Geschäftserweiterung und den Betrieb von Entwicklern in Web3 unterstützt.

Die Hyperchain-Blockchain-Plattform kann das Blockchain-Netzwerk schnell und flexibel aufbauen. Mit der Plattform können Unternehmen das Blockchain-Geschäft einheitlich verwalten. Beispielsweise können wir über die Plattform Verträge in der integrierten Entwicklungsumgebung unterzeichnen und diese dann in unserem erstellten Blockchain-Netzwerk bereitstellen. Das übergeordnete Dienstmodul kann blockchain-bezogene Verträge aufrufen, um den Geschäftsprozess fortzusetzen.

Da es viele Knoten in der Kette gibt, die von Dutzenden bis zu Tausenden reichen, wird es für uns schwierig, den Betrieb der Kette ohne die Unterstützung der Plattform zu überwachen und zu warten. Durch die Nutzung der Hyperchain-Blockchain-Plattform können Benutzer nicht nur Kosten sparen, sondern auch die Blockchain bequemer verwalten und die Sicherheit des gesamten Systems verbessern.

Lassen Sie uns Hyperchain als Beispiel nehmen, um herauszufinden, wie und warum Blockchain-Unternehmen Apache APISIX unter vielen API-Gateways auswählen sollten. Im Folgenden werden wir die Anwendung von APISIX sowohl in der Hyperchain-Blockchain-Plattform als auch im Blockchain-Knoten analysieren.

APISIX’s Anwendung in der Hyperchain-Blockchain-Plattform

Unten ist ein Anwendungsinteraktionsdiagramm von APISIX in der Hyperchain-Blockchain-Plattform dargestellt. Der Backend-Dienst registriert die Dienstinformationen bei etcd entsprechend seinen Geschäftsmerkmalen und registriert dann den Dienst bei APISIX über das Routenregistrierungsmodul.

APISIX fungiert als einheitlicher Einstiegspunkt für interne Microservices im System. Externe Anfragen werden zunächst an APISIX gesendet; dann besuchen sie die Zugriffsschicht über die API, nachdem sie die Authentifizierung bestanden haben, und später besuchen sie die Kernservices über RPC (Remote Procedure Call).

Hyperchain-Anwendungsinteraktionsdiagramm

Routenweiterleitung

Manchmal sollen APIs unter demselben Domainnamen verfügbar gemacht werden. In diesem Fall können wir einige Präfixe zum API-Pfad desselben Dienstes hinzufügen, wie z.B. /baas-core oder /baas-other. Wenn der Client diese APIs anfordert, muss das API-Gateway diese hinzugefügten Präfixe entfernen und die Anfrage dann an den Backend-Dienst weiterleiten. Das proxy-rewrite-Plugin von APISIX kann uns dabei helfen, solche Fälle bequem zu handhaben.

Beispiel: Wenn Sie besuchen: http://apisix:8080/baas-{service}/api/v1/… Kann die Anfrage an http://{service}/api/v1/… weitergeleitet werden durch das Schreiben eines regulären Ausdrucks: ^/baas-core/(.*)$,/$1

proxy-rewrite-Plugin-Bearbeitung

Traffic-Limit-Management

Benutzer können Konsortiums-Blockchains nach ihren Bedürfnissen auswählen, nicht nur die von Hyperchain, sondern auch IBM Data Fabric, Baidu XuperChain usw. Daher muss Hyperchain den Lebenszyklus aller Konsortiums-Blockchains im System verwalten.

Bei der Erstellung einer Konsortiums-Blockchain muss Hyperchain nur den Hardcode auf der Blockchain-Plattform schreiben und die steckbaren Treiberkomponenten auf die Blockchain-Plattform hochladen, um die Konsortiums-Blockchain zu erstellen. In einigen privaten Bereitstellungsfällen können die steckbaren Treiberkomponenten schnell unterstützen.

Jeder Aufruf der Treiberkomponenten ist ein Prozess, der begrenzt werden muss, insbesondere wenn die Anzahl groß ist. Folglich kann das limit-req-Plugin von APISIX nützlich sein, um den Traffic-Eingang und -Ausgang der Plattform zu begrenzen und so deren Stabilität zu sichern.

Das limit-req-Plugin ermöglicht eine benutzerdefinierte Konfiguration von Rate und Burst.

limit-req-Plugin-Modell

Sicherheitskontrolle und Berechtigungsverwaltung

Um mit APISIX zusammenzuarbeiten, entwickelte Hyperchain ein Plugin für private Bereitstellungsumstände. Partei A bevorzugt oft die Nutzung ihrer eigenen Authentifizierungsdienste oder Dienstkontensysteme. Wenn der Frontend-Traffic die Website besucht, durchläuft er zunächst das Access-auth-Plugin und kann nur dann auf das Backend BFF (Backend for Frontend) zugreifen, wenn die Authentifizierung bestanden wurde.

Authentifizierungsprozessdiagramm

Gemäß den drei Schlüsselfaktoren der Restful-Standardspezifikation (die Authentifizierungsinformationen, der Restful-Pfad und HTTP-Verben wie GET, POST, PUT, DELETE, PATCH usw.) wird eine Konto-Rolle-Berechtigungsauthentifizierung durchgeführt. Wenn die Authentifizierung bestanden wird, werden die Benutzerinformationen im Header zurückgegeben; wenn nicht, wird 403 zurückgegeben.

API-Authentifizierungspfad

Hot Reloading

APISIX bietet Hot Reloading von intern entwickelten Plugins an. Es spart Zeit während der Entwicklung und ermöglicht Benutzern, Teile ihres Codes zu ändern, ohne den gesamten Plugin-Runner neu zu starten. Auf diese Weise können Entwickler Anpassungen an der Schnittstelle im Backend vornehmen, die sofort wirksam werden, was für Online-Veröffentlichungen bequem und benutzerfreundlich ist.

Warum nicht Kong?

Hyperchain hatte zuvor Kong verwendet, ersetzte es jedoch schließlich durch Apache APISIX, hauptsächlich weil

  • Hohe Bereitstellungs- und Wartungskosten

    Der Kong-Cluster muss mit der Postgresql-Datenbank zusammenarbeiten und erfordert einen spezifischen Datenbankadministrator für hohe Verfügbarkeit. Die Cluster-Bereitstellung der Postgresql-Datenbank ist relativ schwierig zu implementieren und erhöht die Kosten für den späteren Betrieb und die Wartung.

  • Erhöhung der Systemkomplexität und der Ausfallrate

    Die Hyperchain-Blockchain-Plattform verwendet die MySQL-Datenbank, was zu zwei relationalen Datenbanken im System führt, wenn Kong verwendet wird, was das System komplizierter macht. Es erhöht auch die Ausfallrate bei der Verbesserung der Kompatibilität zwischen den beiden Datenbanksätzen.

APISIX’s Anwendung im Blockchain-Knoten

Hyperchain-Blockchain-Diagramm

Kostenersparnis bei öffentlichen Netzwerk-IP-Adressen

Der Benutzer kauft Blockchains über die Hyperchain-Blockchain-Plattform. Dann können die übergeordneten Geschäfte und Entwicklerclients eine Verbindung zu den Knoten herstellen. Die Dienste können eine Verbindung zu einem oder mehreren Knoten herstellen, und die Benutzer können auf einen oder mehrere Knoten zugreifen, was ein Problem mit sich bringt: Fast alle Knoten werden besucht, was den Besuchsdruck eines einzelnen Knotens erhöht.

In einigen privaten Beschäftigungsumgebungen ist dies relativ einfach zu handhaben. Für Systeme, die auf Internetnutzer abzielen, sind jedoch zu viele Knoten und öffentliche Netzwerk-IPs erforderlich. Der Preis für jede öffentliche Netzwerk-IP von 4 Megabyte Traffic kann fast 200 CNY pro Monat erreichen. Es gibt Tausende von Knoten auf der Hyperchain-Plattform, was hohe öffentliche IP-Kosten verursacht.

APISIX verwaltet alle Besuchsanfragen und verteilt den Traffic auf die entsprechenden Blockchain-Knoten. Auf diese Weise sparte Hyperchain hohe Kosten.

Hyperchain-Modus mit APISIX

Bequeme Berechtigungskontrolle

Es gibt verschiedene Blockchains auf der Hyperchain-Blockchain-Plattform, und jede Kette hat verschiedene komplizierte RBAC-Berechtigungskontrollen. Daher müssen verschiedene Arten von Zertifikaten auf der Client-Seite hinzugefügt werden, wie z.B. TLS-Zertifikate, was auch Benutzer verwirrt.

Derzeit kann das key-auth-Plugin von APISIX verwendet werden, um dieses Problem effizient zu lösen. Autorisierte Benutzer können direkt auf die Blockchain zugreifen, ohne sich um die Berechtigungskonfiguration zu kümmern, da APISIX die zugrunde liegende Kette vereinheitlicht.

Clustering verbessert die Knotenstabilität

Wie oben erwähnt, werden die Knoten häufig besucht. Bei den meisten Bankbenutzern besteht eine hohe Parallelität, da die TPS (Transaktionen pro Sekunde) 40.000-50.000 Mal erreichen kann.

Es stellt sich heraus, dass ein einzelner Knoten auf der Blockchain anfällig ist, da jede Transaktion den besuchten Knoten beeinflusst.

Hyperchain hat Apache APISIX auf K8s mit dem Horizontal Pod Autoscaler bereitgestellt. Da APISIX etcd mit guter dynamischer Skalierbarkeit verwendet, kann es das Problem des Einzelpunkt-Traffic-Impacts effektiv lösen.

Unterstützung mehrerer Protokolle

Die Protokolle der heterogenen Ketten auf der Hyperchain-Blockchain-Plattform sind vielfältig, wie z.B. HTTP-Protokoll, Websocket-Protokoll, gRPC-Protokoll, TCP-Protokoll, UDP-Protokoll usw.

APISIX unterstützt mehrere Protokolle und passt sich flexibel den zugrunde liegenden Schichten verschiedener Blockchains an, wodurch die Entwicklungskosten reduziert werden.

Warum nicht NGINX?

Es scheint, dass Hyperchain NGINX nutzen könnte, um seine Probleme zu lösen. Nach dem Test gab Hyperchain es jedoch auf, weil

  • Ungeeignet für dynamische Erweiterung

    Hyperchain muss häufig Knoten in der Blockchain-Plattform hinzufügen und löschen, was erst nach einem Neustart wirksam wird, was für Entwickler unbequem ist. Darüber hinaus müssen Entwickler komplexen Regelcode für Plugins in der conf-Datei von NGINX schreiben.

  • Schwierig zu clustern

    NGINX unterstützt kein Clustering, was relativ komplex und unfreundlich für Benutzer ist.

  • Keine direkte Unterstützung für TCP und UDP

    NGINX kann nur das 7-Schichten-Protokoll und nicht das 4-Schichten-Protokoll proxyen und kann TCP- und UDP-Protokolle nicht direkt unterstützen. Darüber hinaus ist das Modul nicht standardmäßig kompiliert und erfordert eine zusätzliche Verarbeitung.

  • Kein Dashboard

    Es gibt keine visualisierte Schnittstelle für NGINX, was es für Entwickler und Betreiber schwierig macht, so viele Knoten zu verwalten.

Zusammenfassung

Aus den oben genannten Inhalten wissen wir, dass Apache APISIX ein dynamisches API-Gateway ist, das im Blockchain-Bereich angewendet werden kann. Darüber hinaus bietet Apache APISIX umfangreiche Traffic-Management-Funktionen wie Lastenausgleich, dynamisches Upstream, Canary-Release, Circuit Breaking, Authentifizierung, Beobachtbarkeit usw.

Wir hoffen, dass APISIX mehr Blockchain-Unternehmen unterstützen kann, um in eine weitere Entwicklungsphase einzutreten. Willkommen, um mehr über Apache APISIX zu erfahren. Sie können uns unter https://api7.ai/contact kontaktieren.

Tags: