Quiero monitorear cuentas para transacciones entrantes (RPC/IPC API) y llamar a una función cada vez que una de varias cuentas monitoreadas reciba éter que esté "confirmado", como en "hace suficientes bloques que las posibilidades de doble gasto son insignificantes".
¿Hay una implementación de referencia de esto?
Estoy investigando los filtros y las palabras "pendiente" y "más reciente" siguen apareciendo. ¿Qué quieren decir?
Último significa el último bloque que ya está dentro de su propia cadena. Todas las transacciones contenidas dentro pueden considerarse ejecutadas con éxito. Desde el punto de vista de la seguridad, por supuesto que puede haber reorganizaciones, pero en general son transacciones ejecutadas.
Queda pendiente por otro lado la recopilación de transacciones que pueden ser ejecutadas por la red (que tu propio nodo conoce), pero que aún no han sido realizadas. Pendiente es útil para mostrar interfaces de usuario reactivas donde la interfaz de usuario puede mostrar inmediatamente que algo está entrando, aunque no hay garantías de que esas transacciones, si es que alguna vez lo hacen, se ejecuten con éxito.
Para obtener ideas sobre una "implementación de referencia", consulte: ¿Cómo puede una DApp detectar una reorganización de bifurcación o cadena usando web3.js o bibliotecas adicionales?
Probablemente también quiera saber: ¿Qué cantidad de confirmaciones se considera segura en Ethereum?
La respuesta de @ Péter es excelente y lo único que se debe agregar es web3.eth.defaultBlock
la definición:
"más reciente", el último bloque (jefe actual de la cadena de bloques)
"pendiente", el bloque extraído actualmente (incluidas las transacciones pendientes)
pending
es igual latest
a más transacciones pendientes (aquellas que no han sido minadas en un bloque).
espray
nick johnson
Péter Szilágyi
Péter Szilágyi
espray
$reorg < k*$amount*2^confirmations
supongo? Si es así, ¿tenemos una estimación aproximada del coeficiente?