A diferencia de otras soluciones, uno podría notar que la experiencia del desarrollador no es un problema que abordamos desde el principio. Esto no significa que no nos interese la experiencia del desarrollador. Por el contrario, creemos que los desarrolladores son la parte más fundamental y crucial de todo el ecosistema de Nervos. La contradicción aquí proviene de nuestra creencia en abstracciones de software. Creemos que la parte central de Nervos CKB debe dar prioridad a la seguridad, la estabilidad y el rendimiento.
De hecho, hay ciertos aspectos que podrían ayudar con la experiencia del desarrollador, pero elegimos dejarlos fuera ya que creemos que los 3 pilares fundamentales podrían verse afectados al incluir estas características adicionales. Para compensar la falta de estas características, estamos creando capas y herramientas adicionales que mejorarán la historia de desarrollo de Nervos CKB. Este ha sido el enfoque principal del equipo de Nervos desde que se lanzó Nervos CKB en noviembre pasado.
No estamos solos en la industria informática en la búsqueda de este tipo de camino. Tome nuestras CPU más queridas, por ejemplo. Las CPU modernas solo ejecutan código de ensamblaje sofisticado, y no escuchamos a las personas que anhelan CPU que ejecutan Rust o JavaScript. En su lugar, creamos compiladores y máquinas virtuales, que traducen lenguajes de nivel superior en código de ensamblaje cuidadosamente ajustado que luego se ejecuta en nuestras CPU. Es con abstracciones de software como esta, que tenemos la oportunidad de construir un mundo completo asistido por computadora. Visualizamos una futura infraestructura de que usa exactamente la misma arquitectura: el nivel central se enfoca en lograr la base correcta, mientras que las capas circundantes brindan ayuda a los desarrolladores.
Saludamos a todos los desarrolladores que probaron CKB inmediatamente después de su lanzamiento, aunque esto significaba que solo había herramientas prematuras disponibles. Esos pioneros dedicaron un tremendo esfuerzo a construir demostraciones y aplicaciones sobre Nervos CKB, mostrando el poder único de Nervos CKB a todo el mundo. También nos sentimos humillados y avergonzados, ya que no pudimos equipar esas caballerías con armaduras y armas decentes. Por lo tanto, es un verdadero honor y privilegio presentar algunos de los últimos trabajos del equipo de Nervos: Capsule, Lumos y Polyjuice a todos los desarrolladores, a fin de ayudarlo a crear dapps maravillosos en Nervos CKB.
Nuestro primer paso del viaje comienza con contratos inteligentes o scripts en terminología CKB. Si ha seguido nuestro camino, sabrá que en este momento la mayoría de los scripts en CKB están escritos en el viejo C. Esto nunca ha sido porque sentimos que C es un lenguaje de contrato inteligente apropiado para todos. Se debe simplemente al hecho de que todavía estamos trabajando duro para ponernos al día con las herramientas. Cuando necesitábamos una forma de crear scripts en los primeros días, C era la única solución práctica para nosotros. Somos muy cuidadosos con el código C que escribimos, a pesar de que somos los creadores de la plataforma. Limitamos las bibliotecas externas y las nuevas funciones que utilizamos. Una forma de ver los scripts que tenemos ahora es que imitan los programas C para dispositivos integrados.
Pero entendemos que esta no es una solución ideal para muchos y que nunca podríamos ganar la confianza de los desarrolladores de contratos inteligentes si publicitamos los scripts de construcción con C. Los contratos inteligentes sofisticados modernos ya son muy complicados de construir, sin mencionar que C trae su propia bolsa de cargas . Queremos equipar a los desarrolladores con todas las características y herramientas de lenguaje de vanguardia que uno puede aprovechar para ayudar al desarrollo de guiones.
Para resolver este problema, hemos creado Capsule. En esencia, Capsule proporciona una solución para construir scripts CKB utilizando el lenguaje de programación Rust. Rust es un lenguaje diseñado para capacitar a todos para construir software confiable y eficiente. El sistema de tipos y el modelo de propiedad probados en la batalla, una comunidad saludable que inventa cosas nuevas todos los días, junto con el amplio uso en la industria , hacen de Rust un lenguaje perfecto de propósito general para crear scripts en CKB. Capsule se ajusta a las herramientas Rust y proporciona una experiencia perfecta para construir scripts basados en Rust para Nervos CKB.
Por el lado del lenguaje, Capsule también proporciona abstracciones (en forma de bibliotecas Rust) para ayudar a construir el script CKB. Core CKB solo proporciona syscalls absolutamente necesarios para comunicarse con CKB, lo que significa que puede ser un poco problemático de usar. Además de esto, Capsule proporciona abstracciones para facilitar la comunicación con la cadena de bloques CKB desde un script. Una analogía aquí es que si bien File in Rust es bastante divertido de usar, las llamadas al sistema subyacentes de Linux pueden ser bastante complicadas para acertar. Esto, en nuestra opinión, es otro caso de mostrar el poder de las abstracciones.
La cápsula tampoco se detiene aquí. Su objetivo es administrar el ciclo de vida completo de un script CKB. Le ayuda a desarrollar, construir, probar, depurar y también implementar el script. Al igual que lo que sugiere el nombre, Capsule contiene un universo muy grande en un factor de forma extremadamente pequeño. Visualizamos un mundo en el que Capsule es todo lo que uno necesita para pasar de cero a un script exitoso y en ejecución en la red principal de CKB.
Los contratos inteligentes son solo una parte del desafío. Debido a ciertas razones, como las necesidades de QoS o para hacer frente mejor a los diferentes casos de uso, generalmente se necesita crear un servicio de back-end en la parte superior de la cadena de bloques, que luego se encarga de manejar las solicitudes de los usuarios. Nervos CKB no es una excepción aquí. De hecho, debido a nuestra filosofía de diseño de abstracciones, CKB tiene una mayor necesidad de una capa superior que la mayoría de las otras cadenas de bloques. Con esta capa superior, simplificamos los esfuerzos de los desarrolladores para crear los dapps perfectos.
Lumos nació de este requisito. Diseñado sobre CKB, Lumos proporciona un marco basado en JavaScript / TypeScript, que puede acelerar significativamente el desarrollo de dapp. El nombre explica de qué se trata el proyecto: el país de las maravillas de CKB, aunque vasto y fértil, aún permanece oscuro en la mayoría de las partes, Lumos arroja luz sobre la tierra, guiando a las personas a este hermoso mundo nuevo.
En su lanzamiento inicial, Lumos contiene los siguientes componentes:
Un indexador de celdas de alto rendimiento que sondea bloques de un nodo CKB, los indexa, luego proporciona una forma óptima de consultar celdas. Un administrador de transacciones que maneja todas las transacciones pendientes y permite que sus celdas de salida sean utilizables incluso antes de que se confirmen las transacciones, lo que evita los problemas causados por transacciones anteriores que deben aceptarse en la cadena antes de que se pueda crear la siguiente transacción. Un administrador de configuración unificado que maneja los detalles de conectar el marco a diferentes cadenas, como mainnet, testnet, devnet, etc. también rastrea los scripts implementados en la cadena para simplificar el trabajo de construcción de transacciones. Un flujo de trabajo unificado para construir transacciones que contienen muchos scripts interactivos diferentes. Creemos que este flujo de trabajo de nuevo diseño puede capturar perfectamente las diferentes necesidades de los desarrolladores de dapp frente a los desarrolladores de scripts. Consulte el sitio del documento para ver el flujo de trabajo detallado. Soporte integrado para todos los scripts conocidos en este momento.
Esto es solo un vistazo de todas las posibilidades en Lumos. La versión inicial proporciona una base para construir, pero de ninguna manera está completa. Los invitamos a todos a unirse al ciclo de desarrollo, probar Lumos (y también Capsule) y contarnos cómo se sienten. Solo con comentarios y críticas, podemos realmente construir las abstracciones y herramientas que se adapten a las necesidades en el mundo Nervos CKB.
Nervos CKB se basa en el modelo celular, que es una versión generalizada del modelo UTXO. Parece existir una creencia en el mundo de que el modelo UTXO es difícil de programar, mientras que el modelo de cuenta es más fácil para los desarrolladores. Aunque el modelo celular es un descendiente del modelo UTXO, es perfectamente posible construir un modelo de cuenta sobre el modelo celular. El secreto aquí también radica en la abstracción. Mientras que en el nivel inferior, el diseño de estilo UTXO puede ayudar a lograr el paralelismo, en un nivel superior, una capa de abstracción puede exponer un modelo de cuenta a los desarrolladores cotidianos.
Como ingenieros, todos conocemos la famosa frase "Hablar es barato. Muéstrame el código. Siguiendo este principio, diseñamos y construimos Polyjuice, que es una capa compatible con Ethereum en la parte superior de Nervos CKB. Ethereum, hasta el día de hoy, es probablemente el basado en el modelo de cuenta más utilizado y flexible. Con Polyjuice, queremos mostrar que es perfectamente posible usar el modelo de cuenta en Nervos CKB. La flexibilidad aquí en realidad permite innumerables oportunidades.
Para hacer las cosas más interesantes, no creamos una capa de cuenta que esté diseñada solo para Ethereum; Hemos extraído la capa de la cuenta principal de Polyjuice. Con esta biblioteca genérica, puede integrar cualquier capa de cuenta que desee. Una posibilidad futura emocionante que nos encantaría presenciar es que el modelo de programación exacto de Libra también podría trasladarse a CKB, lo que permite un ecosistema muy fructífero.
Con todos estos proyectos emocionantes, nuestro antiguo sitio de documentación ha comenzado a mostrar su antigüedad. Así que también hemos restaurado el sitio del documento. El nuevo sitio está dividido en varias secciones, con el objetivo de ayudarlo a encontrar exactamente lo que necesita al instante:
Lo esencial: este es el punto de partida, si solo desea conocer CKB, lo guiará a través de la descarga y ejecución de CKB. Le mostrará cómo conectarse a mainnet o testnet, cómo crear una nueva cadena de desarrollo y minar tokens para el desarrollo. También le mostrará cómo interactuar con CKB a través de muchas herramientas, como ckb-cli.Referencia: para desarrolladores, esto podría servir como un diccionario. ¿Quiere saber cómo se ejecuta un script? Tendremos un documento de referencia para eso. ¿Quiere saber qué componentes están disponibles en una celda? Te tenemos cubierto! ¿Quiere aprender todo el flujo de validación de transacciones? ¡Este es el lugar! Nos aseguraremos de que esta referencia cubra todos los detalles que desea saber sobre CKB.Laboratorios: los documentos de referencia por sí solos no ayudarán demasiado. Habrá momentos en que querrás ensuciarte las manos y comenzar a jugar con las cosas. En esta sección proporcionaremos guías reales paso a paso sobre cómo construir cosas con CKB. Si desea crear un nuevo script de CKB o escribir un dapp que interactúe con CKB, tendremos todo tipo de laboratorios reales para cubrir estos ejercicios.Integrar: las billeteras externas o los intercambios generalmente enfrentan desafíos únicos y diferentes cuando integran CKB en su sistema. Esta sección proporcionará guías y consejos para integrar CKB en un servicio existente, como una billetera o un intercambio.Ensayos: tenemos desarrolladores que escriben diferentes artículos sobre CKB todo el día. Aquí proporcionamos un jardín para que los desarrolladores escriban artículos independientes. No importa si se trata de depurar scripts de CKB, o formato de serialización, o incluso mejores prácticas de RPC, queremos proporcionar un lugar donde todos se sientan cómodos compartiendo sus ideas.
En última instancia, esperamos que el nuevo sitio de documentos pueda responder todas sus preguntas sobre Nervos CKB.
Creemos que CKB tiene el potencial de brotar en un ecosistema próspero. Los proyectos presentados aquí son solo un vistazo de las muchas ideas y paradigmas nuevos que Nervos CKB ha habilitado. Nuestra esperanza es que estos proyectos puedan aumentar su productividad en la construcción de dapps CKB, así como inspirar nuevas direcciones solo posibles con Nervos CKB. Dicho esto, ya estamos mirando más allá del horizonte inmediato, y algunos proyectos más prometedores también se están construyendo mientras hablamos:
WebAssembly está comenzando a ganar cada vez más uso en el espacio . Aunque creemos que RISC-V es una mejor opción para Nervos CKB, esto no significa que no podamos proporcionar un soporte de WebAssembly de primera clase. Ahora estamos construyendo un proyecto que puede traducir cualquier programa WebAssembly con WASI al script CKB. Además del nuevo soporte de lenguaje de programación, como AssemblyScript, creemos que esto también puede desbloquear un nuevo potencial, como la interoperabilidad en diferentes blockchains. Por encima, hemos demostrado soporte de lenguaje de propósito general en CKB, pero el viaje no se detiene aquí. Enterrado profundamente en el modelo de CKB VM, descansa un potencial más que solo puede revelarse con un lenguaje de programación diseñado a medida. En este espíritu, también estamos estudiando las posibilidades de crear un desarrollo de script de orientación de lenguaje de propósito especial en CKB. Estos intentos, cuando estén listos, deberían desatar más poderes habilitados por el diseño único de CKB. Los proyectos lanzados actualmente se adaptan principalmente a las necesidades de los desarrolladores de back-end. También hay numerosos desarrolladores frontend o de aplicaciones que están igualmente ansiosos por unirse al país de las maravillas de CKB. También estamos trabajando para proporcionar herramientas nocode que permitan a esas mentes curiosas construir una experiencia dapp completa en Nervos CKB.
Creemos que el cielo es el límite cuando se trata del potencial de CKB. Además de todo lo mencionado anteriormente, estamos experimentando con más ideas y trabajando en más herramientas en CKB, y esperamos sinceramente compartirlas con usted en el futuro.