Un extrínseco es una información que proviene de fuera de la cadena y se incluye en un bloque. La información externa se puede dividir en tres categorías: inherentes, transacciones firmadas y transacciones no firmadas.
Tenga en cuenta que los eventos no son información externa. Las cadenas emiten eventos para piezas de información inherentes a la propia cadena. Por ejemplo, apostar recompensas son eventos, no acciones externas, porque las recompensas se desencadenan por circunstancias inherentes a la lógica de la cadena.
Un bloque en Substrate consta de un encabezado de bloque y una matriz de información externa. El encabezado del bloque contiene la altura del bloque, el hash principal, la raíz de información externa, la raíz del estado y el resumen. Esta sección se centra únicamente en la raíz extrínseca.
Cuando cada externo se define en tiempo de ejecución, se agrupa como una serie y se ejecuta como una serie. La raíz de la información externa es el resumen criptográfico de la serie. Esto tiene dos propósitos. En primer lugar, evita cualquier cambio en la serie externa de información después de que se haya formado y distribuido el encabezado del bloque. En segundo lugar, proporciona una manera de permitir que los clientes ligeros verifiquen sucintamente que cualquier elemento externo dado realmente existe en un bloque, simplemente conociendo el encabezado del bloque.
Referencia de bloque
Los inherentes son información sin firmar que solo los productores de bloques insertan en los bloques. No se distribuyen por la red ni se almacenan en colas de transacciones. Técnicamente, no hay nada que impida que una cadena Substrate propague inherentes, pero tampoco existe un mecanismo antispam basado en tarifas.
Los inherentes representan datos que describen una de muchas piezas válidas de información de una manera bastante especial. Se consideran "reales" solo porque suficientes validadores están de acuerdo en que son plausibles.
Por ejemplo, los productores de bloques pueden insertar marcas de tiempo inherentes a los bloques. No hay forma de probar que la firma es auténtica, que la marca de tiempo es correcta. Pero un validador acepta o rechaza el bloque en función de lo razonable que los otros validadores creen que es la marca de tiempo, posiblemente dentro de un rango aceptable de su propio reloj del sistema.
Cunliffe, vicegobernador del Banco de Inglaterra, pidió una supervisión más estricta de los fondos del mercado monetario: Según las noticias del 22 de noviembre, Cunliffe, vicegobernador del Banco de Inglaterra, pidió una supervisión más estricta de los fondos del mercado monetario. (Diez de oro) [2021/11/22 7:04:20]
Referencia inherente
Las transacciones firmadas (Singed Transactions) contienen la firma de la cuenta que emitió la transacción y requieren una tarifa para incluir la transacción en la cadena. Debido a que el valor de incluir transacciones firmadas en la cadena se puede identificar antes de la ejecución, estas transacciones se pueden distribuir entre los nodos de la red con un menor riesgo de spam.
Las transacciones firmadas corresponden al concepto de transacciones de Ethereum o Bitcoin.
En algunos casos, se requieren transacciones sin firmar (Transacciones sin firmar). Tenga cuidado con las transacciones sin firmar ya que su lógica de verificación puede ser difícil.
Dado que la transacción no está firmada, no hay tarifas que pagar. Por lo tanto, las colas de transacciones carecen de la lógica económica para evitar transacciones de spam. Las transacciones sin firmar también carecen de nonces, lo que dificulta la protección de reproducción. Una pequeña cantidad de transacciones requieren el uso de la variante sin firmar, pero requerirán algún tipo de protección contra spam de transacciones basada en una implementación personalizada de Singed Extension que puede existir en transacciones sin firmar.
Un ejemplo de una transacción sin firmar en Substrate es una transacción de latido "Estoy en línea" enviada por una autoridad. Las transacciones incluyen una firma de la clave de sesión, que no controla los fondos y, por lo tanto, no puede pagar tarifas. El grupo de transacciones controla el spam de transacciones comprobando si se ha confirmado un latido en la sesión.
SignedExtension es un rasgo por el cual una transacción se puede ampliar con datos o lógica adicionales. Las extensiones de firma se pueden usar en cualquier lugar donde necesite información sobre una transacción antes de ejecutarla. Esto se usa mucho en las colas transaccionales.
El tiempo de ejecución puede usar algunos de estos datos (como la Llamada a enviar) para calcular las tarifas de transacción. La extensión Signature también incluye el tipo AdditionalSigned, que puede contener cualquier dato codificable, lo que le permite realizar cualquier lógica personalizada antes de incluir o enviar la transacción. La cola de transacciones llama periódicamente a las funciones de SignedExtension para validar las transacciones antes de crear un bloque para evitar incluir transacciones que fallarían en el bloque.
Aunque el nombre es una extensión firmada, SignedExtension también se puede usar para verificar transacciones sin firmar. Los conjuntos de métodos *_unsigned se pueden implementar para encapsular la lógica de protección de validación, correo no deseado y reproducción requerida por el grupo de transacciones.
Referencia de extensión firmada
Referencias
eventos: https://substrate.dev/docs/en/knowledgebase/runtime/events
Referencia de bloque: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_runtime/traits/trait.Block.html
Referencia inherente: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_inherents/index.html
Extensión chamuscada: https://substrate.dev/docs/en/knowledgebase/learn-substrate/extrinsics#signed-extension
Estoy en línea: https://substrate.dev/docs/en/knowledgebase/runtime/frame#im-online
Referencia de extensión firmada: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_runtime/traits/trait.SignedExtension.html
Documentación de referencia: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_runtime/traits/trait.Extrinsic.html
Ejecución en tiempo de ejecución: https://substrate.dev/docs/en/knowledgebase/runtime/execution
Tarifas de transacción: https://substrate.dev/docs/en/knowledgebase/runtime/fees
Grupo de transacciones: https://substrate.dev/docs/en/knowledgebase/learn-substrate/tx-pool
Original: https://substrate.dev/docs/en/knowledgebase/learn-substrate/extrinsics
Traducción: Mundo Polka
Bienvenido a Sustrato:
https://sustrato.dev/
Siga el progreso del sustrato:
https://github.com/paritytech/sustrato
Siga el progreso de Polkadot:
https://github.com/paritytech/polkadot
Tags:
"El verdadero viajero se queja en el monte Luojia, y el falso rey mono transcribe el texto en Shuiliandong".En "Viaje al Oeste".
Wang Yongli: el autor es ex vicepresidente del Banco de China.
Golden Finance lanzó recientemente la columna Hardcore para brindar a los lectores introducciones o interpretaciones detalladas de proyectos populares.Prensa: Recientemente.
Un extrínseco es una información que proviene de fuera de la cadena y se incluye en un bloque. La información externa se puede dividir en tres categorías: inherentes.
El artículo es una contribución de Biquan Beiming, columnista de Jinse Finance and Economics, y sus comentarios solo representan sus puntos de vista personales.
Los activos como el oro y el bitcoin con una cantidad total limitada y recursos escasos tienen un buen valor de inversión. Desde la perspectiva del juicio de valor de la inversión a largo plazo.
La primera columna de retransmisiones en directo del mercado 20:00 Kim Últimas noticias, contratos puntuales.