Lanzamiento simultáneo de dos nuevas actualizaciones: BSV v1.0.8 (Beta) y mAPI v1.3.0 (Beta)

By Press Release Published: mayo 11, 2021
2-upgrades-released-simultaneously-BSV-v1.0.8-(Beta)-&-mAPI-v1.3.0-(Beta)

El equipo de Bitcoin SV acaba de publicar simultáneamente dos nuevas actualizaciones.

Estas son:

  1. Software Bitcoin SV Node: actualizado a la versión 1.0.8 (Beta)
  2. Versión 1.3.0 de mAPI

 

Software Bitcoin SV Node: actualizado a la versión 1.0.8 (Beta)

Se recomienda actualizar a la versión 1.0.8 (beta) a quienes tengan la versión 1.0.7.1. Esta nueva versión incorpora la posibilidad de comunicar intentos de doble gasto a puntos finales remotos como mAPI o aplicaciones personalizadas. También incluye mejoras del rendimiento, sobre todo en lo que se refiere al procesamiento de gráficos complejos de transacciones dependientes.

Lista detallada de cambios:

  1. Se habilita la notificación de dobles gastos en las transacciones. En caso de detectar un doble gasto en una entrada, se enviará una notificación HTTP al punto final que se especifique. (Puedes obtener información más detallada en https://github.com/bitcoin-sv-specs/protocol )
  2. Nueva RPC getorphaninfo.
  3. Nueva RPC verifyScript.
  4. Nueva RPC getmerkleproof2 acorde al último TSC.
  5. Se ha añadido el parámetro maxstackmemoryusageconsensus al resultado de la RPC getsettings.
  6. Las RPC sendrawtransaction y sendrawtransactions RPC se pueden utilizar ahora con dontCheckFees aun cuando la transacción ya sea conocida.
  7. Se han modificado las RPC sendrawtransaction y sendrawtransactions RPC para que puedan devolver una lista de matrices desconocidas.
  8. Se ha incorporado a las opciones de configuración el nuevo parámetro dustlimitfactor para definir el límite del valor del polvo o dust. *
  9. Transacciones de devolución del polvo o dust. *
  10. Se ha ajustado la duración máxima de la validación por defecto de las tareas asíncronas para un mejor manejo de las cadenas y los gráficos largos.
  11. Se ha cambiado el algoritmo para utilizar la altura de los ancestros en lugar de su recuento.
  12. Se ha mejorado la tasa de liberación de los bloques huérfanos.
  13. Se ha incrementado el rendimiento gracias a las mejoras en el procesamiento de cs_main.
  14. Se ha mejorado la validación de las cadenas.
  15. Las transacciones no serán aceptadas si su resultado es una cadena de ancestros en la mempool con una altura igual o superior a 10 000. La cifra anterior era de 1000 transacciones.
  16. El valor por defecto del parámetro de configuración maxorphantxsize ha cambiado a 1GB
  17. El parámetro de configuración maxcollectedoutpoints ya no se utiliza y ha sido eliminado.
  18. Se está reiniciando el STN.

 

*Notas adicionales:

  1. Disponible la nueva opción de línea de comandos -dustlimitfactor para definir el límite del valor del polvo o dust.

Hasta ahora, la relación mínima entre el importe del resultado de una transacción y su tasa correspondiente era de 3/1. Si no se cumplía esta condición, la transacción se consideraba “polvo” (dust) y se rechazaba durante la validación.

Este factor puede configurarse ahora como un porcentaje mediante la nueva opción “-dustlimitfactor”. Su valor por defecto sigue siendo del 300 %, pero puede fijarse en cualquier valor entre el 300 % y el 0 %.

Si el factor –dustlimitfactor se fija en cero, no se considerará como polvo el resultado de ninguna transacción.

La fórmula para calcular mediante aritmética de enteros el umbral del polvo es la siguiente:

s = tamaño serializado del resultado de la transacción

d = dustlimitfactor, valor porcentual entre 300 y 0 (por defecto, 300)

r = dustrelayfee. A partir de la versión 1.0.8, el valor por defecto de default-minrelaytxfee es de 250

m = 148. Número mínimo de bytes de entrada que se puede gastar

d * (r * (s + m)/1000)) / 100

La división por 100 responde al hecho de que dustlimitfactor expresa un valor porcentual.

Ejemplo: En el caso de una transacción típica con un resultado de 34 bytes de tamaño, la fórmula arroja un umbral de 135 Satoshis.

d = 300

s = 34

r = 250

Umbral = (300 * (250 * (34 + 148)/1000)) / 100 = 135

Obsérvese que la misma fórmula daría un umbral de 136,5 Satoshis si empleásemos la aritmética de punto flotante:

En consecuencia, con los parámetros por defecto de la configuración de la versión 1.0.8, el resultado de una transacción típica debe tener un valor mínimo de 135 Satoshis para no ser considerada como polvo. Ten en cuenta que, debido al redondeo, el umbral del polvo calculado en el caso de la transacción del ejemplo se convierte en 0 si el dustlimitfactor y el dustrelayfee son muy bajos.

 

  1. 9Transacciones de devolución del polvo o dust.

La validación de las transacciones se ha flexibilizado para permitir un nuevo tipo de transacción, la transacción de devolución del polvo. Este nuevo tipo de transacción permite donar polvo a los mineros mediante comisiones como nueva forma de contrarrestar los ataques de polvo (dusting attacks) a las carteras. Esto resulta más económico para la red, ya que permite limpiar las carteras y las bases de datos de UTXO de resultados que, de otro modo, serían prácticamente inviables. Al mismo tiempo, se elimina por completo cualquier incentivo para realizar un ataque de polvo.

