Reporte Mensual Neo Global - Desarrollo

Mayo 2022

Reporte Mensual Neo Global - Desarrollo

Resúmenes

Muchas de las actualizaciones del equipo de desarrollo central de este mes se centraron en la capacidad de mantenimiento y la estabilidad a largo plazo para Neo, tanto como protocolo como plataforma de desarrollo. La implementación del soporte de bifurcación dura permite que se introduzcan de forma segura cambios incompatibles con versiones anteriores, la primera son las alteraciones en los precios de syscall que aliviarían las preocupaciones de DoS.

El aislamiento de instantáneas fue otro ejemplo, que evita que los cambios de almacenamiento de contratos no deseados persistan entre las llamadas de contrato donde se producen excepciones. La experiencia de desarrollo por contrato para el desarrollador de C# se mejoró a través de la compilación condicional, eliminando la necesidad de reescrituras de código entre las compilaciones de depuración y producción.

Los grupos de desarrollo comunitario patrocinados por Neo lanzaron sus propias actualizaciones en sintonía con el núcleo, adaptándose a las modificaciones y trasplantando las nuevas piezas de funcionalidad. NEXT completó sus preparativos para una importante actualización de la billetera de extensión NeoLine, brindando soporte de Ledger y soporte de red personalizado para hacer que la billetera sea más versátil tanto para usuarios como para desarrolladores.

Mientras tanto, Neo SPCC exploró nuevas optimizaciones de NeoFS en forma del servicio de árbol de objetos, y NGD Enterprise continuó cubriendo terreno en el desarrollo de su nuevo compilador para contratos inteligentes TypeScript.

El informe de desarrollo mensual global completo de Neo para mayo se puede encontrar a continuación.

DESARROLLO DE PROTOCOLOS

DESARROLLO DE PROTOCOLOS

Neo Núcleo

Mejoras en el manejo de excepciones implementadas para llamadas entre contratos

La adición del aislamiento de instantáneas en el núcleo de Neo fue una de las actualizaciones más notables que Neo recibió en mayo. Después de la actualización, los cambios de estado causados por las invocaciones de contrato se mantienen separados entre cada llamada de contrato.

Si una llamada determinada da lugar a una excepción, los cambios de estado en el contrato llamado se revierten automáticamente, evitando consecuencias no deseadas que podrían producirse cuando el contrato que realiza la llamada controla las excepciones.


Compatibilidad con hardforks a nivel de protocolo y ajustes de precios de syscall

El equipo de desarrollo central trabajó hacia el lanzamiento del hito de Neo v3.3.0 en mayo, que se convertiría en el primer lanzamiento en incluir soporte para bifurcaciones duras a nivel de protocolo. Esto permite a la plataforma realizar ajustes a los precios de syscall codificados sin romper las transacciones en bloques anteriores. En la primera bifurcación, las tarifas de getRandom y createMultisigAccount se ajustaron para mitigar las preocupaciones de DoS y otros problemas.


NeoVM mejorado con nuevos opcodes y copias profundas como inmutable para StackItems

MODMUL y MODPOW llegaron a NeoVM, abriendo nuevas oportunidades para aplicaciones en cadena relacionadas con la criptografía y las pruebas de conocimiento cero. Otro cambio en el nivel de NeoVM fue la capacidad de copiar en profundidad los elementos de la pila como inmutables. Esto permite mejorar el rendimiento en situaciones que involucran Notify y GetNotifications, al tiempo que evita la posibilidad de que un contrato modifique las notificaciones recibidas.


La compilación condicional y los nuevos métodos aterrizan en el neo-devpack-dotnet

El compilador de contratos de C# recibió una serie de actualizaciones en mayo, incluidos nuevos métodos matemáticos para devolver valores absolutos, optimizaciones para mapas de almacenamiento y la capacidad de concatenar bytestrings.

También se implementó el soporte de compilación condicional a través de #if DEBUG, mejorando el flujo de trabajo de desarrollo de contratos para desarrolladores de C#. En particular, se puede utilizar para deshabilitar temporalmente el atributo safe en métodos de solo lectura, lo que permite el uso de Runtime.Log() durante el desarrollo sin comprometer el código de lanzamiento.

DESARROLLO DE INFRAESTRUCTURA Y HERRAMIENTAS

DESARROLLO DE INFRAESTRUCTURA Y HERRAMIENTAS

Resúmenes

DESARROLLO DE INFRAESTRUCTURA Y HERRAMIENTAS

Hitos del proyecto

NODO

NeoGo por Neo SPCC

