listsinceblock help
devoluciones:
listsinceblock ( "blockhash" target-confirmations )
Get all transactions in blocks since block [blockhash], or all transactions if omitted
Arguments:
1. "blockhash" (string, optional) The block hash to list transactions since
2. target-confirmations: (numeric, optional) The confirmations required, must be 1 or more
Envié una moneda a mi billetera y unos segundos después ejecuté listsinceblock 1
. Mi transacción se acaba de transmitir, por lo que tuvo 0 confirmaciones, como se esperaba. Tenga en cuenta el target-confirmations
parámetro anterior que debe ser mayor que 0 pase lo que pase.
Entonces, para mi prueba, ejecuté bitcoin-cli listsinceblock 0000000008eb5d53efbb39d2cb9f595e5bd567c295936de5c2282bbb8ef46cf0 1
lo que devolvió:
{
"transactions" : [
{
"account" : "",
"address" : "mzE6DJMHPghYpVg4GCurMbxSSXBfW1KCFH",
"category" : "receive",
"amount" : 1.00000000,
"confirmations" : 0,
"txid" : "917248d57293a7fd3a88aa3a26026d2e4d6a1d4eef898519b20419f2339c265c",
"walletconflicts" : [
],
"time" : 1399200157,
"timereceived" : 1399200157
}
],
"lastblock" : "0000000004ba22e9f8cea2e843b34f7eeaa2c3b7004ddcf19bfd8af0215fc0cc"
}
Tenga en cuenta que la transacción anterior tiene 0 confirmaciones, sin embargo, se supone que listsinceblock funciona más allá de 1 confirmación (lo cual es extraño, ya que estoy sondeando listsinceblock
para obtener nuevas transacciones que siempre están sin confirmar, después del consejo de Gavin sobre: ¿Cómo saber si hay una nueva transacción? ).
¿Que me estoy perdiendo aqui?
Según: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Tenemos,
[target-confirmations] intencionalmente no afecta la lista de transacciones devueltas, sino que solo afecta el valor de 'último bloque' devuelto.
¿Qué significa esto? Significa que la lastblock
entrada en su objeto devuelto es el último bloque que puede ver en la cadena de bloques (ya que es el bloque que actualmente tiene exactamente 1 confirmación como lo indica el argumento que pasó). La lastblock
entrada es el único campo que puede afectar cambiando el target-confirmations
argumento.
Esto significa que si desea todas las transacciones con al menos 1 confirmación, debe filtrar esta lista. Esto plantea la pregunta, ¿por qué no target-confirmations
se usa el argumento para hacer este filtrado?
Esto se debe a que la forma en que funciona la función actualmente permite un caso de uso en el que puede llamar constantemente listsinceblock
con el valor lastblock
que se devolvió en su última llamada. Al hacer esto, su transactions
lista contendrá transacciones que alcancen X o más confirmaciones en la cadena de bloques exactamente en una de esas llamadas (donde X en este caso es 1).
cdhowie