ARK Core v2.1: Hola Typescript!

Está aquí! La primera versión significativa del núcleo ARK a medida que avanzamos hacia la v3 es en vivo en la red pública de ARK. Core v2.1 ahora tiene una base de código TypeScript más estricta y una mayor cobertura de pruebas. Revisemos los cambios.

Lo primero es lo primero: los usuarios típicos de ARK no tienen que hacer nada para esta actualización. Todas las actualizaciones serán atendidas en segundo plano por los desarrolladores y delegados de ARK. La transición debe ser suave y sin ningún tipo de interferencias o retardo por parte de la blockchain. Sin embargo, la puntualidad y el proceso de actualización de los intercambios están fuera de nuestro control, por lo que puede experimentar retrasos en los depósitos y Retiradas a medida que hacen el cambio.

La más reciente actualización de Core se centra principalmente en cambiar la base de código de De JavaScript a TypeScript. Esto significa reescribir todo el Core al TypeScript lenguaje de programación. Mientras que esto suena irreal para lograr en tan poco tiempo (el nuevo Core v2 inicial fue lanzado hace poco más de 2 meses),TypeScript es un superconjunto de JavaScript que facilita la conversión. Uno de la ventaja de TypeScript es que reporta errores tipográficos y sintácticos en tiempo de compilación, en lugar de tiempo de ejecución (cuando la aplicación ya se está ejecutando en vivo). Además, las reglas más estrictas (la necesidad de definir tipos) lo hacen mucho más adecuado. para un proyecto de la blockchain. TypeScript tiene perfecto sentido para proyectos en crecimiento que necesitan escalar y tener múltiples desarrolladores trabajando en el codebase.

ARK Core ahora también se ha quitado la marca al cambiar el nombre de todas las instancias de "ARK" a "CORE". Esto hace que Core sea más genérico y mucho más fácil de implementar para las cadenas de puentes, ya que no es necesario cambiar el nombre de nada, después de generar su configuración de red personalizada, ¡ya está listo para comenzar!

ARK Core v2.1 también presenta una cobertura de prueba del 100% de los componentes clave del Core (Crypto, Blockchain y Transaction Pool). La gran cobertura de pruebas les da a los desarrolladores la confianza de que el proyecto está bien desarrollado y se mantiene, y facilita la evaluación de si una refactorización o una adición al código fuente va a romper algo.

La adición de nuevos puntos finales de API también ayudará a los intercambios y a nuestro Escritorio y Los clientes móviles reducen las llamadas a la API en algunas de las consultas más frecuentes. Un nuevo ejemplo es la capacidad de una sola llamada de API para buscar información para más de 1 dirección ARK a la vez, reduciendo así los tiempos de carga y limitando la necesidad de múltiples llamadas a la API.

¿Qué sigue para Core?

La próxima versión de Core v2.2 se centrará en un uso aún más fácil del Core para desarrolladores e intercambios. Core se convertirá en un módulo npm que puede ser instalado e interactuado globalmente. Por ejemplo, podrá llamar a ark relay:mainnet después de instalar el núcleo a través de yarn global add @arkecosystem/core.

Con la versión 2.2 también aprovecharemos al máximo la biblioteca de utilities de ARK recientemente desarrollada, que acelerará varios elementos del núcleo en más de un 100%. Puedem leer más sobre ARK Utilities aquí.https://steemit.com/spanish/@valentinas23/ark-utilities-haciendo-mas-rapido-el-ecosistema-de-ark

La configuración y las opciones se gestionarán a través de ARK Configure. Esta será una toda la nueva interfaz para la gestión de nodes usando comandos simples y esencialmente reemplazar la necesidad de un Core Commander de ARK. El desarrollo de Core v2.2 es en marcha con el lanzamiento previsto para el próximo mes.

Ahora vamos a repasar los cambios con más detalle para aquellos que quieran bucear más profundo.

Cambios en los números

Desde la publicación inicial de Core :

  • 15 desarrolladores diferentescontribuyendo al core.
  • 180 nuevos compromisos con el core.
  • 1.924 archivos cambiados en el core.
  • 107.957 líneas de código añadidas al core.
  • 96.729 líneas de código eliminadas en el core.

##¿Qué hay de nuevo?

