


Ist es möglich, gRPC mit Hyperledger-Chaincode zu verwenden, und wenn ja, wie können Fehler bei Aufrufen im Testnetzwerk vermieden werden?
php-Editor Xigua ist hier, um Ihre Fragen zu beantworten. Ja, Sie können gRPC mit Hyperledger Chaincode verwenden. gRPC ist ein leistungsstarkes Open-Source-RPC-Framework (Remote Procedure Call), das es Ihrem Chaincode ermöglicht, mit anderen Diensten zu kommunizieren. Um Fehler bei Anrufen im Testnetz zu vermeiden, können Sie mehrere Schritte unternehmen. Stellen Sie zunächst sicher, dass Ihr Testnetzwerk konfiguriert ist und ordnungsgemäß funktioniert. Überprüfen Sie zweitens Ihren Code und Ihre Konfigurationsdateien, um sicherzustellen, dass Sie gRPC korrekt verwenden. Schließlich sollten Sie über eine angemessene Fehlerbehandlung und -protokollierung verfügen, damit etwaige Probleme umgehend erkannt und behoben werden. Mit diesen Schritten sollten Sie in der Lage sein, Fehler bei Anrufen in Ihrem Testnetzwerk zu vermeiden und reibungslos über gRPC zu kommunizieren.
Frageninhalt
Ich möchte grpc im Fabric Chaincode verwenden, um eine kettenübergreifende Kommunikation zu erreichen, anstatt Fabric SDK zu verwenden. Aber wenn ich die Chaincode-Funktion auf Fabric-Sample/Test-Network aufrufe, erhalte ich immer eine Fehlermeldung.
error: endorsement failure during invoke. response: status:500 message:"error in simulation: failed to execute transaction eb5e480bd4075a767f56ae263741ca0f5f19620ef88952e26b7f1952bdbe83cd: could not launch chaincode chaincode_1.2:d3f97f15a635e73d3de230c8e5899e5fb95a68cf897c03e19f9e4eeca7ca3fd5: chaincode registration failed: container exited with 2"
Kann mir jemand sagen, was diesen Fehler verursacht? Gibt es einen Fehler in meinem Chaincode oder kann Grpc nicht in Chaincode-Funktionen verwendet werden?
Mein Kettencode für grpc:
func (s *smartcontract) begin(ctx contractapi.transactioncontextinterface) error { server.main() return nil } func (s *smartcontract) client(ctx contractapi.transactioncontextinterface) error { // client.clientfunc is the client main function client.clientfunc(xt, r, sign, m) }
server.go
func main() { listen, err := net.listen("tcp", ":9090") if err != nil { fmt.printf("failed to listen: %v", err) return } grpcserver := grpc.newserver() pb.registersendserviceserver(grpcserver, &server{}) err2 := grpcserver.serve(listen) if err2 != nil { fmt.printf("failed to serve: %v", err2) return } }
client.go
func Clientfunc(Xt *btcec.PublicKey, R *btcec.PublicKey, s *big.Int, m []byte) []byte { conn, err := grpc.Dial("127.0.0.1:9090", grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { log.Fatalf("did not connect: %v", err) } defer conn.Close() client := pb.NewSendServiceClient(conn) output := &pb.SignInput{ XtX: Xt.X().Int64(), XtY: Xt.Y().Int64(), M: m, RX: R.X().Int64(), RY: R.Y().Int64(), S: s.Int64(), } resp, _ := client.Send(context.Background(), output) return resp.GetM() }
Lösung
Wer kann mir sagen, was diesen Fehler verursacht?
Weitere Informationen finden Sie unter Hyperledger Fabric v2.x/Log Control . Dort erfahren Sie, was die Ursache ist. Fehler 500 (Interner Serverfehler) ist das Serverprotokoll
Je nachdem, wie Sie es ausführen:
docker logs <chaincode_container_id> kubectl logs -n <namespace> <pod_name> oc logs -n <namespace> <pod_name>
Dies kann an einem Problem in Ihrem Chaincode liegen (z. B. einem Fehler in Ihrem GRPC-Code) oder an der Umgebung, in der der Chaincode ausgeführt wird.
Aufgrund Ihres Codes könnten Sie erwägen, den Grpc-Server nicht in Chaincode zu starten (server.main()
). Chaincode läuft innerhalb eines Hyperledger-Fabric-Netzwerks und wickelt die Netzwerkkommunikation nicht wie eine eigenständige Anwendung ab.
Stattdessen sollten Sie den grpc-Server zu einem separaten Dienst machen, der unabhängig ausgeführt wird, und der Chaincode kann dann bei Bedarf mit diesem Dienst kommunizieren.
plus client.clientfunc()
scheint die grpc-Verbindung herzustellen, die Anfrage zu senden und auf die Antwort zu warten. Dies ist ein synchroner Vorgang und kann Probleme verursachen, wenn das Eintreffen der Antwort lange dauert. Es ist besser, asynchrone Vorgänge zu verwenden (d. h. eine Anfrage senden und die Antwort in einer Rückruffunktion verarbeiten), um eine Blockierung der Chaincode-Ausführung zu vermeiden.
Und... man sollte Fehler von client.send()
;)
Stellen Sie sicher, dass Ihr GRPC-Server keine sicheren Verbindungen erfordert, da sonst grpc.withtransportcredentials(insecure.newcredentials())
(unsichere Verbindungen ohne SSL/TLS) fehlschlagen.
Im Allgemeinen wird empfohlen, die Kommunikation mit externen Systemen (z. B. über grpc) innerhalb der Fabric-Client-Anwendung und nicht innerhalb des Chaincodes selbst abzuwickeln.
Wenn ich nur Chaincode anstelle einer Fabric-Anwendung verwenden möchte, gibt es dann eine Möglichkeit, zwischen Organisationen auf verschiedenen Kanälen zu kommunizieren?
Die Kommunikation zwischen Organisationen auf verschiedenen Kanälen kann komplex sein, da es ein grundlegender Aspekt des Hyperledger-Fabric-Designs ist, dass Kanäle voneinander isoliert sind, um den Datenschutz zu gewährleisten.
Sie könnten darüber nachdenken:
-
Chaincode-Funktionen: Eine Organisation kann eine Chaincode-Funktion auf ihrem eigenen Kanal aufrufen, die wiederum eine Chaincode-Funktion auf einem anderen Kanal aufruft. Dies ist möglich, da Chaincodes mehreren Kanälen zugeordnet werden können.
Beachten Sie, dass bei diesem Ansatz die Einschränkung besteht, dass der zweite Funktionsaufruf nicht zur gleichen Transaktion wie der erste Funktionsaufruf gehört. Wenn also die erste Transaktion fehlschlägt, kann sie nicht zurückgesetzt werden. -
Doppelte Mitgliedschaft: Eine Organisation kann mehreren Kanälen angehören. Daher kann es Daten von einem Kanal lesen und Daten auf einen anderen Kanal schreiben. Dies erfolgt jedoch in zwei separaten Transaktionen, sodass die Atomizität nicht garantiert ist.
Private Data Collection (PDC): Wenn das Ziel darin besteht, private Daten zwischen bestimmten Organisationen (oder sogar über verschiedene Kanäle hinweg) zu teilen, kann PDC eine Option sein. pdc ermöglicht einer definierten Untergruppe von Organisationen auf einem Kanal, private Daten zu unterstützen, zu übermitteln oder abzufragen, ohne die Daten an alle Organisationen auf dem Kanal verteilen zu müssen.
-
Interoperabilitätslösungen: Es werden auch fortschrittlichere Lösungen für die Blockchain-Interoperabilität entwickelt, wie zum Beispiel das Interledger-Protokoll (ilp), das zwischen verschiedenen Fabric-Netzwerken verwendet werden kann (oder sogar Daten oder Vermögenswerte vollständig zwischen verschiedenen Arten von Netzwerken verschieben kann). Blockchain-Netzwerke).
Allerdings befinden sich diese Technologien noch weitgehend im Forschungs- und Entwicklungsstadium und sind möglicherweise noch nicht reif für den Serieneinsatz.
Das obige ist der detaillierte Inhalt vonIst es möglich, gRPC mit Hyperledger-Chaincode zu verwenden, und wenn ja, wie können Fehler bei Aufrufen im Testnetzwerk vermieden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Digital Currency Rolling -Positionen ist eine Anlagestrategie, mit der die Kreditvergabe zur Erhöhung der Renditen zur Erhöhung der Rendite verwendet wird. In diesem Artikel wird der Prozess der digitalen Währung im Detail im Detail erläutert, einschließlich der wichtigsten Schritte wie der Auswahl von Handelsplattformen, die das Rolling (wie Binance, Okex, Gate.io, Huobi, Bitbit usw.), ein Hebelkonto eröffnen, ein Hebel mehrerer Hebelfunktionen für den Handel und die Anpassung des Marktes und die Anpassung der Markteinführungen oder die Hinzufügung von Flüssigkeitsfonds, um eine Flüssigkeitsanleihe anzupassen. Der Handel mit Rolling -Position ist jedoch äußerst riskant, und Anleger müssen mit Vorsicht vorgehen und vollständige Risikomanagementstrategien formulieren. Um mehr über Tipps zur Digitalwährung zu erfahren, lesen Sie bitte weiter.

