php-Editor Banana erhielt kürzlich eine Frage von einem Leser. Er stieß auf die Fehlermeldung „Nicht gefunden“, als er die Funktion „client.BlockByHash()“ von „go-ethereum“ verwendete. Dieses Problem beschäftigt ihn schon seit langem und er hofft auf eine Lösung. In diesem Artikel werden wir die möglichen Ursachen dieses Fehlers untersuchen und einige mögliche Lösungen anbieten.
Ich habe den folgenden Code zum Abonnieren neuer Blöcke, sobald sie erscheinen:
package main import ( "context" "fmt" "log" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" ) func main() { client, err := ethclient.dial("wss://mainnet.infura.io/ws/v3/apikey") if err != nil { log.fatal(err) } headers := make(chan *types.header) sub, err := client.subscribenewhead(context.background(), headers) if err != nil { log.fatal(err) } for { select { case err := <-sub.err(): log.fatal(err) case header := <-headers: fmt.println(header.hash().hex()) // 0xbc10defa8dda384c96a17640d84de5578804945d347072e091b4e5f390ddea7f block, err := client.blockbyhash(context.background(), header.hash()) if err != nil { log.fatal(err) } fmt.println(block.hash().hex()) // 0xbc10defa8dda384c96a17640d84de5578804945d347072e091b4e5f390ddea7f fmt.println(block.number().uint64()) // 3477413 fmt.println(block.time()) // 1529525947 fmt.println(block.nonce()) // 130524141876765836 fmt.println(len(block.transactions())) // 7 } } }
Aber im Team
block, err := client.blockbyhash(context.background(), header.hash())
Ich erhalte die Fehlermeldung:
2023/04/19 17:31:14 not found exit status 1
Der Hash wird immer noch gedruckt fmt.println(header.hash().hex())
, sodass ich weiß, dass die Infura-Verbindung funktioniert.
Blocknummer statt Hashwert verwenden.
block, err := client.BlockByNumber(context.Background(), header.Number)
Funktion header.hash()
gibt nicht den Block-Hash zurück, sondern den Hash des Headers.
Das obige ist der detaillierte Inhalt von„go-ethereum' client.BlockByHash() gibt den Fehler „nicht gefunden' aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!