Transacción

Una transacción es una instrucción emitida por una cuenta con una firma criptográfica.La cuenta iniciará la transacción para actualizar el estado de la red Ethernet.La transacción más simple es una transferencia de PSC de una cuenta a otra.

¿Cuál es la transacción?

Una transacción de Polysmartchain es una acción iniciada por una cuenta contenida externamente, en otras palabras, una cuenta administrada por un contrato humano en lugar de inteligente.Por ejemplo, si Bob envía Alice 1 PSC, la cuenta de Bob debe disminuir en 1 PSC y la cuenta de Alice debe aumentarse en 1 PSC.Esta acción ocurre durante la transacción y cambia el estado.

Las transacciones que cambian el estado del EVM deben transmitirse a toda la red.Cualquier nodo puede transmitir una solicitud de transacción en el EVM;A partir de entonces, el minero ejecutará la transacción y propagará el cambio de estado resultante al resto de la red.

Las transacciones requieren una tarifa y deben extraerse para ser válidas.Para simplificar esta descripción general, lo llamaremos tarifas de gas y minería.

Las transacciones presentadas incluyen la siguiente información:

  • recipient – recibir la dirección (si es una cuenta external de mantenimiento, la transacción transmitirá el valor. Si es una cuenta de contrato, la transacción ejecutará el código de contrato)

  • signature – el identificador del remitente.Esta firma se genera cuando la clave privada del remitente firma una transacción para garantizar que el remitente haya autorizado esta transacción.

  • value – cantidad de ETH transferida del remitente al destinatario (en Wei, una denominación de ETH)

  • data – campos opcionales que pueden incluir cualquier dato

  • gasLimit – la cantidad máxima de gas que puede ser consumida por una transacción.La unidad de gas representa el paso de cálculo

  • maxPriorityFeePerGas - Cantidad máxima de gas incluida como consejo de minero

  • maxFeePerGas - cantidad máxima de gas dispuesta a pagar la transacción (incluidas BasefeEpergas y MaxpriorityFeEpergas)

El gas es la cantidad de potencia aritmética requerida por el minero para procesar la transacción.El usuario debe pagar una tarifa por este cálculo.Gaslimit y Gasprice determinan la tarifa de transacción máxima que se pagará al minero.

El objeto de transacción se ve así:

//{ 
    from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", 
    to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", 
    gasLimit: "21000", 
    maxFeePerGas: "300" 
    maxPriorityFeePerGas: "10" 
    nonce: "0", 
    value: "10000000000",
}

Sin embargo, el objeto de la transacción debe firmarse con la clave privada del remitente.Esto demuestra que la transacción solo puede provenir del remitente y no del fraude.

El cliente Polysmartchain como GPSC manejará este proceso de firma.

Ejemplo JSON-RPC Llamada:

{
  "id": 2,
  "jsonrpc": "2.0",
  "method": "account_signTransaction",
  "params": [
    {
      "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db",
      "gas": "0x55555",
      "maxFeePerGas": "0x1234",
      "maxPriorityFeePerGas": "0x1234",
      "input": "0xabcd",
      "nonce": "0x0",
      "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
      "value": "0x1234"
    }
  ]
}

Respuesta de ejemplo:

//{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
    "tx": {
      "nonce": "0x0",
      "maxFeePerGas": "0x1234",
      "maxPriorityFeePerGas": "0x1234",
      "gas": "0x55555",
      "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
      "value": "0x1234",
      "input": "0xabcd",
      "v": "0x26",
      "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e",
      "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
      "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e"
    }
  }
}
  • raw es la forma codificada de RLP (prefijo de longitud recursiva) de la transacción firmada.

  • tx es la forma JSON de la transacción firmada.

Si hay un hash de firma disponible, la transacción puede ser comprobada cryptográficamente que proviene del remitente y se envía a la red.

tipo de transacción

Polysmartchain tiene varios tipos diferentes de transacciones:

  • Transacciones regulares: transacciones de una billetera a otra.

  • Transacciones de implementación del contrato: transacciones sin dirección "a", campo de datos para el código de contrato.

Sobre gas

Como se mencionó anteriormente, cuesta gas que ejecute la transacción.Una transferencia simple cuesta 21,000 gas.

Suponiendo que Bob quiere enviar 1 PSC a Alice para 190 GWEI de Basefeepergas y 10 GWEI de MaxpriorityFeepergas, entonces Bob necesita pagar las siguientes tarifas:

    (190 + 10) * 21000 = 4,200,000 gwei
    --or--
    0.0042 PSC

La cuenta de Bob se reducirá en 1.0042 PSC.

La cuenta de Alice se incrementará en +1.0 PSC

Deducir la tarifa base de 0.00399 PSC

Los mineros retienen consejos +0.000210 PSC

Cualquier interacción con contrato inteligente también requiere gas.

Ciclo de vida de transacción

Una vez que se envía una transacción, sucede lo siguiente:

  1. Una vez que envíe una transacción, la criptografía genera la transacción HASH:0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017

  2. La transacción se transmite a la red y se incluye en una colección con una gran cantidad de otras transacciones.

  3. El minero debe seleccionar su transacción e incluirla en un bloque para validar la transacción y considerarla "exitosa".

    • Si la red está ocupada y los mineros no pueden mantenerse al día, es posible que pueda esperar en esta etapa.

  4. Su transacción recibirá una "confirmación".El número de confirmaciones es el número de bloques creados desde el bloque que contiene su transacción.Cuanto mayor sea este número, mayor es la certeza de que la red será procesada y reconocida por la red.

    • El bloque más reciente puede reorganizarse, dando la impresión de que la transacción falló;Sin embargo, la transacción aún puede ser válida, pero contenida en otro bloque.

    • La probabilidad de reconfiguración disminuye con cada bloque posterior extraído, es decir, cuantas más confirmaciones, más inmutable se vuelve la transacción.

Expansión de recursos

Last updated