¿Por qué no puede capturar eventos retrospectivamente usando el filtro (eth_newFilter)?

He puesto el mismo filtro con eth_newFilterantes y después de un conjunto de transacciones. El que se instala después de que las transacciones detectaron 0 eventos. ¿Es así como funcionan los eventos? ¿Hay alguna otra forma de capturar eventos retrospectivamente excepto eth_getLogs?

from ethjsonrpc import EthJsonRpc
c = EthJsonRpc('127.0.0.1', 8545)
ADDRESS = "0xdb1154368ba2645e6c090f3d1f3ddd5c8c1f8008"
params = {
    "fromBlock": "0x01",
    "address": ADDRESS
}
before = c.eth_newFilter(params)
for i in range(100):
    tx = c.call_with_transaction(c.eth_coinbase(), ADDRESS, 'setValue(uint32)', [i])
    receipt = c.eth_getTransactionReceipt(tx)
after = c.eth_newFilter(params)

print len(c.eth_getFilterLogs(before)) // 100
print len(c.eth_getFilterLogs(after)) // 0
print len(c.eth_getLogs(params)) // 100

Estoy usando testrpc como cliente de blockchain.

¿Hay alguna razón por la eth_getLogs()que no se puede usar? Tiene casi la misma firma de llamada que eth_newFilter.
@MikkoOhtamaa esta es exactamente la misma pregunta que estoy escribiendo en este momento. ¿Por qué usar filtros?))

Respuestas (1)

Desafortunadamente, TestRPC no es compatible con eventos pasados. Podría intentar usar una cadena Geth privada como se detalla aquí .

¡Muchos gracias! Sospeché esto, pero no pude encontrarlo en los documentos. ¿Es lo mismo para los temas de filtro? Como no puedo hacer que funcionen también.
+ esta respuesta me ayudó. ¿Sabría la respuesta a mi pregunta sobre los filtros: ethereum.stackexchange.com/questions/22954/…