Oasis Q3 2022 - Actualización de ingeniería

◤Λntónimo◢
Oasis Network en español
9 min readNov 15, 2022

El tercer trimestre (Q3) han sido meses de mucho trabajo para el equipo de ingeniería de Oasis.

Aviso legal: Esta es una publicación traducida por un miembro de la comunidad de Oasis Network. Se hacen rigurosas comprobaciones para proporcionar traducciones precisas, pero pueden estar sujetas a errores u omisiones. Oasis Network no se hace responsable de la precisión, confiabilidad o actualidad de la información traducida.

Publicación original en inglés: Oasis Q3 2022 Engineering update

Hemos dado grandes pasos para llevar Sapphire a la capa ParaTime con su lanzamiento en Testnet a finales de julio. Ahora es posible construir y desplegar contratos inteligentes confidenciales EVM en el ParaTime de Sapphire en la Testnet — ¡mira el tutorial más abajo!

Además, el equipo también ha trabajado en el mantenimiento de Cipher y Emerald, y estas ParaTimes no han experimentado ningún tiempo de inactividad.

La Oasis WalletWeb, la futura base de código común para todas las billeteras Oasis, también ha tenido algunas actualizaciones importantes para soportar el almacenamiento local del navegador y las transacciones de la ParaTime. Esto nos acerca al lanzamiento de la Oasis Wallet — Extensión de Navegador 2.0, construida a partir del código base común.

A lo largo del trimestre, también se han realizado actualizaciones, mejoras y tres versiones de mantenimiento del Oasis Core, el motor subyacente que alimenta los nodos de Oasis.

Estamos deseando aprovechar este periodo tan ajetreado y pasar al cuarto trimestre del año, en el que se llevarán a cabo otras grandes actualizaciones, entre las que destaca el lanzamiento de Sapphire en la Mainnet.

Para conocer todos los detalles de la actualización de ingeniería, lee a continuación.

ACTUALIZACIONES DE LA WALLET

Oasis Wallet — Web ha visto un desarrollo significativo en el tercer trimestre hacia el soporte de almacenamiento local en el navegador y transacciones en la ParaTime. Planeamos lanzar el soporte para ParaTimes más adelante este año, seguido por la próxima generación de Oasis WalletBrowser Extension, construida a partir de esta base de código común. Hemos fusionado 112 pull requests. Algunas de las adiciones y correcciones más notables (incluyendo el trabajo en la rama de ParaTimes):