Die Handhabungsgebühren der Gate.IO -Handelsplattform variieren je nach Faktoren wie Transaktionstypen, Transaktionspaar und Benutzer -VIP -Ebene. Der Ausfallgebührenpreis für den Spot-Handel beträgt 0,15% (VIP0-Level, Hersteller und Taker). Die VIP-Ebene wird jedoch anhand des 30-tägigen Handelsvolumens und der GT-Position des Benutzers angepasst. Je höher das Niveau ist, desto niedriger wird der Gebührensatz. Es unterstützt die GT -Plattform -Münzabzug und Sie können einen Mindestrabatt von 55% Rabatt genießen. Die Ausfallrate für Vertragstransaktionen beträgt Maker 0,02%, Taker 0,05% (VIP0 -Niveau), was ebenfalls von VIP -Ebene und unterschiedlichen Vertragstypen und Hebelwerken beeinflusst wird

In diesem Artikel wird ausführlich die Registrierungs-, Nutzungs- und Stornierungsverfahren von Ouyi Okex -Konto eingeführt. Um sich zu registrieren, müssen Sie die App herunterladen, Ihre Handynummer oder E-Mail-Adresse eingeben, um sich zu registrieren, und die authentifizierte Authentifizierung abschließen. Die Verwendung deckt die Betriebsschritte wie Anmeldung, Aufladung und Rückzug, Transaktion und Sicherheitseinstellungen ab. Um ein Konto zu kündigen, müssen Sie den Kundendienst von Ouyi Okex kontaktieren, die erforderlichen Informationen bereitstellen und auf die Bearbeitung warten und schließlich die Bestätigung des Konto -Stornierens erhalten. In diesem Artikel können Benutzer das vollständige Lebenszyklusmanagement von Ouyi Okex -Konto problemlos beherrschen und digitale Asset -Transaktionen sicher und bequem durchführen.

