Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > Ripple > Info

Analice los componentes principales de Libra con el ciclo de vida de Transacción como pista

Author:

Time:

Libra implica muchas cosas. Introducimos el diseño y la implementación de Libra a partir de tres líneas: analizando el proceso de inicio del Nodo y la unión a la red de Libra, introducimos el diseño y la implementación de los componentes de la Red; alrededor del ciclo de vida de la Transacción, analizamos sus transacciones de recepción , bloques de empaquetado, el proceso de ejecución en cadena, presenta los componentes principales de Libra, como Mempool, Executor, Storage y VM; alrededor de LibraBFT, presenta los componentes de consenso y el proceso de llegar a un consenso sobre los bloques. Anteriormente describimos la primera línea principal de Libra: el proceso de inicio de Nodo y unión a la red, e introdujimos el diseño y la implementación de los componentes de la red en detalle. Aquí, describiremos la segunda línea principal de Libra: el ciclo de vida de Transaction, y luego, alrededor del ciclo de vida de Transaction, describiremos algunos de los diseños e implementaciones de los componentes centrales de Libra uno por uno. Antes de describir el ciclo de vida, comprendamos el modelo de cuenta y la relación entre los contratos Transaction y Move. De hecho, la cadena de bloques se puede entender simplemente como: usar Transacción como el transportista para registrar el proceso de cambio de cada Dirección en el orden reconocido por la mayoría de las personas. Para lograr este objetivo, el desarrollo de blockchain ha abstraído dos modelos de cuenta: el modelo UTXO representado por BTC y el modelo de cuenta representado por ETH. Estos dos modelos tienen sus propias ventajas y desventajas. Una breve comparación: el inglés de UTXO es salida de transacción no gastada, y la traducción literal es salida de transacción no gastada. El estado actual de una dirección es una lista UTXO. Según el modelo UTXO, al consumir (construir una Transacción), saque uno o más UTXO como Entrada de la Transacción actual y luego genere múltiples UTXO. La cantidad total de Entrada y Salida es igual. En algún momento en el futuro, estas Salidas se utilizarán como Entradas para otras Transacciones. ¿Es similar a los billetes de banco? En el modelo de Cuenta, cada Dirección normalmente contiene un total y un contador de Número de Secuencia. Cada vez que se construya un consumo (transacción), el monto del consumo se restará del monto total de la Dirección actual, y el monto del consumo correspondiente se agregará a otra Dirección. Al mismo tiempo, el Número de secuencia se incrementa para garantizar que todas las Transacciones construido por la dirección actual tiene orden, de modo de garantizar que el estado de la cuenta sea correcto. Libra usa el modelo de Cuenta para expresar los datos del libro mayor, por lo que las Transacciones tienen una secuencia estricta. Mencionaremos esto más adelante. Aprendimos sobre el modelo de cuenta anteriormente y, para que se entienda, hicimos una analogía con el escenario de pago. Nos da la sensación de que la función de Transaction es sumar y restar un número, por ejemplo, Alice transfirió una cuenta a Bob. ¿No se puede aplicar a escenarios cada vez más complejos? Me gustan los juegos. Cuando comenzó la cadena de bloques, la capacidad de expresión era relativamente simple. Con la promoción de la cadena de bloques, las necesidades de todos se volvieron cada vez más abundantes y el diseño inicial era difícil de cumplir. Esperamos expresar nuestras necesidades en la cadena a través de un lenguaje, por lo que han surgido máquinas virtuales, contratos inteligentes y lenguajes de contrato. Este es un tema muy amplio. Libra lanzó el lenguaje Move como lenguaje de contrato, y no hablaremos de eso aquí. Entonces, ¿cuál es la relación entre transacción, cadena y movimiento? Suponemos que la imagen de arriba son los datos de la cuenta almacenados en la cadena en un momento determinado, en el que Alice tiene un contrato definido por Move y el código se almacena en su cuenta. En el paso ① de la figura anterior, Bob crea una Transacción, especifica un método para ejecutar el contrato correspondiente en la cuenta de Alice en la Transacción y extrae los datos que el método de contrato puede comprender de su propia cuenta como parámetro del método. y luego ejecuta la Transacción Firmarlo y difundirlo. En el paso ② de la figura, el minero recibe la Transacción de Bob, la empaqueta en un bloque, ejecuta la Transacción de Bob y escribe el resultado en la cuenta de Bob. A lo largo del proceso, el entendimiento general es que Move define una parte de la lógica, Transaction establece los datos utilizados para ejecutar la lógica y la cadena registra el estado final después de que se ejecuta la lógica. Opinión: las ventas de máquinas de minería de Filecoin han entrado en una etapa loca Esté alerta a los riesgos: el precio de la moneda FIL ha seguido aumentando recientemente, y hoy ha aumentado considerablemente en más del 40%. Theodore comentó que con el precio altísimo de la moneda Fil y la loca exageración de los equipos de marketing de varios mineros, las ventas de máquinas de minería Filecoin han entrado en una etapa loca, e incluso el dinero de las pensiones se ha utilizado para comprar máquinas de minería Fil. , tenemos que estar más atentos a los riesgos . [2021/3/27 19:22:38] Hablamos de dos conocimientos previos antes, y luego tenemos una comprensión general del ciclo de vida de la transacción: Esta imagen también es una imagen en el documento técnico de Libra, es algo similar a la imagen presenta los componentes principales de Libra, pero hay algunos números más en las flechas. Esta imagen en realidad representa el ciclo de vida completo de una Transacción desde la generación hasta el empaque, desde la ejecución hasta el encadenamiento. Presentemos el significado aproximado de cada número a su vez: tenemos una comprensión intuitiva del ciclo de vida de Transaction. A continuación, profundizamos en cada componente para aprender más sobre los detalles de diseño e implementación. De la transacción enviada por el usuario, primero al servicio AC. Al hablar de la primera línea principal, mencionamos que AC es un servicio GRPC, lo que equivale a una puerta de enlace de Node. El nodo contiene múltiples servicios GRPC y muchas interfaces RPC. Sin embargo, solo dos tipos de interfaces que se ocupan de los usuarios deben exponerse a las llamadas de billetera o cli: la interfaz que envía la Transacción y la interfaz relacionada con el estado del usuario, por lo que AC no tiene mucho Es solo una encapsulación de parte de la interfaz GRPC dentro de Node para exponerla a los usuarios. Además, AC también tiene una función de simplemente filtrar las Transacciones enviadas. La transacción se envía al servicio Mempool a través de AC. Cuando hablamos de la primera línea principal, sabemos que Mempool se usa para almacenar Transacciones desencadenadas. Echemos un vistazo al diseño general de Mempool: Mempool consta principalmente de dos módulos: Servicio Mempool: un servicio Grpc, utilizado para recibir TransactionShare enviado desde AC Mempool: tiene dos funciones principales, una es a través del protocolo Mempool (en Se mencionó en la primera línea principal) para sincronizar transacciones entre diferentes nodos de Mempool, y para almacenar y procesar transacciones. Tenemos una comprensión general de Mempool, pero todavía hay algunas dudas. ¿Qué hace Mempool con Transaction? ¿Bajo qué circunstancias se empaquetará la Transacción? ¿Cuándo se transmite la Transacción a otros Mempools? A continuación, responderemos estas preguntas. Después de enviar la Transacción a Mempool, primero se marcará con diferentes estados según la fuente: No lista: el estado de la transacción enviada por el usuario al Servicio de Mempool No calificado: el estado de la transacción sincronizado por otros nodos Estas Transacciones se ordenarán de una determinada orden, esperando ser marcado en el estado Listo. Mencionamos anteriormente que Libra adopta el modelo de Cuenta y asocia las Transacciones iniciadas por los usuarios en secuencia a través de SequenceNumber. Cuando Mempool encuentra que todas las demás Transacciones frente a una Transacción se han encadenado o están en estado Listo, entonces esta Transacción se puede Marcar como el estado Listo, lo que significa que la Transacción tiene las condiciones para ser empaquetada en el bloque. Si la Transacción que está configurada actualmente en el estado Listo pasa del estado No listo (es decir, el usuario la envía al Mempool actual a través del AC), entonces la Transacción se reenviará a otros Mempools. La figura anterior muestra el proceso de transición de estado general de la Transacción en Mempool, y la regla de clasificación aproximada de la Transacción es: precio_gas>fecha_de_caducidad>dirección>número_de_secuencia La transición de estado de Mempool se introdujo anteriormente, y la Transacción enviada por el usuario está lista estado, esperando ser empaquetado en el centro del bloque. Teniendo en cuenta la complejidad del Consenso y el hecho de que la línea principal actual presenta principalmente el ciclo de vida de Transacción, aquí hay una breve introducción al proceso en cadena (el proceso de consenso de múltiples nodos se presentará en detalle en la tercera línea principal ), que es más o menos como sigue: ->ejecutar y confirmar->almacenar se discutirá más adelante, y la votación se discutirá en detalle en la tercera línea principal. Por el momento, solo debemos prestar atención a dos lugares : el componente de Consenso extrae activamente un lote de transacciones en el estado Listo del Mempool y las empaqueta Después de elegir y enviar el BlockBlock, el componente de Consenso tomará la iniciativa para eliminar la Transacción enviada en el Mempool. una entrada para ejecutar la VM, el Ejecutor y la VM se combinan aquí para la introducción. En el proceso del componente de Consenso anterior, después de que se construya el Bloque, se enviará al Ejecutor para su cómputo y luego ingresará a la VM para ejecutar, que es ejecutar la Transacción. Es el proceso computar->ejecutar, se debe prestar atención a algunos detalles: el color claro lo inicia el Ejecutor, y el color oscuro es el contrato Move ejecutado en la VM. Después de que el componente de Consenso envíe el nuevo Bloque al componente Ejecutor, el Ejecutor proporcionará al bloque un entorno operativo, inicializará la VM y ejecutará la Coinbase del Bloque y otras transacciones de usuario en la VM a su vez. Por lo tanto, la máquina virtual primero ejecutará la transacción Coinbase, que también ejecuta el prólogo del bloque en el contrato de LibraAccount. Luego ejecute la Transacción empaquetada en el Bloque en secuencia, y finalmente devuelva el estado después de la ejecución al componente Consenso. Al presentar el componente Consenso, mencionamos que el Bloque se confirmará y los datos finalmente se escribirán en el servicio de Almacenamiento. Es decir, el proceso commit->store En este momento, la Transacción enviada por el usuario ha sido aprobada por todos. Con respecto al servicio de Almacenamiento, podemos tener dos preguntas: ¿Qué módulos contiene el servicio de Almacenamiento? ¿Qué datos se almacenan finalmente en Storage? El almacenamiento es un servicio GRPC que almacena todos los datos de la cadena, y la información, como el estado del libro mayor del usuario, se obtiene del almacenamiento. Libra elige RocksDB como la base de datos de almacenamiento subyacente Basado en RocksDB, SchemaDB encapsula la operación CRUD unificada de datos y la serialización y deserialización de Key-Value. LibraDB define una serie de estructuras de datos en torno a los datos y características del libro mayor de Libra, y realiza operaciones de base de datos en estas estructuras de datos. Todas estas operaciones se empaquetan en servicios de almacenamiento y se proporcionan a componentes como Executor y AC. Los módulos incluidos en el servicio de almacenamiento se describieron anteriormente. Aprendimos que LibraDB define algunas estructuras de datos en torno a las características del libro mayor de Libra. ¿Cuáles son las características del libro mayor de Libra? Entonces, ¿qué estructuras de datos centrales están incluidas? Características del libro Libra usa Cuenta, que necesita almacenar el estado global del usuario, todas las transacciones históricas en el estado actual y el orden de las transacciones. Es decir, los principales datos que necesita almacenar Storage: estado del usuario, transacción y secuencia de transacciones. A diferencia de otras cadenas públicas, la cadena pública general logra el propósito de registrar todas las transacciones y el orden de las transacciones al registrar el orden del bloque (también se ordenan las transacciones en el bloque). Libra almacena directamente las transacciones y utiliza Merkle Accumulator para registrar el orden de las transacciones. La estructura de datos central de Libra utiliza Sparse Merkle Tree y Merkle Accumulator para almacenar el estado del usuario, las transacciones y el orden de las transacciones, respectivamente. SparseMerkleTree usa 256 bits para almacenar el estado del usuario, teóricamente puede haber un total de 2 a 256 cuentas. La imagen de arriba es un ejemplo de SparseMerkleTree de 4 bits, cada nodo de hoja naranja representa un usuario; el cuadro cuadrado es un marcador de posición, lo que indica que no hay ninguna cuenta en esta rama, lo que reduce el almacenamiento de números de cuenta; MerkleAccumulator almacena transacciones y el pedido de transacciones En la figura anterior, cada nodo hoja de color oscuro representa una Transacción; el cuadro cuadrado es un marcador de posición. Las nuevas transacciones en la cadena se agregarán al fondo una por una en orden. Las dos estructuras de datos centrales de Storage se mencionan anteriormente, y todo el almacenamiento se almacena y optimiza en torno a ellas, y no se ampliarán más detalles.

