取引

トランザクションは、暗号署名を持つアカウントによって発行される命令です。アカウントは、イーサネットネットワークの状態を更新するためのトランザクションを開始します。最も単純なトランザクションは、あるアカウントから別のアカウントへのPSCの転送です。

トランザクションは何ですか?

PolySmartChainトランザクションは、外部で保持されているアカウント、つまりスマートコントラクトではなく人間によって管理されているアカウントによって開始されるアクションです。たとえば、ボブがアリス1 PSCを送信する場合、ボブのアカウントは1 PSC減らす必要があり、アリスのアカウントは1PSC増やす必要があります。このアクションはトランザクション中に発生し、状態を変更します。

EVMの状態を変更するトランザクションは、ネットワーク全体にブロードキャストする必要があります。どのノードもEVMでトランザクション要求をブロードキャストできます。その後、マイナーはトランザクションを実行し、結果として生じる状態変更をネットワークの残りの部分に伝播します。

トランザクションには手数料が必要であり、有効にするにはマイニングする必要があります。この概要を簡単にするために、これをガス料金と鉱業と呼びます。

提出されたトランザクションには、次の情報が含まれています:

  • recipient – 受信アドレス(外部に保持されているアカウントの場合、トランザクションは値を送信します。契約アカウントの場合、トランザクションは契約コードを実行します)

  • signature – 送信者の識別子。この署名は、送信者がこのトランザクションを承認したことを確認するために、トランザクションが送信者の秘密鍵によって署名されたときに生成されます。

  • value – 任意のデータを含めることができるオプションのフィールド

  • data – トランザクションで消費できるガスの最大量。ガス単位は計算ステップを表します

  • gasLimit – トランザクションで消費できるガスの最大量。ガス単位は計算ステップを表します

  • maxPriorityFeePerGas - 鉱夫のチップとして含まれるガスの最大量

  • maxFeePerGas - 取引に支払うことをいとわないガスの最大量(including baseFeePerGas and maxPriorityFeePerGas)

ガスは、鉱夫がトランザクションを処理するために必要な算術電力の量です。ユーザーはこの計算に料金を支払う必要があります。gasLimitとgasPriceは、鉱夫に支払われる最大取引手数料を決定します。

トランザクションオブジェクトは次のようになります:

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

ただし、トランザクションのオブジェクトは、送信者の秘密鍵で署名する必要があります。これは、トランザクションが送信者からのみ発生し、詐欺からは発生しないことを証明しています。

GPSCのようなPolySmartChainクライアントは、この署名プロセスを処理します。

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(Recursive Length Prefix)エンコード形式です。

  • tx 署名されたトランザクションのJSON形式です。

署名ハッシュが利用可能な場合、トランザクションは送信者から送信され、ネットワークに送信されたことが暗号で証明されます。

トランザクションタイプ

PolySmartChainには、いくつかの異なるタイプのトランザクションがあります:

  • 通常のトランザクション:あるウォレットから別のウォレットへのトランザクション。

  • 契約展開トランザクション:「宛先」アドレスのないトランザクション、契約コードのデータフィールド。

ガスについて

上記のように、トランザクションを実行するにはガスが必要です。単純な転送トランザクションには21,000ガスがかかります。

ボブが1PSCをアリスに190gweibaseFeePergas と 10gweiで送信したいとすると、ボブmaxPriorityFeePerGas,は次の料金を支払う必要があります。

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

ボブのアカウントは1.0042PSC減少します

アリスのアカウントは+1.0PSC増加します

0.00399PSCの基本料金を差し引く

鉱夫はチップを保持します+0.000210PSC

スマートコントラクトの相互作用にもガスが必要です。

トランザクションのライフサイクル

トランザクションが送信されると、次のようになります:

  1. トランザクションを送信すると、暗号化によってトランザクションハッシュが生成されます。hash:0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017

  2. その後、トランザクションはネットワークに中継され、他の多数のトランザクションとともにコレクションに含まれます。

  3. マイナーは、トランザクションを検証して「成功」したと見なすために、トランザクションを選択してブロックに含める必要があります。

    • ネットワークが混雑していて、鉱夫が追いつけない場合は、この段階で待つことができる場合があります。

  4. あなたの取引は「確認」を受け取ります。確認の数は、トランザクションを含むブロック以降に作成されたブロックの数です。この数値が大きいほど、トランザクションがネットワークによって処理および確認される確実性が高くなります。

    • 最新のブロックが再編成され、トランザクションが失敗したという印象を与える可能性があります。ただし、トランザクションは引き続き有効である可能性がありますが、別のブロックに含まれています。

    • 再構成の可能性は、後続のブロックがマイニングされるたびに減少します。つまり、確認が多いほど、トランザクションは不変になります。

リソースの拡大

Last updated