Voted Coins
follow us on twitter . like us on facebook . follow us on instagram . subscribe to our youtube channel . announcements on telegram channel . ask urgent question ONLY . Subscribe to our reddit . Altcoins Talks Shop Shop


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here

Author Topic: 以太坊探究:ETH交易部分分析  (Read 871 times)

Offline billy.ryoko

  • Legendary
  • *
  • Activity: 1506
  • points:
    6024
  • Karma: 2
  • Trade Count: (0)
  • Referrals: 1
  • Last Active: April 06, 2021, 04:53:54 PM
    • View Profile

  • Total Badges: 19
    Badges: (View All)
    10 Posts First Post Fifth year Anniversary
以太坊探究:ETH交易部分分析
« on: September 03, 2018, 10:17:36 AM »
交易结构定义在 core/types/transaction.go 中:



这个 atomic 是 go 语言的一个包 sync/atomic,用来实现原子操作。在这个结构体中, data 为数据字段,其余三个为缓存。下面是计算hash的函数:



计算哈希前,首先会从缓存 tx.hash 中获取,如果取到,则直接返回值。没有,则使用rlpHash 计算:



hash 的计算方式为:先将交易的 tx.data 进行 rlpEncode 编码(定义在:core/types/transaction.go 中)



然后再进行算法为 Keccak256 的哈希计算。即:txhash=Keccak256(rlpEncode(tx.data))

Transaction 中,data 为 txdata 类型的,定义于同文件中,里面详细规定了交易的具体字段:



这些字段的详细解释如下:

AccountNonce:此交易的发送者已发送过的交易数(可防止重放攻击)
Price:此交易的 gas price
GasLimit:本交易允许消耗的最大 gas 数量
Recipient:交易的接收者地址,如果这个字段为 nil 的话,则这个交易为“合约创建”类型交易
Amount:交易转移的以太币数量,单位是 wei
Payload:交易可以携带的数据,在不同类型的交易中有不同的含义
V R S:交易的签名数据
我们会发现,交易中没有包含发送者地址这条数据,这是因为这个地址已包含在签名信息中,后面我们会分析到相关代码,另外,以太坊节点还会提供 JSON RPC 服务,供外部调用来传输数据。传输的数据格式为 json,因此,本文件中,还定义了交易的 json 类型数据结构,以及相关的转换函数。

http://m.8btc.com/yitaifang-eth

Altcoins Talks - Cryptocurrency Forum

以太坊探究:ETH交易部分分析
« on: September 03, 2018, 10:17:36 AM »

This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here


 

ETH & ERC20 Tokens Donations: 0x2143F7146F0AadC0F9d85ea98F23273Da0e002Ab
BNB & BEP20 Tokens Donations: 0xcbDAB774B5659cB905d4db5487F9e2057b96147F
BTC Donations: bc1qjf99wr3dz9jn9fr43q28x0r50zeyxewcq8swng
BTC Tips for Moderators: 1Pz1S3d4Aiq7QE4m3MmuoUPEvKaAYbZRoG
Powered by SMFPacks Social Login Mod