Kann mit dem API-Schlüssel keine Verbindung zu Ethereum-Netzwerken herstellen

Ich folgte einem Tutorial darüber, wie man web3 mit Ethereum-Netzwerken verbindet. Ich habe mich bei infura.io registriert und bekomme alle URLs. Aber wenn ich versuche, eine Verbindung zu einem beliebigen Netzwerk herzustellen, wird keine Verbindung hergestellt. Wenn ich web3 drucke, ist der Verbindungsstatus immer falsch. Unten ist mein Code und ich verwende 1.0.0-beta.34 von web3

web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/v3/MY_API_KEY'));
web3.eth.net.getNetworkType(function(err, res){
     console.log("Network Type: "+res); //Displaying undefined
});

Ich habe es mit Hauptnetz, Ropsten und Kovan versucht. Alle werden angezeigt undefined. Ich weiß nicht, was hier das Problem ist. Alle Beispiele im Web zeigen nur diese Zeilen. Kann mir jemand helfen, das zu lösen? Danke dir.

v3ist ein neuer Endpunkt? Meine Infura-URL ist nicht v3wie deine
vorgestern habe ich sie nur mit v3 versehen nur eingetragen. Ich habe auch versucht, v3 zu entfernen, aber es hat nicht funktioniert. Wenn Sie einen funktionierenden Code haben, können Sie ihn bitte teilen.
Bitte beziehen Sie sich darauf, indem Sie die Metamaske ethereum.stackexchange.com/questions/28883/… verwenden.
Mein Problem ist, dass ich es nur in node js verbinden muss
Wenn Ihr Ziel nur darin besteht, den Netzwerktyp zu ermitteln, können wir dies auf andere Weise tun
Ich kann in das Netzwerk gelangen, wenn ich Postman und in Curl verwende. Mein Problem ist, dass ich automatische Zahlungen durchführen muss, die nur in Backends möglich sind.
Ich meine, laut dem Dokument web3js.readthedocs.io/en/1.0/web3-eth-net.html#getnetworktype ist das web3.eth.net.getNetworkTypenicht 100% korrekt, dann müssen wir einen anderen Weg finden, um das richtige zu bekommen.
Ich kann mit web3 nicht einmal eine Verbindung zu einem Infura-Dienst herstellen. Ich habe einen privaten Knoten eingerichtet, um zu testen, ob er perfekt funktioniert.
äh, okay! habe dein Problem verstanden.
Es scheint, dass Sie web3-net in Ihren Abhängigkeiten vermissen, bitte schauen Sie sich meine Antwort unten an :)

Antworten (1)

Sie sollten die web3-netBibliotheken auch zu Ihren Abhängigkeiten hinzufügen, und dann wird es ordnungsgemäß funktionieren

  "dependencies": {
    "web3": "1.0.0-beta.35",
    "web3-net": "1.0.0-beta.36"
  }

Ich laufe auf meinem lokalen und drucke korrekt wie unten

Network Type: rinkeby

Beispielquellcode: https://github.com/hadv/web3-client

const Web3 = require("web3")

web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/5rhaTHgnqnbTEFj1S1Ya'));
web3.eth.net.getNetworkType(function(err, res){
      console.log("Network Type: "+res);
});
kannst du bitte deinen code in github posten ich kämpfe seit mehr als 4 tagen
Das habe ich auch aufgenommen. Mein Code ist const Net = require('web3-net'); net = new Net(Net.givenProvider || ' rinkeby.infura.io/v3/xxxxxxxxx' ); web3 = new Web3(new Web3.providers.HttpProvider(' rinkeby.infura.io/v3/xxxxxxxxx' )); web3.eth.net.getNetworkType(function(err, res){ console.log(err); console.log("Network Type: "+res); //Anzeige undefiniert }); Es ist immer noch undefiniert
@ek verwendet immer noch Ihren Code, aber ich bearbeite, um den Code in meine Antwort einzufügen. Sie müssen aktualisieren package.jsonund ausführen npm install, um die Bibliothek zu aktualisieren, dann ist alles in Ordnung
Ich habe den Code in Github eingefügt, bitte überprüfen Sie ihn: github.com/hadv/web3-client
Ich weiß nicht, was hier das Problem ist. Danke für Ihre Hilfe. Ich gebe auf.