Hoy hablaremos de Substrate, una biblioteca que puede ayudarlo a crear su propia cadena de bloques personalizada. Substrate fue desarrollado por ParityTech y también proporciona la base para Polkadot. ¿Qué es un sustrato? Explicación del Diccionario de Oxford: Una sustancia o capa que subyace a algo, o sobre la cual ocurre algún proceso (bajo ciertas cosas, o puede basarse en ella para crear algunas sustancias o capas de cosas) Como sugiere el nombre, Sustrato Se puede usar para hacer crecer o construir algo encima. En nuestro caso, podemos construir blockchains, o en el caso de Polkadot, toda una familia de blockchains. ¿Por qué necesito Substrate?Al fin y al cabo, el software es abstracción. La historia de la informática muestra que cada vez obtenemos más y más abstracciones: desde la lógica discreta hasta los circuitos integrados y las CPU; desde el código de máquina hasta el ensamblaje, desde el ensamblaje hasta C, C++, Rust, Haskell, etc. Lo mismo ocurre con las API de programación. Por ejemplo, casi nadie escribe la web en HTML simple en estos días. "Cada problema se puede resolver introduciendo otra capa de abstracción. Excepto el problema de muchas capas de abstracción... así que inventamos el marco" - Parafraseado del Financial Times de Andrew Koenig. Cada capa de abstracción intenta resolver un problema específico. Entonces, ¿para qué problema está hecho Substrate? Resulta que hay muchas cosas que debe considerar antes de comenzar a implementar una nueva solución de cadena de bloques: ¿por qué necesita otra cadena de bloques? ! Varias primitivas criptográficas: encriptación, firmas, RNG¹, etc. Algoritmos de consenso y votación tolerante a fallas ¿Prueba de desperdicio, Prueba de participación, Prueba de autoridad? ¿O algo completamente diferente? Estructura de bloques y almacenamiento eficiente, red P2P de serialización de mensajes, descubrimiento de pares, máquina de estado de interconexión de transacciones y bloques, lógica de operación de ejecución, compatibilidad con clientes ligeros de contrato inteligente Aunque Substrate no resuelve el primer problema, Substrate puede ayudarlo a resolver los problemas restantes, ya que proporciona las herramientas de implementación existentes. Estos están cuidadosamente diseñados, escritos y probados en función de nuestros años de experiencia en el desarrollo de cadenas de bloques. Por supuesto, también puede implementar todas estas tareas usted mismo, pero puedo decir que puede terminar con una solución no probada y no bien documentada. Sin mencionar que, en general, diseñar o implementar un algoritmo de cifrado por sí mismo se consideraría una muy mala idea a menos que sea un criptógrafo y realmente sepa lo que está haciendo. La propuesta de Compound para modificar la velocidad de extracción de la liquidez de COMP puede alentar a los usuarios a pedir prestado ETH y WBTC: según fuentes oficiales, se acerca la votación de la propuesta propuesta por Gauntlet para ajustar la velocidad de distribución de varios activos de préstamo COMP para el acuerdo de préstamo descentralizado Compound finalización , En la actualidad, los partidarios superan en número a los opositores. Esta propuesta aumentará la velocidad de distribución de COMP para préstamos ETH y WBTC, mientras que otros tipos de activos tienen diversos grados de ajuste. El funcionario dijo que desde la Proposición 33, la comunidad ha tenido el poder de controlar la velocidad de distribución de COMP en varios mercados. La propuesta cree que esto puede administrar de manera más efectiva cómo usar COMP. , por lo que los parámetros deben restablecerse de acuerdo con la uso de los primeros 6 meses, y se pueden realizar más pruebas A/B y optimizaciones basadas en estos datos en el futuro. [2021/1/11 15:53:24] Entonces, al proporcionar implementaciones genéricas de algoritmos típicos, Substrate le permite concentrarse en el proyecto en sí: la lógica comercial de la cadena, su máquina de estado. Echemos un vistazo a las partes más importantes de la cadena de bloques y veamos qué puede ofrecer Substrate. El único propósito de cualquier cadena de bloques como cadena de bloques para el almacenamiento permanente es proporcionar un método verificable, global y permanente de almacenamiento y transformación de datos, lo que significa que todas las partes deben, en cualquier momento, verificar y acordar qué valor se puede reconocer. Además, una vez que estos datos estén sellados, deberían ser permanentes y su manipulación es imposible según el consenso. Esta propiedad se usa ampliamente en criptomonedas, donde el almacenamiento permanente contiene claves de cuenta y sus saldos reales. Sin embargo, es importante tener en cuenta que las criptomonedas no son las únicas aplicaciones posibles de blockchain. Básicamente, casi cualquier sistema que requiera un historial de transacciones verificable, permanentemente almacenado y coherente a nivel mundial se puede implementar utilizando una cadena de bloques de alguna manera. Substrate proporciona almacenamiento eficiente, es muy fácil de usar y está estrechamente integrado con el tiempo de ejecución de WebAssembly (Wasm). Blockchain como función Para actualizar el estado de la cadena y cambiar su almacenamiento en función de las operaciones pendientes, necesitamos tener un punto de decisión. Estos puntos de decisión se pueden expresar como una función que toma el estado actual y un conjunto de acciones pendientes y produce otro estado que debe considerarse un nuevo estado. En el mundo de la cadena de bloques, esta función se denomina función de transición de estado, o STF para abreviar. Substrate le permite definir dicha funcionalidad de una manera manejable y portátil. Al igual que JavaScript que se ejecuta en una página web, puede escribir un conjunto de funciones denominadas colectivamente el tiempo de ejecución que actuará como STF. Además, dicha implementación sería portátil y no dependería de la arquitectura del procesador, el sistema operativo, el navegador o cualquier otra forma dependiente de la plataforma. De hecho, incluso las tecnologías subyacentes de Substrate están estrechamente relacionadas. Substrate usa WebAssembly como la lingua franca de su tiempo de ejecución, que es exactamente lo que las grandes empresas como Mozilla, Google y Apple están integrando actualmente como una alternativa de JavaScript más rápida pero aún compatible cuando escriben para la web. El número de nodos de Lightning Network ha llegado a 13.685: Jinse Finance informó que, según los datos de 1ML.com, el número de nodos que admiten la red ha llegado a 13.685 en la actualidad, un aumento del 3,07 % en comparación con los datos de hace 30 días; el número de canales es 37,315, en comparación con 30 Según los datos de hace unos días, aumentó un 0,5% respecto al mes anterior, la capacidad de carga de la red lightning es actualmente 1056,52 BTC, que es alrededor de 11,9671 millones de dólares estadounidenses. [2020/9/2] Seguridad y velocidad Escribir lógica de cadena y contratos inteligentes en Wasm significa que tendrá las mejores herramientas para ejecutar la lógica de manera rápida y confiable. Sin embargo, Substrate tiene una forma de ejecutar código mucho más rápido y sin sobrecarga de máquina virtual. La parte más revolucionaria de Substrate es que la imagen de tiempo de ejecución que contiene el STF se almacena en la cadena junto con otras cargas útiles. Esto significa que el tiempo de ejecución y la lógica empresarial de toda la cadena se pueden actualizar de forma segura y verificable. Además, dado que Substrate y su Runtime Module Library³ están escritos en el lenguaje de programación Rust, se pueden traducir tanto a código nativo como a Wasm. En cualquier momento, el software del cliente tiene dos copias del tiempo de ejecución compilado: una que se compila de forma nativa en el software y otra que es la imagen de Wasm que se ejecutará en la máquina virtual. Al ejecutar una función de tiempo de ejecución, el software del cliente comprueba que la versión de Wasm en cadena del tiempo de ejecución coincida con la versión integrada nativa para la que se compiló. Después de hacerlo, el software del cliente delega la ejecución de la función de tiempo de ejecución a la versión del código nativo. Actualizaciones sin bifurcación Si bien la imagen de tiempo de ejecución se actualiza en cadena, algunos clientes aún no han actualizado su software. En este caso, sus nodos ejecutarán la versión correcta interpretando el tiempo de ejecución en la máquina virtual Wasm integrada de Substrate. Por lo tanto, en cualquier caso, todos los nodos de la red siempre podrán sincronizar la cadena correctamente (aunque con diferentes eficiencias), evitando así las bifurcaciones de la cadena. Network Blockchain se basa en que muchos participantes se comuniquen a través de una red. Las soluciones típicas utilizan tecnología de igual a igual para este tipo de comunicación, y Substrate no es una excepción. P2P es un nombre general para un grupo de tecnologías utilizadas para crear aplicaciones de red distribuidas. La idea principal es crear un entorno de red autosuficiente en el que cada participante (a menudo denominado nodo) pueda operar en la red sin configuración ni autorización previas. Para garantizar que los nodos puedan unirse o abandonar la red en cualquier momento sin afectar la conectividad de toda la red, Substrate utiliza libp2p (https://github.com/libp2p/rust-libp2p) implementado por Rust, que es un prometedor La pila de red, que tiene todo lo necesario para construir un entorno de red distribuida. Mensajes personalizados En los casos más simples, ni siquiera necesita pensar en la creación de redes, porque Substrate lo hace todo por usted. Solo necesita proporcionar la función de transición de estado de la cadena de bloques y dejar toda la interacción de la red en Substrate. Sin embargo, si la cadena de bloques requiere que se envíen mensajes personalizados, el subsistema de la red se puede personalizar y ampliar al proporcionar protocolos de red específicos que especifiquen los mensajes personalizados y su lógica de procesamiento. Consenso Tener una función de transición de estado que le permita pasar de un estado a otro es bueno, pero no suficiente. También necesita una forma para que todos los nodos acuerden cuál debería ser el próximo estado. Como propietario de una cuenta bancaria, lo último que desea es tener un desacuerdo con el banco sobre cuánto dinero hay en su cuenta. Blockchain permite que las partes lleguen a un consenso sin confiar entre sí (por lo tanto, confianza cero), incluso en el caso de que un actor malicioso intente comprometer el sistema y robar sus fondos. Esto se hace usando un algoritmo de consenso con propiedades de tolerancia a fallas bizantinas (BFT). Si un sistema es BFT, significa que los nodos pueden llegar a un consenso incluso si algunos de ellos se comportan mal, incluida la colusión, la retención de mensajes y la desconexión. Los sistemas de consenso BFT son resistentes a diversos grados de problemas de red en los que los mensajes se pueden reordenar o retrasar. Algunos sistemas de consenso BFT están diseñados para que cuando los nodos se comporten mal (por ejemplo, voten dos bloques a la vez), puedan ser penalizados y sus tokens apostados cortados en la cadena. Para cada motor de consenso admitido en Substrate, habrá un módulo de tiempo de ejecución que maneje las pruebas de mala conducta. El tiempo de ejecución puede determinar el impacto de evaluar el comportamiento incorrecto. Se demuestra matemáticamente que el protocolo es factible siempre que dos tercios de los nodos de la red no sean maliciosos y operen de acuerdo con el protocolo. Esta es una de las razones por las que es importante tener muchos nodos en la red. El consenso es una parte crítica de cualquier aplicación de blockchain. Afortunadamente, Substrate proporciona un consenso BFT ya utilizable que funciona casi de inmediato. Según el escenario de uso, puede usar la lógica de creación de bloques existente o proporcionar su propia lógica de creación de bloques. En este último caso, puedes utilizar una versión genérica de BFT y adaptarla a tus necesidades. Substrate seguirá desarrollándose y se le agregarán más algoritmos de consenso (https://medium.com/polkadot-network/grandpa-block-finality-in-polkadot-an-introduction-part-1-d08a24a021b5), incluidos El dispositivo de finalización del GRANDPA (acuerdo de prefijo derivado de antepasados recursivos basado en GHOST) desarrollado en Web3 Foundation. Además, dado que Substrate es un marco totalmente extensible y personalizable, es posible definir sus propios algoritmos de consenso personalizados. De hecho, Substrate es tan flexible que puede admitir soluciones que no se basan en las arquitecturas clásicas de blockchain. Por ejemplo, estamos estudiando cómo resolver el problema del rendimiento de la cadena de bloques mediante el diseño de un consenso que no se base en el concepto de bloque tradicional. Soporte de cliente ligero Las primeras implementaciones de blockchain se diseñaron de tal manera que cada nodo en la red mantiene una base de datos de blockchain completa localmente. Esto ahora se denomina cliente completo, lo que significa que el cliente tiene todo lo que necesita para funcionar como un nodo de red. Los clientes completos (también conocidos como nodos completos) son muy importantes para la seguridad de la cadena. Pero a medida que crece la cadena de bloques, la base de datos de clientes se hace cada vez más grande. Actualmente, las principales criptomonedas tienen bases de datos de cientos de gigabytes. Cuando se inicializa un nodo completo, lo primero que debe hacer es sincronizarse con el resto de la red. Por razones de seguridad, dicho nodo no puede descargar aleatoriamente la base de datos de un nodo tal como está, sino que necesita construir su propia base de datos desde cero, resincronizando todas las transacciones desde la génesis (el primer bloque de la cadena). Además de ser computacionalmente costosa, esta tarea también requiere la transmisión de grandes cantidades de datos a través de la red. Creo que todos estarían de acuerdo en que descargar medio megabyte de datos a su teléfono solo para comprar un sándwich... no es práctico o simplemente es ridículo. Es por eso que, casi desde el principio, los desarrolladores de blockchain han considerado formas de reducir los costos de mantenimiento de los nodos, incluido el espacio de almacenamiento y el rendimiento de la red. Finalmente, nació el concepto de clientes ligeros. En resumen, un cliente ligero es un modo de operación de los nodos de la cadena de bloques en el que solo los datos más importantes se almacenan localmente y las interacciones de la red se reducen al mínimo mientras se preserva una seguridad aceptable para casi todas las posibles interacciones. Los modestos requisitos de recursos finalmente permiten que los nodos de clientes ligeros arranquen fácilmente y, por lo tanto, se ejecuten en dispositivos móviles. Desafortunadamente, la integración de soporte ligero para clientes en una cadena de bloques existente es una tarea seria. Sería mucho más fácil integrar clientes ligeros en el diseño inicial de la cadena de bloques.
Tags:
Antonio Juliano, fundador de la plataforma de negociación de derivados financieros descentralizados (Defi) dYdX.
Con base en la tendencia de desarrollo actual del negocio de blockchain y la acumulación de tecnología, se prevé que en 2020.
Si ha estado en el espacio de bitcoin durante algún tiempo, probablemente haya escuchado que África será el próximo país en adoptar bitcoin.Binance Research informó que en Nigeria y Sudáfrica.
Hoy hablaremos de Substrate, una biblioteca que puede ayudarlo a crear su propia cadena de bloques personalizada. Substrate fue desarrollado por ParityTech y también proporciona la base para Polkadot. ¿Qué es un sustr.
Las últimas dos semanas han sido volátiles para el mercado de criptomonedas.
Ripple ha agregado tres nuevos clientes en Corea del Sur que utilizarán su red de pagos basada en blockchain.
La Autoridad de Servicios Financieros de Malta (MFSA) ha publicado comentarios de la industria sobre la definición de tokens de seguridad y los desafíos que enfrentan dichos activos en el mercado maltés.