Сделка

это инструкция, выпущенная учетной записью с криптографической подписью.Учетная запись инициирует транзакцию для обновления состояния сети Ethernet.Самая простая транзакция - это передача PSC с одной учетной записи в другую.

Какая транзакция?

Транзакция Polysmartchain - это действие, инициируемое внешне удерживаемой учетной записью, другими словами, учетной записи, которая управляется человеком, а не умным контрактом.Например, если Боб отправляет Алису 1 PSC, учетная запись Боба должна быть уменьшена на 1 PSC, а учетная запись Алисы должна быть увеличена на 1 PSC.Это действие происходит во время транзакции и меняет состояние.

Снарежения, которые изменяют состояние EVM, должны транслироваться всю сеть.Любой узел может транслировать запрос транзакции на EVM;После этого шахтер будет выполнять транзакцию и распространять полученное изменение состояния до остальной части сети.

Транзакции требуют платы и должны быть добыты, чтобы быть действительными.Чтобы упростить этот обзор, мы будем называть это плату за газ и добычу.

Представленные транзакции включают следующую информацию:

  • recipient – приема (если это внешне удерживаемое учетная запись, транзакция будет передавать значение. Если это контрактный счет, транзакция выполнит код договора)

  • signature – идентификатор отправителя.Эта подпись генерируется, когда транзакция подписана закрытым ключом отправителя, чтобы убедиться, что отправитель разрешил эту транзакцию.

  • value – сумма ETH, передаваемого от отправителя к получателю (в WEI, деноминация ETH)

  • data – дополнительные поля, которые могут включать любые данные

  • gasLimit – Максимальное количество газа, которое может быть потреблено транзакцией. Единица газа представляет шаг расчета

  • maxPriorityFeePerGas - Максимальное количество газа включено в качестве подсказки шахтера

  • maxFeePerGas - максимальная сумма газа, желающего платить за транзакцию (включая BaseFeepergas и MaxPriorityFeePergas)

Газ - это количество арифметической мощности, требуемой майнером для обработки транзакции.Пользователь должен заплатить плату за этот расчет.Gaslimit и Gasprice определяют максимальную плату за транзакцию, которая будет выплачена шахтеру.

Объект транзакции выглядит так:

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

Тем не менее, объект транзакции должен быть подписан с закрытым ключом отправителя.Это доказывает, что транзакция может исходить только от отправителя, а не от мошенничества.

Клиент Polysmartchain, как GPSC, будет справиться с этим процессом подписания.

Пример JSON-RPC Вызов:

{
  "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"
    }
  ]
}

Пример ответа:

//{
  "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 это RLP (префикс рекурсивной длины), закодированная форма подписанной транзакции.

  • tx является формой JSON подписанной транзакции.

Если доступна хеш подписи, транзакция может быть криптографически доказана, что приходится от отправителя и отправлена в сеть.

Тип операции

Polysmartchain имеет несколько различных типов транзакций:

  • Регулярные транзакции: транзакции из одного кошелька в другой.

  • Снареженные транзакции по развертыванию контракта: транзакции без «на» адрес, поле данных для кода договора.

О газе

Как упоминалось выше, это стоит газ для выполнения транзакции.Простая трансферная транзакция стоит 21 000 газа.

Предполагая, что Боб хочет отправить 1 PSC в Алису на 190 ГВэй BaseFeepergas и 10 Gwei MaxPriorityFeepergas, тогда Боб должен оплатить следующие сборы:

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

Учетная запись Боба будет уменьшена на 1,0042 PSC

Счет Алисы будет увеличен на +1,0 PSC

Вычесть базовую плату 0,00399 PSC

Шахтеры сохраняют советы +0.000210 PSC

Любое взаимодействие на умных контрактах также требует газа.

Жизненный цикл транзакции

После отправки транзакции происходит следующее:

  1. После отправки транзакции криптография генерирует транзакционную хеш:0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017

  2. Затем транзакция передается в сеть и включена в коллекцию с большим количеством других транзакций.

  3. Шахтер должен выбрать вашу транзакцию и включать его в блок, чтобы подтвердить транзакцию и учитывать ее «успешно».

    • Если сеть занята, а шахтеры не могут не отставать, вы можете подождать на этом этапе.

  4. Ваша транзакция получит «подтверждение».Количество подтверждений - это количество блоков, созданных с момента блока, содержащего вашу транзакцию.Чем больше это число, тем больше уверенность в том, что транзакция будет обработана и признана сетью.

    • Самый последний блок может быть реорганизован, создавая впечатление, что транзакция не удалась;Однако транзакция все еще может быть действительной, но содержится в другом блоке.

    • Вероятность реконфигурации уменьшается с каждым последующим добываемым блоком, то есть, чем больше подтверждений, тем более неизменной становится транзакция.

Типичная транзакция транзакции

Last updated