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.
La plataforma de creadores Behance agrega compatibilidad con Solana NFT: el 8 de marzo, la plataforma de creadores Behance anunció que los usuarios ahora pueden conectar sus billeteras Phantom a sus cuentas de Behance y mostrar Solana NFT en sus perfiles. William Allen, vicepresidente de Adobe a cargo de Behance, dijo que es posible que muchos usuarios de Behance ya no quieran conectarse con Ethereum debido a las preocupaciones sobre el alto uso de energía y los costos de gas de Ethereum. (Cointelegraph)[2022/3/8 13:44:08]
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:
Los datos son el aceite de la nueva era. A medida que los comportamientos en línea de las personas se vuelven más frecuentes.
Contrato perpetuo BTC/USDT La naturaleza de cada nivel: línea diaria - consolidación, 4 horas - consolidación.
El artículo es una contribución del análisis de blockchain de Niu Qi.
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.
Bitcoin encontró una resistencia cercana a los 9470 dólares estadounidenses y volvió a caer a 9126 dólares estadounidenses. Este retroceso no es grande.
El artículo es una contribución del análisis de blockchain de Niu Qi.
Coinbase, el intercambio de criptomonedas más grande de los Estados Unidos.