ARK Core v2.3: Interfaz de transacción genérica, campo SmartBridge más grande y ID de bloque SHA256 completos

in #spanish6 years ago (edited)

Uno de los principales cambios en ARK Core v2.3 es la introducción de la nueva versión de la (GTI) "Interfaz de transacción genérica". La primera interacción de esta interfaz hará que el archivo del ARK Core es aún más versátil! .GTI es un prerrequisito para futuros desarrollos incluyendo las nuevas y muy esperadas clases de operaciones multi-firmas,timelocks, multipagos y más. Con esto en mente, estamos orgullosos de presentar la nueva versión Core v2.3 que completa una nueva meta importante de desarrollo en ARK.

Sólo ha pasado un mes desde que [nuestra última Core (v2.2)](https://steemit.com/spanish/@valentinas23/ark-core-v2-2-core-ahora-es-un-paquete-npm-y-tiene-su-propia-cli), que incluye una nueva CLI, Core como paquete NPM y mucho más. Con la versión 2.3 estamos introduciendo más piezas fundamentales en el ARK Core que abrirán nuevas y excitantes posibilidades de desarrollo futuro. Hablemos sobre lo que hay dentro!

¿Qué hay de nuevo en Core v2.3?

Hay 3 componentes principales de esta nueva versión. Cada uno hace Core más fuerte, proporciona funcionalidad adicional y agiliza nuestro desarrollo que el proceso siga adelante. Con la capacidad de crear nuevas transacciones estandarizadas v2.3 hace que ARK sea más extensible y más fácil de modificar para nuestro bridgechain comunidad.

1. AIP 29: Interfaz de transacción genérica

La joya de la coronación del v2.3 es la introducción de [AIP 29] (https://github.com/ArkEcosystem/AIPs/blob/master/AIPS/aip-29.md), Interfaz de transacciones genéricas. Esto es un cambio significativo que mejora el utilidad inmediata de uso del ARK Core. GTI es, en definitiva, un marco para implementar fácilmente nuevos tipos de transacciones sin necesidad de tener sus manos sucias por bajar al sótano del Core.

El objetivo de GTI es proporcionar a los desarrolladores y a las empresas una manera fácil de desarrollar rápidamente nuevos productos y servicios, clases de operación con lógica empresarial personalizada. La primera es un adelanto técnico de lo que viene con nuestro primer tx personalizado. tipos definidos en [AIP11](https://github.com/ArkEcosystem/AIPs/blob/master/AIPS/aip-11.md) y [AIP 18](https://github.com/ArkEcosystem/AIPs/blob/master/AIPS/aip-18.md) saliendo poco después de P2P WebSockets en Core v2.4. En ese momento llegaremos a la plenitud de lo que AIP 29 realmente pretende ser: un motor de plantillas para el desarrollo de clases de operación personalizadas. Las plantillas de transacciones personalizadas para los diferentes segmentos que pretendemos abordar: IO, Gobernanza, y juegos .

2. Mayor tamaño del Vendorfield (64 a 255 Bytes)

El segundo cambio es un aumento en la cantidad de datos de nuestro Smartbridge (Vendorfield) puede aguantar. Un aumento de cuatro veces en tamaño expandirá el Vendorfield de 64 bytes a 255 bytes. Esta ampliación proporcionará datos adicionales valiosos sobre las transacciones capacidad para expandir el paisaje de los casos de uso, proporcionando más espacio para las instrucciones u otra información. Esto también proporcionará una base para algunos de los características potenciales de los nuevos tipos de tx que presentaremos con AIP 11. La actualización se encenderá a una altura de bloque de 8.128.000, lo que debería ocurrir alrededor del jueves, el 25 de abril de 2019 a las 12:30:00 UTC.

3. ID de bloque SHA256 completo

El tercer cambio importante es la transición a los IDs de bloque SHA256 completos, codificados como un cadena hexagonal. En términos sencillos, esto elimina una posible colisión de los identificadores de bloque. con la altura de la blockchain u otros IDs de bloque, haciendo ARK más seguro y a prueba de futuro. Un ejemplo de la antigua implementación de un ID de bloque sería un conjunto de números como "105192222236637126565" que, aunque poco probable, podría generarse de nuevo en comparación con el uso de SHA256 completo para ID de bloque como "ad0da204d62191c3bf65f55762ac179227f717a06a42ebbeb29d5539068d9469". Este cambio se encenderá a una altura de bloque de 8.204.000, lo que debería ocurrir alrededor del jueves. 2 de mayo a las 13:30:00 UTC.

Para los operadores de nodes del actual ARK Core, para actualizar, por favor siga los siguientes pasos
estas instrucciones de migración (v2.2 a v2.3):

https://docs.ark.io/releases/v2.3/migrating_2.2_2.3.html

Algunos otros cambios en la versión 2.3 incluyen:

  • Core Tester CLI ha sido completamente reescrito desde cero. Este conjunto de herramientas ayuda a los desarrolladores generan rápidamente transacciones, envían transacciones, generan direcciones,
    y más.

  • Winston logger ha sido reemplazado por Pino, lo que mejora significativamente el rendimiento del registro cuando genera una gran cantidad de datos en situaciones como la sincronización. Pino también es una integración mucho más liviana que Winston, esencialmente reduciendo la gran cantidad de dependencias en Core.

  • Como parte de AIP29, el campo de activo fijo de movimiento debe almacenarse directamente en el tabla de transacciones. Un buen efecto secundario es que el verificador de integridad ahora puede consultar directamente los activos de la transacción sin tener que deserializarlos, lo que supone un gran coste para el cliente. acelera el inicio del node. La migración inicial puede durar hasta unos minutos. ya que necesita rellenar la columna de activos fijos para todos los registros existentes.

  • Añadidos 5 nuevos eventos para hacer que algunos datos sean potencialmente difíciles de obtener más accesible:

block.received: generado cuando un nuevo bloque está entrando

block.disregarded: generado cuando un nuevo bloque es ignorado

transaction.pool-added: generado cuando las transacciones se agregan al pool, siempre genera una variedad de transacciones.

transacción.pool.no added: generado cuando las transacciones no se añaden al pool, siempre genera un array de transacciones.

transaction.pool.removed: generado cuando una transacción es eliminado por su ID, sólo emite el ID de la transacción.

  • Validación adecuada de que la dirección del destinatario está en la red correcta, mitigando el envío a direcciones erróneas en otras blockchains (BTC, ETH, ....).

  • La falta por slip44 y wif de la red ahora también están disponibles a través del node configuración del punto final de la API.

  • El número de participantes activos se puede ajustar ahora mediante objetivos intermedios y Core adapta dinámicamente los tamaños de las rondas. Por ejemplo, un bridgechain podría comenzar ahora con 5 delegados y cambiar a 11 después del bloque número 10.000.

  • La implementación de Axios ha sido reemplazada por Got, que es una librería mucho más ligera. Axios también tiene problemas conocidos con los timeouts que pueden causar problemas al azar y que están bien mantenidos como Got.

  • El Core de la integración Webhook de SQLite3 ha sido reemplazado por lowdb reduciendo significativamente el tamaño del paquete y sus dependencias.

  • Las tablas de billeteras se han retirado de la base de datos ya que no se han utilizado desde el principio. el lanzamiento de Core v2 (era una reliquia de Core v1). Esto reducirá el tamaño de la blockchain ARK y hacerla más delgada, eliminando los datos obsoletos que son accesible por otros medios. Toda la información relacionada con la billetera se sirve desde en memoria, que es mucho más rápido y le proporciona datos instantáneos en tiempo real.

  • Se reemplazó micromatch (182 dependencias, 4.17M) con nanomatch(11
    0,27 millones) para un mejor rendimiento global y reducir el número de dependencias junto con el tamaño de las mismas.

Más cambios y correcciones en Core v2.3 se pueden encontrar más adelante en la entrada del blog.

¿Qué sigue para Core?

La siguiente versión del ARK Core v2.4 profundizará en la mecánica P2P (Peer 2 Peer) de cómo los nodos se comunican entre sí. La actual API HTTP será reemplazada por WebSockets utilizando la biblioteca [SocketCluster](https://github.com/SocketCluster/socketcluster) para la comunicación P2P.

Los WebSockets tienen más sentido para la comunicación P2P entre nodes ya que permiten conexiones activas a cada par en lugar de peticiones HTTP independientes. El tiempo de transferencia de datos mejorará ya que la ausencia de cabeceras HTTP significa menos datos para transferir. Además, se puede escalar fácilmente utilizando conexiones simultáneas.

SocketCluster es un sólido marco de trabajo WebSocket que ofrece grandes características incluyendo reconexión automática, lógica de middleware y multi-threading.

Las pruebas de Core v2.4 en Development Network comenzarán a principios de mayo y en menos de un mes tendremos un nuevo nivel de P2P.

La mayoría querrá saber cómo están progresando el AIP 11 y el AIP 18. Estamos fuertemente en el desarrollo de AIP 11 y AIP 18 y estimamos que ambos estarán listos en el segundo trimestre de 2019 para ser probados en la red de desarrollo. Esto permitirá aún más nuevas características y casos potenciales de uso de ARK. Estamos muy contentos de poder publicar esto tan pronto como sea posible!

Cambios en los números (de 2.2 a 2.3)

  • 14 desarrolladores diferentescontribuyendo al Core.
  • 185 nuevos compromisos con el Core.
  • 1.198 archivos cambiados en el Core.
  • 40.894 códigos añadidosal Core.
  • 38.593 eliminaciones de códigos en el Core.

Rompiendo los cambios

  • Eliminado la tabla de billeteras de la base de datos
    (#2209)*
  • Reemplazar SQLite3 con lowdb en
    core-webhooks(#2124)
  • Reemplazo de core-logger-winston por core-logger-pino
    (#2134)
  • Reescribió core-tester-cli desde cero
    (#2133)
  • Fusionó core-debugger-cli en core-tester-cli y lo desaprovechó.
    (#2133)
  • Utilice el node.js EventEmitter de eventos en lugar de eventemitter3
    (#2329)
Nota: Core 2.0 ha dependido completamente de las billeteras en memoria desde el 2.0 liberación. Esta versión sólo elimina el vertido de billeteras en la base de datos, ya que es un espacio desperdiciado y no sirve para nada. Si tiene aplicaciones que confíe en la base de datos, debe migrarlas lo antes posible para utilizar la opción API ya que sólo se proporcionan datos en tiempo real.

Añadido

  • Implementar AIP29
    (#2122)

  • Buscar delegados por su nombre de usuario en core-api
    (#2143)

  • Implementado el comando de reinstalación del Ark en el core
    (#2192)

  • Añadido el flag --force al comando ark update en core
    (#2190)

  • Se han añadido más parámetros para las búsquedas de delegados en core-api
    (#2184)

  • Añada el /v2/delegates/active endpoint a core-api
    (#2205)

  • Añadidas banderas de reinicio al comando de actualización de ark en core
    (#2218)

  • Añadido el comando make:block a core-tester-cli para crear bloques
    ( #2221)

  • Columna de activo fijo de la transacción añadida a la base de datos
    (#2236)

  • Añadido el paquete core error-tracker-rollbar
    (#2287)

  • Añadido el paquete de la core error-tracker-raygun
    (#2288)

  • Añadido el paquete core-error-traker-airbrake
    (#2289)

  • Añadido el paquete core logger-signale
    (#2343)

  • Añadido más eventos para los bloques y el pool de transacciones
    (#2321)

  • Vale de slip44 y wif a través de v2/node/configuration
    (#2388)

Arreglado

  • Clasificar correctamente a los peers por su versión
    (#2229)

  • Fuga de memoria en el proceso de monitorización de machos falsificadores
    (#2341)

  • Maneje tamaños redondos dinámicos con los objetivos
    (#2370)

  • Validar que un destinatario de la transacción está en la misma red
    (#2394)

  • Manejar filas vacías en mapBlocksToTransactions
    (#2404)

  • Prevenir la indexación/creación de carteras fantasmas
    (#2405)

  • Rechazar transacciones de remitentes con registros de segunda firma pendientes y no retroceder cuando se rechaza un bloque
    (#2458)

Cambiado

  • Aumentado la longitud del campo del proveedor a 255 bytes
    (#2159)

  • Se ha sustituido el micromatch por el nanomatch para mejorar el rendimiento.
    (#2165)

  • Reemplazo de axios con axios para resolver problemas de tiempo de espera conocidos con axios
    (#2203)

  • Identificación del bloque de interruptores a SHA256 completo
    (#2156)

Eliminado

  • Eliminado el código de bandera de reconstrucción rápida que no se ha utilizado desde la versión 2.0.
    (#2210)

Agradecimientos especiales

Gracias a todos los que han ayudado a probar el nuevo core de la red de desarrollo, antes de a moverlo a la red pública, proporcionando una valiosa retroalimentación, reportando problemas, y ayudando a resolver problemas abriendo solicitudes de pull-requests.
Para aquellos que ejecutan sus propios servidores con ARK Core, si experimentan algún error o problemas, abra un informe de problemas de Github para facilitar el seguimiento y la resolución: https://github.com/ArkEcosystem/core/issues.




¿Quieres saber más sobre ARK? Ingresa en: https://ark.io/


Sort:  

Congratulations @valentinas23! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 2000 upvotes. Your next target is to reach 3000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.22
TRX 0.20
JST 0.035
BTC 91157.44
ETH 3167.61
USDT 1.00
SBD 3.12