交易
Last updated
Last updated
交易是由帐户发出,带密码学签名的指令。 帐户将发起交易以更新以太坊网络的状态。 最简单的交易是将 PSC 从一个账户转到另一个帐户。
PolySmartChain交易是指由外部持有账户发起的行动,换句话说,是指由人管理而不是智能合约管理的账户。 例如,如果 Bob 发送 Alice 1 PSC,则 Bob 的帐户必须减少 1 PSC,而 Alice 的账户必须增加 1 PSC。 此项操作发生在交易中,会变更状态。
改变 EVM 状态的交易需要广播到整个网络。 任何节点都可以在 EVM 上广播交易请求;此后,矿工将执行交易并将由此产生的状态变化传播到网络的其他部分。
交易需要收费并且必须开采才能有效。 为了使这种概述更加简单,我们将其称为 Gas 费和挖矿。
所提交的交易包括下列信息:
recipient
– 接收地址(如果为一个外部持有的帐户,交易将传输值。 如果为合约帐户,交易将执行合约代码)
signature
– 发送者的标识符。 当通过发送者的私钥签名交易来确保发送者已授权此交易时,生成此签名。
value
– 从发件人向收件人转移 ETH 的金额 (以 WEI 为单位,ETH 的一种面值单位)
data
– 可包括任意数据的可选字段
gasLimit
– 交易可以消耗的 Gas 的最大数量。 Gas 单位代表了计算步骤
maxPriorityFeePerGas
- 作为矿工小费包含的最大 gas 数量
maxFeePerGas
- 愿意为交易支付的最大 gas 数量(包括 baseFeePerGas
和 maxPriorityFeePerGas
)
Gas 是指矿工处理交易所需的算力。 用户必须为此计算支付费用。 gasLimit
和 gasPrice
决定支付给矿工的最高交易费用。
交易对象看起来像这样:
但交易对象需要使用发送者的私钥签名。 这证明交易只可能来自发送者,而不是欺诈。
GPSC 这样的PolySmartChain客户端将处理此签名过程。
示例 JSON-RPC 调用:
示例响应:
raw
是已签名交易的 RLP(Recursive Length Prefix)编码形式。
tx
是已签名交易的 JSON 形式。
如有签名哈希,可通过加密技术证明交易来自发送者并提交网络。
PolySmartChain有几种不同类型的交易:
常规交易:从一个钱包到另一个钱包的交易。
合约部署交易:没有“to”地址的交易,数据字段用于合约代码。
如上所述,执行交易需要花费 Gas。 简单的转让交易需要 21000 个 Gas。
假设 Bob 要向 Alice 发送 1 PSC,需支付 190 gwei 的 baseFeePergas
和 10 gwei 的 maxPriorityFeePerGas
,那么 Bob 需要支付以下费用:
Bob 的账户将会减少 1.0042 PSC
Alice 的账户将会增加 +1.0 PSC
扣掉 0.00399 PSC 的基本费用
矿工保留小费 +0.000210 PSC
任何智能合约交互也需要 Gas。
一旦提交交易,就会发生以下情况:
一旦您发送交易,加密法生成交易哈希: 0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017
然后将该交易转播到网络,并且与大量其他交易一起包含在一个集合中。
矿工必须选择您的交易并将它包含在一个区块中,以便验证交易并认为它“成功”。
如果网络繁忙,矿工无法跟上,您可能会在这个阶段等候。
您的交易将收到"确认"。 确认的数量是自包含您交易的区块以来创建的区块数。 这个数字越大,交易被网络处理和承认的确定性就越强。
最近的区块可能会被重组,给人留下交易失败的印象;但交易可能仍然有效,但包含在另一个区块中。
重组的概率随着其后每一次挖掘的区块而降低,即确认次数越多,交易就越不可改变。