Tags:

Ripple
Paxos ingresa al negocio de liquidación de acciones de blockchain, Credit Suisse y Nomura son sus clientes

La empresa emisora ​​de Stablecoin, Paxos, ha entrado oficialmente en el negocio de liquidación de acciones basado en blockchain. Paxos anunció oficialmente la noticia el jueves. Credit Suisse e Instinet de Nomura fue.

Liquidación de $ 629 millones ¿Qué sucedió detrás de la caída inicial de Bitcoin de $ 850?

Según los datos proporcionados por qkl123.com, alrededor de las 5 a. m., hora de Beijing, el 20 de febrero, el precio de Bitcoin cayó $ 850 en un corto período de tiempo.

OneConnect publicó su primer informe financiero después de su cotización: la contribución de ingresos de Ping An Group continuó sin disminuir

Según la noticia de la OPI, el 19 de febrero, OneConnect (NYSE: OCFT), una empresa unicornio del Grupo Ping An que exporta soluciones a instituciones financieras.

Analice los componentes principales de Libra con el ciclo de vida de Transacción como pista

Libra implica muchas cosas. Introducimos el diseño y la implementación de Libra a partir de tres líneas: analizando el proceso de inicio del Nodo y la unión a la red de Libra.

La interfaz de usuario del contrato de almacenamiento de Ethereum 2.0 se dará a conocer en EthCC y se espera que se lance en abril

La Fundación Ethereum está trabajando con Consensys and Co para desarrollar una interfaz de usuario (UI) de contrato de almacenamiento, una versión anterior de la cual se filtró anteriormente.

Observación dorada | Un "ataque" generó una ganancia de más de 360 ​​000 dólares estadounidenses en 15 segundos, y muchos proyectos estrella de DeFi estuvieron involucrados.

Quizás el mundo pertenece a los sabios después de todo.Recientemente, el mundo DeFi ha sido "explotado" por personas inteligentes.  El 16 de febrero.

¿El tiempo de reducción a la mitad de BCH será antes de que BTC se involucre en una espiral de muerte?

A algunos lectores les preocupa que el tiempo de reducción a la mitad de las recompensas en bloque de BCH sea más temprano que el de BTC.

ads