Añadido

  • Se agregó un identificador milestoneHash para usarlo para la baneo de pares.
    (# 1837)
  • Se agregaron las declaraciones de TypeScript para core-logger
    (# 1833)
  • Se agregaron declaraciones de TypeScript para core-logger-winston
    (# 1887)
  • Se agregaron declaraciones de TypeScript para el core-container
    (# 1891)
  • Se agregaron declaraciones TypeScript para la core-database (#1901,
    #1905)
  • Se agregaron declaraciones TypeScript para la core-transaction-pool
    (#1906)
  • Se agregaron declaraciones TypeScript para la core-blockchain
    (#1943)
  • Se agregaron declaraciones TypeScript para la core-snapshots
    (#1947)
  • Se agregaron declaraciones TypeScript para la core-api
    (#1948)
  • Se agregaron declaraciones TypeScript para la crypto
    (#1917)
  • Añadido el paquete core-jest-matchers
    (#1926)
  • Añadido el paquete core-interfaces
    (#1924)
  • Devolver el tiempo de expiración de la transacción a través de la API
    (#1927)
  • Añadida la posibilidad de deshabilitar la caché pública de la API
    (#1930)
  • Devolver el voto de una billetera vía API pública
    (#2009)
  • Actualizar el script para la versión 2.1
    (#1999)
  • Script de instalación para las distribuciones deb / rpm
    (#2016)
  • Errores específicos de cada caso para criptografía
    (#2038)
  • Separar la lógica del negocio de la lógica de la capa de datos
    (#2055)

Cambios

  • Migración de JavaScript a TypeScript
    (#1625)
  • Mover la configuración de peers.json a core-p2p
    (#1625)
  • Fusión del core-transaction-pool-mem into core-transaction-pool
    (#1625)
  • Utilizar una alternativa más rápida para obtener una estimación
    (#1655)
  • Reorganización de la configuración criptográfica para hacerla más simple
    (#1733)
  • Se movió la configuración de tarifas dinámicas al into core-transaction-pool
    (#1733)
  • Compruebe periódicamente si hay nuevos compañeros en lugar de volver a intentarlo hasta que encuentre alguno.
    (#1738)
  • Ajustado algunos tiempos de baneo para que la recuperación de la red sea más sencilla
    (#1730)
  • Configuración simplificada al separar aún más la red y el núcleo
    (#1733)
  • Tener en cuenta el valor de minFeeBroadcast para las estadísticas de tasas
    (#1873)
  • Solo permitir campos de proveedor para transacciones de tipo 0 y 6
    (#1931)
  • Se mejoraron los detalles y comentarios del quórum de la red.
    (#1898)
  • Sólo devuelve errores cuando las tarifas de transmisión y pool son demasiado bajas
    (#1940)
  • Rendimiento mejorado de BIP38
    (#1941)
  • Limpiar la lógica del procesamiento de bloques
    (#1953)
  • Limpieza de la lógica de serialización/deserialización en criptografía
    (#1969)
  • Reemplazó todos los nombres de ARK con CORE
    (#1970)
  • Usar las rutas del sistema para los datos y la configuración
    (#1987)
  • Aumentó la edad máxima de la transacción a 6 horas.
    (#1996)
  • Se reemplazaron las barras de progreso con registros para reducir el ruido
    (#2044)
  • Se reemplazaron los commander .js con @oclif en core-debugger-cli
    (#2049)
  • Se reemplazaron los commander.js con @oclif en core-snapshots-cli
    (#2050)
  • Se reemplazaron los commander.js con@oclif en core-tester-cli
    (#2051)
  • Mover archivos docker de docker/* a docker/development/*
    (#2053)
  • Mover los bloques de génesis desde la configuración del corea la red configuración en cripto
    (#2052)

Arreglos

  • Se resolvieron los problemas con el resolveOptions que resultaría en opciones se está resolviendo para los plugins que no están registrados en el contenedor
    (#1625)
  • Malformación para filtrar a los peers
    (#1689)
  • Utilice el esquema de paginación correcto para la API pública de v2
    (#1717)
  • Asegúrese de que las búsquedas de delegados puedan manejar valores no definidos
    (#1831)
  • Marcar versiones semánticamente inválidas como inválidas en general
    (#1836)
  • Pedidos de delegados a través de la API pública
    (#1731)
  • Manejar webhooks que no tienen condiciones
    (#1869)
  • Validar la red byte para transacciones
    (#1853)
  • Uso correcto para las direcciones, contraseñas publicas y la validacion de los nombres de usuarios en la red pública API
    (#1954)
  • Rellenar el último bloque de todos los delegados.
    (#1919)
  • Devolver la transacción falsificando la marca de tiempo en lugar de firmar la marca de tiempo
    (#1957)
  • Devolver la transacción falsificando la marca de tiempo en lugar de firmar la marca de tiempo
    (#1955)
  • Una condición de malformación que resultó en listas de pares equivocadas
    (#1939)
  • Verificar correctamente las marcas de tiempo del timestamps
    (#1985)
  • Devuelve los estados fijos de los peers para las respuestas de la API de v1 y v2.
    (#2027)
  • Validar rangos de IP para detectar loopbacks
    (#2045)
  • Se corrigió la comprobación de marca de tiempo inválida
    (#2046)
  • Compruebe si el almacenamiento de estado de blockchain está disponible antes de realizar comprobaciones de forks
    (#2047)
  • Manejar con gracia un archivo peers.json corrupto en caché
    (#2061)
  • Clasifique siempre las transacciones por secuencia y por el campo solicitado para que la clasificación de la API sea determinante.
    (#2058)
  • Rechazar múltiples inscripciones para el mismo delegado
    (#2080)

Eliminado

  • Eliminadas las transacciones Desde el punto final de P2P de FromIds
    (#1911)
  • Eliminado el validador y las reglas de @arkecosystem/crypto
    (#2021)
  • Finalizado el soporte para las multisignaturas heredadas de la anterior horquilla LISK.
    (#2057)

Agradecimientos especiales

Gracias a todos los que han ayudado a probar el core más nuevo, proporcionaron pull-requests, y ayudaron con los problemas identificados - ¡no podríamos haberlo hecho sin ustedes!





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


H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center