Las condiciones para considerar una transacción como transacción de devolución del polvo son las siguientes:

  • La transacción tiene un único resultado cuyo valor es cero (importe cero).
  • La scriptPubKey es la siguiente:

OP_FALSE OP_RETURN n ‘dust’.

donde n = longitud de la ID del protocolo, p. ej., el tamaño de la cadena ‘dust’.

  • o todas las entradas son estándar o se establece el siguiente parámetro de configuración:
    -acceptnonstdconsolidationinput=1 (por defecto: 0)
  • se deben permitir las transacciones no estándar. Por ejemplo, se debe establecer la siguiente configuración:
    -acceptnonstdtx=1 (por defecto: 1)

Obsérvese que lastransacciones de devolución del polvo comparten dos parámetros de configuración con las transacciones de consolidación:

  • -acceptnonstdconsolidationinput (por defecto: falso)
  • -minconsolidationfactor (por defecto: distinto de cero. Si el factor de consolidación se fija en 0, se desactivan tanto las operaciones de consolidación como las de devolución del polvo)

 

Ejemplo de transacción de devolución del polvo:

{
‘txid’: ‘7a234eaa8615858e7b59cc46820fb71940fa9b1fd2cbac6c4ca3efc33767c6dc’,
‘hash’: ‘7a234eaa8615858e7b59cc46820fb71940fa9b1fd2cbac6c4ca3efc33767c6dc’,
‘version’: 1,
‘size’: 226,
‘locktime’: 0,
‘vin’: [
{
‘txid’: ‘471e1070d48faf20b599b2291c5c7550f9152d6e3549987d85dae82f2e96e93f’,
‘vout’: 0,
‘scriptSig’: {
‘asm’: ‘61616161616161616161616161616161616161616161616161616161616
161616161616161616161616161
61616161616161616161616161616161616161616161616161616161616161616161
61616161616161616161616161
616161616161616161616161616161616161616161616161616161616161616161616
16161616161616161616
161616161616161616161616161c2’,
‘hex’:
‘4c956161616161616161616161616161616161616161616161616161616161616161
616161616161616161616
161616161616161616161616161616161616161616161616161616161616161616161
61616161616161616
161616161616161616161616161616161616161616161616161616161616161616161
6161616161616161616161616161
6161616161616161616161616161c2’
},
‘sequence’: 0
}
],
‘vout’: [
{
‘value’: Decimal(‘0.00’),
‘n’: 0,
‘scriptPubKey’: {
‘asm’: ‘0 OP_RETURN 11 647573745f72657475726e’,
‘hex’: ‘006a5b0b647573745f72657475726e’,
‘type’: ‘nulldata’
}
}
],
‘blockhash’: ‘380fe8631752b75ee3ce027bdf80e22f3445f4b620a9585b369fb9a0c3f2677e’,
‘confirmations’: 1,
‘time’: 1620224004,
‘blocktime’: 1620224004,
‘blockheight’: 208,
}

 

Los binarios y el código fuente se pueden descargar desde aquí:

URL: https://download.bitcoinsv.io/bitcoinsv/

Si tienes alguna duda, puedes ponerte en contacto con nuestro equipo de soporte técnico mediante el correo electrónico [email protected] o vía Telegram desde https://t.me/bitcoinsvsupport

 

Software mAPI actualizado a la versión 1.3.0 (Beta)

Se recomienda actualizar a la versión 1.3.0 (Beta) a quienes tengan la versión 1.2.0. Esta nueva versión permite recibir notificaciones de doble gasto desde nodos remotos.

Además de los nodos locales, que están conectados directamente a mAPI mediante una suscripción ZMQ, cualquier nodo remoto de la red BSV que detecte un doble gasto en una transacción o que contenga una dirección de notificación de doble gasto puede ahora notificarlo a mAPI mediante una devolución de llamada HTTP. Consulta https://github.com/bitcoin-sv-specs/protocol para obtener información más detallada

También se han mejorado las notificaciones de doble gasto con la detección de dobles gastos en las matrices no confirmadas. mAPI notificará a los vendedores si detecta un doble gasto no solo en su transacción, sino también en alguna de sus matrices no confirmadas.

Las notificaciones de prueba de Merkle pueden utilizar ahora el formato estándar TSC que devuelve la cabecera de bloque codificada hexadecimalmente en las notificaciones de retrollamada.

También se han añadido otras mejoras como la posibilidad de incluir los parámetros del motivo de las retrollamadas en sus URL, la compatibilidad con la implementación de servidores de bases de datos personalizados y la inclusión de nuevas opciones de configuración para una mejor integración.

Lista detallada de cambios:

  • Notificación de doble gasto para matrices no confirmadas.
  • Se habilitan las retrollamadas al punto final desde un nodo remoto para las notificaciones de doble gasto.
  • Se habilita el uso del formato de prueba TSC de Merkle.
  • Se habilita la inclusión de los parámetros del motivo de las retrollamadas en sus URL.
  • Se habilita la implementación de servidores de bases de datos personalizados.
  • Nueva opción de configuración para desactivar la comprobación de tasas.
  • Nueva opción para suministrar el punto final ZMQ al registrar el nodo con mAPI.
  • Nueva opción para ejecutar mAPI sobre HTTP con fines de desarrollo.

 

Los binarios y el código fuente se pueden descargar desde aquí:

URL: https://github.com/bitcoin-sv-specs/brfc-merchantapi

Si tienes alguna duda, puedes ponerte en contacto con nuestro equipo de soporte técnico mediante el correo electrónico [email protected] o vía Telegram desde https://t.me/bitcoinsvsupport

Gracias por tu continuo apoyo a Bitcoin SV.