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? Huobi: Trabajaremos arduamente con el emisor de HUSD para negociar una solución que restaure la estabilidad de HUSD lo antes posible: Jinse Finance informó que, en respuesta a la desvinculación de HUSD, Huobi respondió oficialmente a Jinse Finance y dijo que ha notado la problema de liquidez de la stablecoin HUSD, HUSD Es una moneda estable basada en la red Ethereum emitida por Stable Universal Limited. Huobi siempre ha prestado atención a la seguridad de los activos de los clientes y trabajará arduamente para negociar una solución con el emisor de HUSD para restaurar la estabilidad de HUSD lo antes posible. [2022/8/18 12:34:02] 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. 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, que es algo similar a la imagen que presentó los componentes principales de Libra anteriormente. algunos números adicionales en la flecha. 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. Ouyi OKEx ajusta la cantidad mínima de pedido para algunas monedas y pares comerciales apalancados: según el anuncio oficial de Ouyi OKEx, Ouyi OKEx ajustará algunas monedas y monedas comerciales apalancadas a las 16:00 el 23 de abril de 2021 (HKT) La cantidad mínima de pedido para la pareja [2021/4/21 20:44:48] 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 cuentas; MerkleAccumulator almacena transacciones y el orden de transacciones.
Tags:
En diciembre de 2019, el Riksbank anunció que se asociaría con la firma irlandesa de servicios profesionales Accenture para crear una plataforma de prueba para la moneda digital e-krona para mejorar su comprensión del.
El sitio web del Hong Kong Asia Times publicó un informe titulado "Emergen nuevos cajeros automáticos de Bitcoin en todo el mundo" el 17 de febrero, afirmando que desde principios de 2020.
Análisis de Mercado Los alcistas de Bitcoin (BTC) están celebrando el primer aumento del activo digital por encima de los $10 000 en los años 20.
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.
El Consejo de Estabilidad Financiera (en adelante.
Texto/Meng Yonghui Los vítores de los magnates de la capital nos hicieron prestar atención a la industria de la cadena de bloques y desencadenaron una ola de emprendimiento de la cadena de bloques. En esencia.
El 17 de febrero de 2020, Canaan anunció una asociación estratégica con Northern Data AG.