In diesem Artikel wird zehn bekannte Websites für die Empfehlungen im Zusammenhang mit der virtuellen Währung empfohlen, darunter Binance Academy, OKX Learn, Coingecko, Cryptoslate, Coindesk, Investopedia, Coinmarketcap, Huobi University, Coinbase Learn und Cryptocompare. Diese Websites liefern nicht nur Informationen wie Marktdaten für virtuelle Währungen, Preistrendanalyse usw., sondern auch umfangreiche Lernressourcen, einschließlich grundlegender Blockchain -Kenntnisse, Handelsstrategien sowie Tutorials und Überprüfungen verschiedener Handelsplattform -Apps, wodurch Benutzer dazu beitragen, sie besser zu verstehen und zu nutzen

Dieser Artikel enthält eine vollständige Anleitung zur Anmeldung und Registrierung in der Binance -PC -Version. Zunächst haben wir die Schritte zur Anmeldung in Binance PC -Version ausführlich erklärt: Suchen Sie nach "Binance Official Website" im Browser, klicken Sie auf die Schaltfläche Anmeldung und geben Sie die E -Mail und das Passwort ein (aktivieren Sie 2FA, um den Überprüfungscode einzugeben), um sich anzumelden. Zweitens erklärt der Artikel den Artikel: Klicken Sie auf die Schaltfläche "Registrieren", die E -Mail -Adresse, ein starkes Passwort festlegen, und verifizieren Sie die E -Mail -Adresse, um die Registrierung zu vervollständigen. Schließlich betont der Artikel auch die Kontosicherheit und erinnert die Benutzer daran, auf den offiziellen Domainnamen, die Netzwerkumgebung und die regelmäßige Aktualisierung von Kennwörtern zu achten, um die Sicherheit der Kontos und eine bessere Verwendung verschiedener Funktionen durch die Binance -PC -Version zu gewährleisten, z. B. die Ansicht der Marktbedingungen, die Durchführung von Transaktionen und die Verwaltung von Vermögenswerten.

Dieser Artikel listet die zehn bekannten Web3-Handelsplattformen auf, darunter Binance, OKX, Gate.io, Kraken, Bybit, Coinbase, Kucoin, Bitget, Gemini und Bitstamp. Der Artikel vergleicht die Merkmale jeder Plattform im Detail, z. B. die Anzahl der Währungen, Handelstypen (Spot, Futures, Optionen, NFT usw.), Handhabungsgebühren, Sicherheit, Compliance, Benutzergruppen usw., um den Anlegern dabei zu helfen, die am besten geeignete Handelsplattform auszuwählen. Egal, ob es sich um Hochfrequenzhändler, Vertragshandelsbegeisterte oder Investoren, die sich auf Compliance und Sicherheit konzentrieren, sie können Referenzinformationen daraus finden.

Es zählt zu den Top der Welt und unterstützt alle Kategorien von Transaktionen wie Spot, Verträgen und Web3 -Geldbörsen. Es hat hohe Sicherheits- und niedrige Handhabungsgebühren. Eine umfassende Handelsplattform mit einer langen Geschichte, die für ihre Einhaltung und hohe Liquidität bekannt ist, unterstützt mehrsprachige Dienstleistungen. Der Branchenführer deckt den Währungshandel, die Hebelwirkung, die Optionen usw. mit starker Liquidität ab und unterstützt die Gebühren für die BNB -Abzüge.

Sesame Exchange Gate.io -Webversion ist bequem zu melden. Geben Sie einfach "Gate.io" in die Browseradressleiste ein und drücken Sie die Eingabetaste, um auf die offizielle Website zuzugreifen. Die Concise Homepage bietet klare Optionen "Anmeldung" und "Register", und Benutzer können sich für ein registriertes Konto anmelden oder ein neues Konto gemäß ihrer eigenen Situation registrieren. Nach der Registrierung oder Anmeldung können Sie die Haupthandelsschnittstelle eingeben, um den Handel mit Kryptowährungen durchzuführen, die Marktbedingungen und das Kontomanagement zu überprüfen. Gate.io verfügt über eine freundliche Schnittstelle und ist einfach zu bedienen, geeignet für Anfänger und professionelle Händler.
