Ethereum ha crecido muy rápidamente en los últimos meses. El volumen de transacciones en la cadena de bloques ha más del doble, superando las 10 transacciones por segundo durante días a la vez. El número de nuevas cuentas creadas por día. pasó 100,000y el número de nodos ha aumentado a pesar de los crecientes requisitos del sistema. A medida que la atención y el interés en el espacio blockchain en su conjunto continúan alcanzando nuevos máximos, estamos entrando en una nueva fase en el crecimiento de la industria: la fase en la que finalmente pasamos de los experimentos y las pruebas a las aplicaciones reales y en vivo.
Casper
fragmentación
Py-EVM
EIP (Propuestas de mejora de Ethereum)
Fusionamos 12 EIP desde el último resumen.
Verificación formal
- recibimos un contribución de Sidney Amani y sus colegas en datos61 eso reduce el número de pasos de razonamiento en la verificación del código EVM.
- Se corrigió un error en Bamboo relacionado con el formato JSON ABI.
Pruebas
- Testeth ahora verifica que los archivos .json de prueba se actualicen con los archivos de relleno de prueba. Cada prueba tiene un hash de su relleno.
- Testeth mostrará una advertencia si hay una prueba sin relleno.
- Los rellenos de prueba de transacciones ahora están en formato general. Una prueba describe un caso para todas las diferentes reglas de bifurcación.
- Algunas suites de prueba grandes (con muchas pruebas) se dividieron en otras más pequeñas para una mejor ejecución en subprocesos a través de ctest.
- Se reactivaron las opciones de código aleatorio de Testeth. Con `–createRandomTest`, testeth generará una prueba inteligente de estado aleatorio. Este comando también acepta opciones para generar un código aleatorio.
- Las opciones de Testeth arrojan una advertencia/error si se usan incorrectamente.
- Se agregaron nuevas pruebas desde la hoja de cálculo.
- Está en curso una PR con soporte YAML para archivos de relleno de prueba. A diferencia del formato JSON, el formato YAML permite comentarios de usuario y campos de varias líneas para una buena representación de contratos inteligentes.
remezclar
La última actualización (remix.ethereum.org) incluye:
- Una forma de registrar transacciones (para ejecutarlas más adelante).
- Uso de la interfaz JSON IO estándar para Solidity Compiler.
- Mejora en el Editor de Solidez.
- Uso directo de la ABI para interactuar con los contratos.
- Mejora general de la interfaz.
- Nuevo módulo de Análisis Estático.
Gracias a @ninabreznik (Editora de Solidity), @serapath (Grabadora), @ryestew (Interfaz) por sus contribuciones activas.
Ahora nos estamos enfocando en mejorar el editor de código, mejorar Remixd (que ahora apenas se puede usar para carpetas grandes) y pulir los temas.
Continuamos trabajando para hacer todo lo posible para actualizar remix.ethereum.org cada mes y para cada corrección de error importante. Como Remix se encuentra en un intenso desarrollo, siempre aparecen nuevas funciones, así que no dude en contribuir con sus comentarios y código.
Solidez
estamos trabajando en un optimizador para nuestro nuevo lenguaje intermedio IULIA. El primer objetivo es convertir el código extremadamente modular del nuevo codificador ABI en un código eficiente. Por supuesto, todo el ensamblaje en línea y también el generador de código principal se beneficiarán de este trabajo al final. A diferencia del antiguo optimizador, que básicamente absorbía el código de bytes en una representación interna y luego volvía a generar el código desde cero, el nuevo optimizador se compone de muchos pequeña y muy simple individual etapas que operan directamente en el AST de IULIA y, por lo tanto, son fácilmente verificables para su corrección.
La segunda gran área de trabajo es el componente de verificación SMT. Ahora es capaz de seguir correctamente el flujo de control de ramificaciones y uniones y también toma condiciones en cuenta. Bucle experimental desenrollando es la siguiente etapa.
Aparte de eso, estamos haciendo muchos diminuto cambios hacia compilador y el idioma y la fijación de la restante problemas que se identificaron en la auditoría del compilador recientemente completada.
¡Me gustaría agradecer a los muchos colaboradores externos voluntarios por su arduo trabajo (las atribuciones individuales se hacen en la página de lanzamiento, como siempre)!
Seguridad
Continuamos con los esfuerzos para realizar pruebas de fuzz en EVM, y también estamos aplicando pruebas de fuzz en otras áreas de la plataforma Ethereum, como la pila de redes geth y la canalización de solidez, donde estamos viendo si se puede usar para garantizar la calidad de algunos nuevos componentes IULIA.
Estamos creando un nuevo firmante para habilitar casos de uso más avanzados en los que la administración de cuentas se desvincula del nodo de red. La idea es tener una experiencia de lo que ves es lo que firmas, donde los componentes confidenciales se pueden ejecutar en una máquina virtual separada, en una computadora separada o en un teléfono móvil.
Ha habido mucha actividad en el frente de recompensas, particularmente en Mist, y nos gustaría recordarles a todos los usuarios que no usen el navegador Mist en redes o sitios web que no son de confianza.
Además, finalmente se agregará EthereumJ al grupo de clientes que se someten a pruebas de Hive, y se agregará EthereumJS al grupo de clientes que admiten la salida json común compartida para que pueda funcionar junto con los demás en las herramientas de Evmlab.
Ecosistema de Python
Hemos completado la migración de los repositorios de la mayoría de las bibliotecas de python al github de la Fundación Ethereum. Muchas de estas bibliotecas fueron renombradas en el proceso para ajustarse a una sola convención de nomenclatura. Si usa alguna de las siguientes bibliotecas, debe actualizar sus dependencias.
- ethereum-utils renombrado a eth-utils
- Ethereum-abi-utils renombrado a eth-abi
- Ethereum-claves renombrado a eth-claves
- Ethereum-keyfile renombrado a archivo de claves eth
- probador de ethereum renombrado a probador de ética
Además, la mayoría de las herramientas de python ahora emitirán advertencias de obsolescencia cuando se ejecuten con python 2. La compatibilidad con python 2 se eliminará en el primer trimestre de 2018. Actualice a python 3 si aún no lo ha hecho.
Probador de Ethereum
Él probador de ética La biblioteca de python ha recibido algunas actualizaciones y mejoras. Esta biblioteca aún se encuentra en una versión beta previa al lanzamiento.
- Nuevo pietéreo>=2.1.0,<2.2.0 back-end
- Backend py-evm actualizado para las últimas reglas de byzantium.
- Varias correcciones de errores.
Web3.py
Web3.py permite que su código python interactúe con un nodo Ethereum. Se lanzó la versión 4, como Beta, que incluye estos cambios:
- Búsquedas automáticas del servicio de nombres de Ethereum: los métodos que aceptan direcciones hexadecimales ahora aceptan nombres ENS.
- Trabajar con claves privadas locales: firmar y verificar transacciones simples, transacciones de contratos y mensajes.
- Mejor adivinar los parámetros de conexión, por menos repetitivo al inicializar Web3.
- PIE 55 direcciones de suma de comprobación devueltas en todas partes y requeridas como entrada.
- Mejor manejo nativo de cadenas y tipos de bytes; más `bytes`, menos hexadecimal `str`.
ecosistema EthereumJS
- Nuestro Bizancio actualizar es bien recibido (antes de Bizancio todavía se puede usar con v2.2.2 liberación) y ya utilizado por remezclar y ganache (antes TestRPC).
- Devcon3 habla sobre web3.js 1.0la EthJS kit de herramientas de desarrollo y remezclar desarrollo, fueron presentados, así como varios otros negociaciones en relación con la formación técnica pertinente.
- Nuevo rustbn.js biblioteca para las precompilaciones de emparejamiento elíptico en la máquina virtual basada en Rust biblioteca de Zcash/paridad.
- Soporte para la creación y verificación de pruebas Merkle en el merkle-patricia-tree biblioteca (cortesía de @jbaylina).
- EIP-8 compatibilidad y mejor documentación para nuestro desarrollo2p biblioteca.
- Mucho Devcon3 EthJS comentarios, próximas actualizaciones: posible eliminación de soporte de devolución de llamada para claridad de Node.js, librerías de firma BLS fáciles (¡gracias DFinity!), un envoltorio de nodo Ethereum para pruebas más sencillas, bibliotecas auxiliares de administración de paquetes, mejor soporte de filtrado.
Web3.js 1.0
Él rama 1.0 está evolucionando con la ayuda de muchas contribuciones de la comunidad. Aunque todavía está en versión beta, muchos desarrolladores ya usan 1.0 para sus proyectos y la respuesta hasta ahora ha sido abrumadoramente positiva. En las próximas semanas, el cuentas web3 El paquete se auditará, ya que se puede usar para generar claves y firmar mensajes y transacciones.
eWASM (Ethereum WebAssembly)
El progreso continúa ewasm-kernel y evm2wasm, que forman un prototipo de VM y transpiler escrito en JS. El progreso también continúa en Hera, una VM escrita en C++ que es compatible con la API EVM-C. Estamos trabajando para transpilar las pruebas de estado de EVM en un conjunto de pruebas de eWASM que se puede usar para probar Hera. El objetivo a corto plazo es construir un cliente “Geth+Hera” y usarlo para lanzar una red de prueba eWASM.
C++ Etéreo
Geth
Ha habido un lanzamiento de geth desde el último resumen, v1.7.3. Aspectos destacados de ese lanzamiento
incluir:
- Versión 2 del protocolo les light client. les/2 agrega soporte para recuperar filtros de floración de registros parciales, lo que permite el filtrado rápido de registros con el cliente ligero.
- `geth –dev` es mucho más rápido y utiliza Prueba de autoridad en lugar de Prueba de trabajo.
Para la próxima versión, el trabajo se centra en:
- Una revisión de la infraestructura de seguimiento de máquinas virtuales:
- soporte para rastrear una variedad de bloques, incluida la reconstrucción de estados históricos.
- funciones de seguimiento predefinidas, por ejemplo, para recopilar todas las transacciones internas o el cierre de estado de una llamada en particular.
- Mover el manejo de las claves privadas de la cuenta de geth a las herramientas auxiliares:
- el firmante, una herramienta para firmar transacciones.
- ethkey, una herramienta de línea de comandos para manejar archivos clave.
- Envío de un prototipo funcional de peer discovery v5 y publicación de EIP asociados.
- Habilitación de más herramientas de análisis estático para compilaciones de integración continua.
Niebla
Ethereum Wallet y Mist Beta habían superado la marca de 3 millones de descargas combinadas. La última versión, 0.9.3, se descargó más de 450 mil veces.
Nuestro equipo da la bienvenida a dos nuevos miembros: Marc Garreau y Ryan Ghods. Después de un tiempo, volvemos a tener un equipo completo.
Principales cambios desde la última actualización:
– Integración de cliente ligero y adaptaciones de Wallet Dapp, aunque el LES v2 todavía es experimental.
– Una reescritura del núcleo de Mist, que permite un mejor control del estado y los recursos manejados por la aplicación.
– Estudios y muchos simulacros/bocetos sobre el siguiente paso de la gestión de nodos, transacciones y cuentas.
– Numerosas correcciones de errores y manejo de problemas.
Recientemente lanzamos una alerta de seguridad sobre Vulnerabilidades de Chromium que afectan a Mist Browser Beta.
Enjambre
Uno de nuestros proyectos es PSS, un sistema de mensajería construido sobre Swarm. La mayoría de las funciones planificadas para PoC3 ya están listas, y PSS ya se usa como backend del prototipo de aplicación de chat de Mainframe.
PSS utiliza la red de enrutamiento de Swarm para entregar mensajes entre nodos. Ya implementa las siguientes características: cifrado (opcionalmente con claves efímeras generadas por el módulo de protocolo de enlace)control de luminosidad (divulgación total, parcial o nula de las direcciones de los nodos de comunicación), RPC api y prevención de inundaciones. Todavía tenemos algunas tareas por hacer, principalmente pruebas de estrés y evaluación comparativa, y también tenemos que volver a fusionar el código para convertirlo en maestro de ethereum.
También estamos trabajando en el intercambiar, jurar y estafar sistema de incentivos. tenemos un basico implementación de estafaintercambio y chequera en el código Swarm, y las otras partes se describen en el papel en progreso. Nuestro objetivo es finalizar el documento y comenzar a implementar la capa de incentivos.
En nuestro prueba y simulación de redes proyecto, implementamos un marco para crear y ejecutar una red de simulación de nodos devp2p. Para la simulación implementamos adaptadores de nodo que crean un entorno de prueba para que se ejecuten los nodos (adaptadores en proceso, ejecutables y acoplables). También creamos una aplicación de visualización en 3D para mostrar la estructura y el comportamiento de la red.
También empezamos a prometer esfuerzo colaborativos con Wolk (para desarrollar una capa de base de datos sobre Swarm), Livepeer (para implementar transmisión de video en vivo usando Swarm) y Status (para implementar nodos de enjambre ligero para dispositivos móviles).
Susurro
La versión 6 de Whisper ha comenzado. Esperamos que esté lista para fines de febrero. v6 ofrece a los nodos más control sobre la carga de la red, explora el uso de libp2p en el código base de go y mejora la compatibilidad con la versión Parity de susurro.