Сделка

это инструкция, выпущенная учетной записью с криптографической подписью.Учетная запись инициирует транзакцию для обновления состояния сети 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

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

Any gas not used for the transaction is returned to the user's account.

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

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

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

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

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

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

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

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

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

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

Last updated