Maison > Article > développement back-end > `go-ethereum` client.BlockByHash() donne l'erreur 'introuvable'
Éditeur php Banana a récemment reçu une question d'un lecteur Il a rencontré un message d'erreur : "Not found" lors de l'utilisation de la fonction `client.BlockByHash()` de `go-ethereum`. Ce problème le préoccupe depuis longtemps et il espère donc trouver une solution. Dans cet article, nous explorerons les causes possibles de cette erreur et proposerons quelques solutions possibles.
J'ai le code suivant pour m'abonner aux nouveaux blocs au fur et à mesure de leur apparition :
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 } } }
Mais dans l'équipe
block, err := client.blockbyhash(context.background(), header.hash())
J'obtiens l'erreur :
2023/04/19 17:31:14 not found exit status 1
Il imprime toujours le hachage dans fmt.println(header.hash().hex())
donc je sais que la connexion Infura fonctionne.
Utilisez le numéro de bloc au lieu de la valeur de hachage.
block, err := client.BlockByNumber(context.Background(), header.Number)
La fonction header.hash()
ne renvoie pas le hachage du bloc, mais le hachage de l'en-tête.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!