Nodos públicos que funcionan con filtros web3

Estoy intentando conectarme a la cadena de bloques de Ethereum y monitorear las transacciones a medida que se transmiten. No tengo la capacidad de ejecutar un nodo completo en mi computadora, por lo que confío en nodos de "terceros" para conectarme a la cadena de bloques. Los dos que he estado probando son " https://mainnet.infura.io/ [MY PRIVATE KEY]" y " https://api.myetherapi.com/eth ". Para recuperar las transacciones más recientes, estoy usando los filtros del módulo web3 python. Sin embargo, cuando ejecuto este código, inspirado en aquí y aquí :

from web3 import Web3, HTTPProvider
import time

node = #DEPENDS
connection = Web3(HTTPProvider(node))

block_filter = connection.eth.filter('latest')

time.sleep(60) #OR LONGER
print(block_filter.get_all_entries())

Si mi nodo es el de infuria, aparece el error "requests.exceptions.HTTPError: 405 Client Error: Method Not Allowed for url: https://mainnet.infura.io/ [MY PRIVATE KEY]". Si uso myetherapi, el resultado es simplemente una lista vacía.

¿Hay otros nodos HTTP que pueda usar para conectarme a la cadena de bloques? ¿O es el problema con mi código?

Respuestas (1)

Parece que el problema no está en tu código. Tengo el mismo problema: intenté usar infura y Filter() en Python. Desafortunadamente, infura no proporciona este método en este momento , pero lo será en el futuro, como dijeron.

Lo que puedes hacer:

1) probando con otro nodo público (busque en Google o busque aquí https://www.ethernodes.org/ )

2) crea tu propio nodo (como decidí hacer): la forma más sencilla de hacerlo aquí https://geth.ethereum.org/downloads/