· Mostrar la lista de transacciones de ParaTime (#849)
· Corrección de la extensión del navegador (#904)
· Añadir reglas de lint para hacer cumplir nuestros reemplazos de tipo seguro (#911, #914)
· Por defecto, saldo nulo en lugar de 0 (mostrar ‘-’ para saldo desconocido) (#916)
· Mostrar sólo AddEscrowForm en sus cuentas (#918)
· Marcar las transacciones fallidas (#925)
· No utilizar campos de saldo engañosos de RPC (#927)
· Agregar el botón “Reclamar todo” (#931, #932)
· Cambiar la interfaz de usuario para que se parezca a Oasis Wallet — Extensión del navegador (#933, #935, #936, #937)
· Mejorar la precisión numérica con BigNumber.js (#952)
· Depósitos y retiros en la Paratime (#962, #969)
· Mostrar el tiempo estimado de debonding en la lista de debonding (#963)
· Acelerar la carga de la configuración de la red en un 40% (#976)
· Corregir la importación de cuentas múltiples desde Ledger (#980)
· Añadir soporte para derivar múltiples cuentas desde la frase semilla (#983)
· Mencionar el ticker correcto en el resumen de la cuenta (#1026)
· Reducir el tamaño de los paquetes (7,2MB -> 5,4MB) con importaciones de grommet consistentes (#1038)
· Pequeñas correcciones y limpiezas de la interfaz de usuario (#868, #879, #903, #919, #921, #922, #928, #946, #947, #949, #953, #958, #999, #979, #1019, #1049)

Mientras que la base de código de Oasis Wallet — Web pronto se convertirá en la base de código común para ambas billeteras, hemos continuado mejorando la Oasis WalletBrowser Extension. En el tercer trimestre (Q3), fusionamos 9 pull requests y lanzamos la versión 1.8.0. Los cambios más notables son:

· Añadir Sapphire en testnet (#279)
· Mejorar la precisión numérica en el reclamo de la garantía (#281)
· Sondeo del estado de las transacciones de Sapphire (ahora las transacciones están indexadas) (#285)
· Corregir el error de “nonce inválido” (#282)
· Pequeñas correcciones y limpiezas de la interfaz de usuario (#280, #282, #286)

La CLI de Oasis — una CLI unificada para administrar su cuenta y contratos inteligentes en Oasis — también ha recibido algunas mejoras:

· Agregar soporte para volcar el WASM desplegado de los contratos (#1007)
· Agregar soporte para volcar el estado de los contratos (#1034)
· Búsqueda de direcciones por nombre de cuenta, añadir soporte para cuentas de prueba (#1038)
· Apoyar el cambio de la política de actualización de los contratos (#1052)
· Añadir soporte para la libreta de direcciones (#1087)

Para firmar las transacciones de ParaTime con carteras de hardware como Ledger, se ha propuesto una nueva especificación ADR 14. La implementación comenzará en el cuarto trimestre (Q4).

ACTUALIZACIONES DE PARATIME

· Las ParaTimes de Emerald y Cipher se mantuvieron estables en la Mainnet durante el tercer trimestre (Q3), sin experimentar ningún tiempo de inactividad u otros incidentes.
· Los efectos del mercado bajista en el uso de DeFi pueden verse en los volúmenes de transacciones en Emerald. El pico diario del tercer trimestre (Q3) se produjo a principios de julio, con unas 60.000 transacciones diarias, y fue disminuyendo hasta terminar el trimestre con 16.000–18.000 transacciones diarias.
· 52 nodos están ejecutando la Emerald ParaTime en la Mainnet a 30 de septiembre.
· 29 nodos están ejecutando la Cipher ParaTime en la Mainnet a 30 de septiembre.

DESARROLLO DE PARATIMES

En el tercer trimestre (Q3) se produjeron varios avances importantes para las ParaTimes de Oasis.

A finales de julio, desplegamos con éxito la nueva Sapphire ParaTime confidencial compatible con EVM en Testnet. El código está disponible en los repositorios de GitHub sapphire-paratime y oasis-sdk.

Para mayor comodidad, hemos añadido soporte para volcar el código del contrato inteligente desplegado en el Cipher ParaTime y volcar (opcionalmente encriptado) el estado del contrato inteligente. Esto allana el camino para verificar los contratos on-chain y debería ayudar con la depuración.

El resumen de los cambios del Runtime SDK:

· Añadir biblioteca de transporte de cifrado a web-ts; pruebas de derive_symmetric_key para go, rust y typescript (#962)
· Herramienta ORC: Añadir soporte para firmar binarios SGXS (#1056)
· EVM: No requiere el cifrado de una cadena vacía (#1064)
· Arreglo del cálculo de gas: Corregir el envío de sub-calls (#1066)
· EVM: Exponer los datos públicos en las consultas firmadas (#1069)
· EVM: Añadir precompilaciones de encriptación (#1102)
· EVM: No codificar la salida de los contratos (#1138)
· Pruebas y documentación mejoradas (#991, #1041, #1046, #1047, #1081, #1101)

ACTUALIZACIONES DE LA PLATAFORMA PARA DESARROLLADORES

Ahora es posible construir y desplegar contratos inteligentes confidenciales de EVM en la ParaTime de Sapphire en la Testnet. No dudes en consultar un tutorial y darnos tu opinión.

La Emerald Web3 Gateway ahora es compatible con las ParaTimes de Emerald y Sapphire. Otras correcciones incluyen, en su mayoría, cambios en las versiones de las dependencias. En el tercer trimestre (Q3), hemos fusionado 9 pull requests. Se realizó una nueva versión v3.0.0 con correcciones en las funciones de estimación de gas, y la versión v3.1.0-rc1 añadió soporte para Sapphire.

Nuestra documentación se compone de archivos markdown de múltiples repositorios, y fue objeto de una importante revisión en el tercer trimestre (Q3), tanto desde el punto de vista del backend como del frontend. Las categorías del frontend están ahora orientadas al público en lugar de a los componentes:

· Usuarios de la red Oasis (información general sobre la red Oasis y la fundación, guías relacionadas con la cartera)
· Información relacionada con la comunidad
· Operadores de nodos (parámetros de la red Mainnet y Testnet, configuración de varios tipos de nodos y servicios)
· Desarrolladores de dApps (escribir aplicaciones para las ParaTimes Emerald, Sapphire y Cipher)
· Desarrolladores de ParaTime
· Colaboradores Core

Mejoras en el backend:

· Soporte para editar cualquier archivo Markdown independientemente de la ubicación del repositorio original
· Vinculación sin fisuras de archivos .md referenciados y tarjetas doc de otros repositorios
· Soporte para importar fragmentos de código desde archivos
· Para la compatibilidad con versiones anteriores, se han establecido redireccionamientos para todos los documentos anteriores

La documentación ha sido migrada de docs.oasis.dev al dominio docs.oasis.io. Esperamos que disfrutes de los nuevos cambios. ¡Eres libre de contribuir con tutoriales, guías y correcciones visitando https://github.com/oasisprotocol/docs y haciendo pull requests!

El ADR 17 introduce un formato estándar para las normas de interoperabilidad de aplicaciones específicas de ParaTime. Esto va de la mano de nuestra primera RFP que solicita un estándar de token fungible confidencial para la ParaTime de Sapphire.

ACTUALIZACIONES DE LA PLATAFORMA CORE

En el tercer trimestre (Q3) se publicaron tres versiones de mantenimiento de Oasis Core 22.1.x (v22.1.9, v22.1.10, v22.1.11). Paralelamente, se inició el desarrollo de Oasis Core 22.2.x con características clave como Intel SGX2, atestación basada en DCAP, mejoras en la gobernanza on-chain y seguridad en tiempo de ejecución basada en TEE. Está prevista una versión estable a principios del cuarto trimestre (Q4). En total, en el tercer trimestre (Q3) se fusionaron 64 pull requests. Las nuevas características notables y los cambios de ruptura son los siguientes (la mayoría están programados para estar listas en Oasis Core 22.2.x, y algunos fueron retrocedidos a 22.1.x):

· go/staking/grpc: Renombrar el método GovernanceDeposits (#4652)
· go/runtime: Obligar a utilizar el control de horarios en tiempo de ejecución (#4665)
· Añadir soporte para la atestación de PCS (#4806, #4789, #4720, #4752)
· go/governance: Añadir propuesta de parámetros de cambio (#4938)
· Añadir soporte para el modo de archivo (#4539)
· go/control: Mostrar los estados de las opciones de depuración en la salida de control (#4634)
· runtime: Hacer configurable el estado de comprobación de transacciones persistentes (#4640)
· go/runtime/txpool: Limitar las transacciones pendientes por remitente (#4665)
· go/control/status: Añadir campos para una visión rápida del estado de los nodos (#4669)
· go/worker/storage: Hacer más inteligente la selección de pares de sincronización de puntos de control (#4671)
· runtime: verificar el epoch en el despachador utilizando el verificador de consenso (#4677)
· go/worker/compute: Asegurar que la raíz de confianza se verifica antes de registrarse (#4678)
· go/worker/compute: Iniciar la resolución de lotes antes de tiempo para el trabajador de reserva (#4679)
· go/runtime/txpool: Añadir los datos de los mensajes entrantes de roothash como transacciones (#4681)
· go/worker/registro: añadir métricas de estado del nodo (#4686)
· runtime: Habilitar el despachador para verificar la integridad del estado para las consultas (#4694, #4830, #4904)
· go/worker/common/p2p: Añadir soporte para pares persistentes y bloqueados (#4713)
· go/worker/common: Manejar adecuadamente la configuración del gestor de claves dinámico (#4715)
· go/runtime/txpool: Añadir la métrica txpool para las transacciones rechazadas en tiempo de ejecución (#4724)
· runtime: Verificar RAK en estado de consenso al servir solicitudes (#4741)
· runtime: Añadir soporte para informar de los comentarios de los compañeros de EnclaveRPC (#4757)
· archive-mode: desactivar el P2P en tiempo de ejecución si se utiliza el modo de archivo (#4775)
· go/consensus/tendermint: Añadir consensus.tendermint.halt_height (#4793)
· net-runner: Añadir — fixture.default.runtime.version flag (#4813)
· go/oasis-node: permitir que los km tengan pares privados (#4821)
· go/runtime/registry: permitir a los nodos clientes ejecutar sgx runtimes (#4832)
· go/worker/keymanager: Añadir métricas de trabajador del gestor de llaves (#4877)
· go/control/status: Añadir el estado del trabajador del gestor de claves al estado del nodo (#4883)
· keymanager: Añadir soporte para claves efímeras (#4888)
· oasis-net-runner: Establecer max_allowances por defecto, aumentar el saldo de la cuenta de prueba (#4902)
· runtime/consensus/verifier: Apoyar las actualizaciones de la capa de consenso de la raíz de confianza (#4903)
· runtime: Apoyar las consultas de eventos de consenso (#4904)
· keymanager: Validar la última altura de la raíz de confianza en las solicitudes del gestor de claves (#4910)
· registro: Añadir la transacción de la capa de consenso ProveFreshness (#4916)
· runtime: Añadir la verificación al nodo de cliente TEE freshness (#4922)
· keymanager: Verificar que la política fue publicada en la capa de consenso (#4925)
· Vincular los TEE atestados a los nodos y forzar el freshness (#4926)
· go/genesis: Almacenar en caché el hash de los documentos de genesis (#4919)
· go/oasis-node/cmd: unsafe-reset preserva el almacenamiento local por defecto (#4700)
· go/oasis-node/cmd: unsafe-reset comprueba la validez de datadir (#4702)
· runtime: Emitir runtimes logs como oasis-node logs (#4709, #4924)

El nuevo Oasis Indexer, que soporta la indexación de transacciones tanto de la capa de consenso como de ParaTime, ha sido de código abierto. En el tercer trimestre (Q3), la atención se centró principalmente en la construcción de las características básicas, la inclusión de almacenamiento en caché, la corrección de errores, y la mejora de las herramientas de despliegue. Se han fusionado 25 PRs. Planeamos actualizar las billeteras de Oasis para usar el Oasis Indexer en el futuro.

Se ha propuesto el ADR 15 para abordar las debilidades en el proceso por el cual se seleccionan los proponentes de bloques de ParaTime. El proponente del bloque se selecciona actualmente a través de un algoritmo round-robin, lo que hace que sea trivial determinar el proponente de un bloque dado con mucha antelación. El ADR 15 propone un mecanismo para aleatorizar el orden de los proponentes de bloques de la ParaTime.

El ADR 16 propone un proceso más eficiente para actualizar los parámetros de consenso en la Oasis Network. Actualmente, para cambiar los parámetros de consenso, hay que actualizar los binarios del oasis-node, reiniciarlos y resincronizarlos con la nueva versión de la red de consenso. El ADR 16 añade una nueva propuesta de gobernanza llamada ChangeParametersProposal que puede evitar el tiempo de inactividad y mejorar la robustez de la red.

--

--