Neo SPCC completó su montaña habitual de actualizaciones de NeoGo este mes. Al igual que en los últimos meses, los cambios se dividieron entre los cambios de protocolo en la implementación de referencia y las optimizaciones específicas del nodo Go y las correcciones de errores.

Al realizar un seguimiento del núcleo y su reciente versión v3.3.0, el equipo implementó todos los ajustes necesarios para mantener la compatibilidad total con C#. Estos incluían límites comparables de bytes, elementos de pila inmutables y nuevos códigos de operación en la máquina virtual, así como soporte de bifurcación dura y varias refactorizaciones / mitigaciones de DOS.

Una larga lista de actualizaciones específicas de NeoGo se implementaron en mayo. Los ejemplos incluyen mejoras en la redirección del sistema oracle, incompatibilidades de estado, manejo de contraseñas con tty, correcciones para problemas de contador de referencia y el alcance del testigo de reglas, y varias mejoras en el paquete RPC.

El equipo también mejoró su documentación y comentarios de código con una revisión gramatical exhaustiva. Casi 300 archivos recibieron mejoras, consolidando NeoGo como uno de los proyectos más documentados en el ecosistema.

https://github.com/nspcc-dev/neo-go

SDK

neow3j por AxLabs

Axlabs lanzó v3.17.1 de neow3j en mayo, una actualización menor que trajo cambios en el SDK y devpack. En el primero, la versión realizó un cambio que permite construir transacciones que terminarán en un estado FAULT en NeoVM. Originalmente, solo se podían transmitir las transacciones que se ejecutaban con éxito; una nueva opción permitirá que las transacciones defectuosas procedan a los efectos de las pruebas contractuales.

En el devpack, se agregaron nuevos métodos de conveniencia para facilitar la recuperación de Hash160 y Hash256 de las clases Storage y StorageMap sin la necesidad de instancias manuales.

https://github.com/neow3j/neow3j

CONTRATO INTELIGENTE Y MARCO DAPP

Neo Blockchain Toolkit por NGD Enterprise

El Neo Blockchain Toolkit recibió una serie de cambios después de las actualizaciones de Neo core v3.3. Las versiones preliminares se publicaron y se están probando, a la espera de las actualizaciones de complementos requeridas antes de la versión final. El diseño del esquema de almacenamiento que fue previsualizado por el equipo el mes pasado también recibió cambios después de los comentarios y revisiones de los desarrolladores.

El equipo también continuó su esfuerzo para desarrollar un nuevo compilador de contratos inteligentes para TypeScript, actualmente en las primeras etapas de desarrollo. Una vez completado, el lenguaje se convertirá en el quinto lenguaje de contrato inteligente Neo N3 compatible, presentando una gran oportunidad de incorporación para los desarrolladores tradicionales (particularmente web) a blockchain.

https://marketplace.visualstudio.com/items?itemName=ngd-seattle.neo-blockchain-toolkit

BILLETERA

NeoLine de NEXT

Las principales mejoras se completaron para la billetera de extensión NeoLine Chrome en mayo. Soporte para dispositivos de billetera de hardware Ledger, redes personalizadas y servidores RPC, y mejoras de UX, como búsqueda de billetera y un indicador de billetera activa. NEXT también rediseñó la interfaz de usuario para su página de detalles de la billetera, reescribiendo la lógica subyacente para tener en cuenta las nuevas características y mejorando el diseño de la revisión.

https://neoline.io/

NEOFS

NeoFS por Neo SPCC

Hasta mayo, el desarrollo de NeoFS se centró en las mejoras de rendimiento y mantenibilidad. El cambio más significativo se produjo en forma del servicio de árbol de objetos, que maneja el control de acceso, la replicación y trae consigo una serie de optimizaciones. También se implementó una refactorización de la CLI, una actualización del SDK y mejoras en la API en el núcleo de NeoFS.

Los servicios de NeoFS también se ajustaron para adoptar el servicio de árbol, mejorando el rendimiento en la puerta de enlace S3 bajo alta carga. El equipo también se preparó para el lanzamiento público del servicio NeoFS CDN y creó una herramienta de prueba de carga universal para comparar soluciones compatibles con S3.

https://fs.neo.org/

AUDITORÍA

Auditoría por Red4Sec

Red4Sec continuó su auditoría de proyectos de ecosistemas en mayo, incluida la revisión de las correcciones y la entrega final de los contratos inteligentes de GrantShares, las revisiones de solicitudes de extracción para PayProxy y un nuevo problema detectado en el proyecto FlamingoSwapPair. También se programó una auditoría en junio para Saffron Finance para junio, y se encontraron y reportaron dos vulnerabilidades en la plataforma central de Neo.

https://red4sec.com/en