block字段分析

block解析

  1. difficulty般此,直接有返回
  2. extraData(額外數(shù)據(jù))籍茧,例如:0x476574682f76312e302e312f77696e646f77732f676f312e342e32徽龟,他的utf編碼內(nèi)容是:Geth/v1.0.1/windows/go1.4.2
  3. gasLimit gas最大限制绩聘,直接有返回 <這個(gè)塊最大的gas數(shù)量限制踢代,即所有交易的gas limit之和小于這個(gè)塊的gas limit數(shù)量>
  4. gasUsed 塊交易gas實(shí)際使用累加,直接有返回 <這個(gè)是所有這個(gè)塊打包的所有的交易實(shí)際消耗的gas數(shù)量之和> 使用率的獲得是(59.95% = gasUsed / gasLimit * 100%)
  5. block Hash塊的hash瓜客,直接有返回
  6. 返回的logsBloom适瓦,日記塊。日記塊寫下含有可索引的信息(寫日記人地址和日記主題)谱仪,這信息包含每個(gè)日記里交易列表中每個(gè)交易的接收人的登錄信息
  7. 返回的miner,這個(gè)塊的發(fā)現(xiàn)者否彩,想把發(fā)現(xiàn)塊的獎(jiǎng)勵(lì)發(fā)送到的地址疯攒。<這個(gè)塊的獎(jiǎng)勵(lì)發(fā)送的地址>
  8. mixhash: 混合哈希值(“mixHash”):一個(gè)與隨機(jī)數(shù)一起證明已經(jīng)在這個(gè)區(qū)塊中完成的充分的計(jì)算力總量的256位哈希值
  9. Nonce: 隨機(jī)數(shù)(“nonce”):一個(gè)與混合哈希值一起證明已經(jīng)在這個(gè)區(qū)塊中完成的充分的計(jì)算力總量的256位哈希值
  10. 返回的number 也就是這個(gè)塊當(dāng)前位于整個(gè)鏈中的位置,例如可以說這個(gè)塊在46953這個(gè)地方列荔,也可以說是塊的高度值
  11. parentHash字段敬尺,當(dāng)前塊指向之前的塊的hash
  12. receiptsRoot: 接收人根(“receiptsRoot”):trie結(jié)構(gòu)根節(jié)點(diǎn)的Keccak256位哈希值移植到這個(gè)區(qū)塊交易列表中的每個(gè)交易的接收人
  13. sha3Uncles: 暫時(shí)不知道用處
  14. size: <這個(gè)塊的實(shí)際大小>
  15. stateRoot: 狀態(tài)根(“stateRoot”):trie狀態(tài)根節(jié)點(diǎn)的Keccak256位哈希值,在所有交易被執(zhí)行和定稿被應(yīng)用
  16. timestamp: <這個(gè)塊發(fā)現(xiàn)的時(shí)間戳>
  17. totalDifficulty字段贴浙,到這個(gè)塊為止的難度之和
  18. 交易的數(shù)組字段transactions砂吞。這個(gè)字段需要分析出交易的類型,例如普通轉(zhuǎn)賬崎溃,合約的內(nèi)部交易蜻直,合約代幣轉(zhuǎn)賬。怎么區(qū)分是個(gè)問題,暫時(shí)沒找到就是包括這些不同類型信息的交易信息概而。待信息數(shù)據(jù)模塊完善后呼巷,可以具體分析下。
  19. 發(fā)現(xiàn)塊的獎(jiǎng)勵(lì)赎瑰。具體為當(dāng)前發(fā)現(xiàn)一個(gè)塊的獎(jiǎng)勵(lì)大小王悍,打包在這個(gè)塊中的交易u(yù)se gas *gas price之和,相加即獎(jiǎng)勵(lì)餐曼。
    詳細(xì)計(jì)算:發(fā)現(xiàn)一個(gè)塊默認(rèn)獎(jiǎng)勵(lì)是5eth在 當(dāng)塊的高度 block height <= 4369999压储,當(dāng)block height >= 4370000后區(qū)塊獎(jiǎng)勵(lì)是3eth
        所以如果M是獎(jiǎng)勵(lì)的eth數(shù)字
        blockHeight <= 4369999時(shí) M = 5,blockHeight >= 4370000 M = 3
        1) 發(fā)現(xiàn)一個(gè)塊的獎(jiǎng)勵(lì) M eth
        2) 每一筆交易自己的use gas * 每一筆交易自己的gas price = 真實(shí)消耗的cost 源譬,然后塊內(nèi)所有交易的cost之和的值
        3) 如果打包了叔塊(一個(gè)塊最多可以打包兩個(gè)叔塊)集惋,則會(huì)獎(jiǎng)勵(lì)一部分eth,計(jì)算方式如:如果打包了n個(gè)(n>=0 && n<= 2)n * M * (1/32)
        4) 結(jié)果是M eth +  total cost + M * 5 * (1/32) 就是這塊最終的獎(jiǎng)勵(lì)
    
  20. 暫時(shí)不清楚uncles字段和Uncles Reward: 0 有什么特殊意義瓶佳。 <如果你之前塊是你的父塊芋膘,那么叔塊就是你父塊的兄弟,你的父塊得到了確認(rèn)霸饲,叔塊沒有得到確認(rèn)为朋,如果沒人理他,他就成了孤兒塊厚脉,如果你把這個(gè)叔塊包含進(jìn)你的塊中习寸,那么就會(huì)成為你的叔塊,每個(gè)塊最多包含兩個(gè)叔塊傻工,同時(shí)你會(huì)得到獎(jiǎng)勵(lì)>
    詳細(xì)計(jì)算:叔塊的獎(jiǎng)勵(lì)(不是打包叔塊的獎(jiǎng)勵(lì))
        blockHeight <= 4369999時(shí) M = 5霞溪,blockHeight >= 4370000 M = 3
        當(dāng)此叔塊被打包的塊的高度是blockHeight時(shí), uncleHeight = blockHteigh - 1中捆。
        ( uncleHeight + 8 - blockHeigh ) * M / 8 = result value 就是最后的獎(jiǎng)勵(lì)鸯匹,獎(jiǎng)勵(lì)給這個(gè)叔塊的發(fā)現(xiàn)者,但是里面打包的交易泄伪,需要重新打包殴蓬。
    

block中返回的交易信息解析如下:

  1. blockHash: 上面的塊的hash
  2. blockNumber: Block Height:46953 (4852571 確認(rèn)數(shù)字即在這個(gè)塊所連接的鏈上,后續(xù)有繼續(xù)連接了多少個(gè)塊蟋滴,叫對(duì)這個(gè)交易的確認(rèn)數(shù))
  3. from: 發(fā)起交易的賬戶
  4. gas: 不知道是哪個(gè)染厅,感覺是gas limit ,也就是一筆交易的限制消耗的最大gas數(shù)量津函。就是Gas Limit: 21000 最大可被計(jì)算使用過的gas數(shù)量肖粮,當(dāng)真正需要計(jì)算的所消耗的大于這個(gè)limit的時(shí)候,交易會(huì)失敗
  5. gasPrice: 0.0000003 Ether (300 Gwei)這個(gè)是轉(zhuǎn)化后的顯示數(shù)字真實(shí)的是"300000000000"尔苦,需要特殊處理下
  6. hash: 這交易的hash
  7. input: input字段涩馆,一般交易為空行施,如果是創(chuàng)建合約或者調(diào)用合約,則會(huì)附帶一些數(shù)據(jù)
  8. nonce: 可以理解為當(dāng)前這個(gè)發(fā)送交易賬戶凌净,發(fā)送交易的記錄 例如悲龟,第一次交易為0,第二次交易為1冰寻,第三次為2须教,一次類推。nonce 防止雙花交易斩芭,這個(gè)值要和以太坊網(wǎng)絡(luò)上的記錄保持一致轻腺。高于這個(gè)值,則此交易無效
  9. to: 轉(zhuǎn)到的賬戶地址
  10. transactionIndex: 這筆交易是塊打包的第幾筆交易
  11. value: 轉(zhuǎn)賬的金額划乖,實(shí)際值為"50000000000000000" 轉(zhuǎn)化為可以理解的就是0.05以太幣

以下字段沒有返回

  1. timeStamp時(shí)間戳就是所在塊打包的時(shí)間
  2. Gas Used By Txn: 21000 計(jì)算真正使用的gas數(shù)量贬养?
    1. 如果交易發(fā)出之前計(jì)算的話使用: eth.estimateGas({from: fromAddress, to: toAddress, value:50000000000000})
    2. 如果是已經(jīng)完成交易的可以根據(jù)tx hash 查詢: eth.getTransactionReceipt(hash)
    
  3. Cumulative Gas Used: 21000 累計(jì)使用的gas數(shù)量,一筆筆交易的gas used相加得到的
    每一筆交易真實(shí)消耗的gas之和
  4. Actual Tx Cost/Fee: 0.0063 Ether
    <21000(Gas Used) * 0.0000003(Gas Price)>即真正使用的gas * 每個(gè)gas的價(jià)格琴庵,就是實(shí)際消耗的

補(bǔ)充信息

在block塊中的信息误算,并不完全,如果要分析這筆交易的跟多信息迷殿,需要結(jié)合eth.getTransactionReceipt(hash)返回的結(jié)果值儿礼。
1. 可以得到當(dāng)前交易的gasUsed,也就是真實(shí)用到的gas數(shù)量
2. 可以得到當(dāng)前交易的狀態(tài)字段status庆寺,0x0是失敗蚊夫,0x1是成功
3. logs字段,可以分析交易內(nèi)部的一些事情懦尝,暫未搞明白
4. contractAddress字段知纷,就是當(dāng)你的toAddress字段是null,且input字段有內(nèi)容時(shí)陵霉。查詢交易狀態(tài)時(shí)琅轧,contractAddress就是你的合約創(chuàng)建地址
5. cumulativeGasUsed也是展示在交易信息界面上的交易的第12個(gè)字段,可以不用自己加踊挠,這里直接有返回

最后遺留問題

怎么區(qū)分:普通轉(zhuǎn)賬鹰晨,合約的內(nèi)部交易,合約代幣轉(zhuǎn)賬止毕,怎么區(qū)分是個(gè)問題,暫時(shí)沒找到就是包括這些不同類型信息的交易信息漠趁。待信息數(shù)據(jù)模塊完善后扁凛,可以具體分析下。

  1. 補(bǔ)充

    首先普通轉(zhuǎn)賬闯传,很簡(jiǎn)單谨朝,交易信息中顯示很詳細(xì)
        使用getBlock() 和 getTransactionReceipt() 基本很詳細(xì)了。
    其次是合約內(nèi)部的交易,也就是轉(zhuǎn)賬到合約地址字币,然后被合約各種處理后则披,最后到了某個(gè)地址
        這個(gè)主要通過debug_traceTransaction接口獲取,分析返回的數(shù)據(jù)即可
    最后是合約代幣的流轉(zhuǎn)
        合約代幣的流程一定會(huì)觸發(fā)下面的事件
        event Transfer(address indexed from, address indexed to, uint256 value);
        分析getTransactionReceipt()數(shù)據(jù)中的logs字段洗出,即可獲得詳細(xì)信息
    
  2. 轉(zhuǎn)賬流程分析如下

    1. 普通的轉(zhuǎn)賬 
            fromAddress and toAddress 都是普通賬戶
            描述:很簡(jiǎn)單就是兩個(gè)賬戶余額的變化
        2. 合約的創(chuàng)建
            fromAddress 為普通賬戶士复, toAddress為nil,input字段有內(nèi)容(就是要部署的合約的bytecode)
            在交易getTransactionReceipt函數(shù)返回的結(jié)果中contractAddress字段有內(nèi)容翩活。這就是一個(gè)合約的創(chuàng)建交易阱洪。
            例如:0x77350c5282d57507cb4b1d8298387878a52d1ecd1a40fa2d7985f0b3c822dc34 這筆就是創(chuàng)建合約的交易
            https://etherscan.io/tx/0x77350c5282d57507cb4b1d8298387878a52d1ecd1a40fa2d7985f0b3c822dc34
        3. 合約的調(diào)用
            1) 普通地址轉(zhuǎn)賬到合約地址觸發(fā)一些事件
                - 購買某個(gè)合約的代幣,轉(zhuǎn)賬到這個(gè)合約地址
                    合約執(zhí)行某個(gè)事件為發(fā)送交易地址分配相應(yīng)代幣額度
                    合約會(huì)將 轉(zhuǎn)賬到合約地址的以太幣 轉(zhuǎn)到一個(gè)普通用戶賬戶地址
                - 如果不講合約代幣的合約菠镇。則如果轉(zhuǎn)賬到某個(gè)合約冗荸,則會(huì)根據(jù)合約代碼的設(shè)計(jì)觸發(fā)相對(duì)應(yīng)的事件
            2) 普通地址調(diào)用合約地址的方法觸發(fā)代幣轉(zhuǎn)賬 (最近經(jīng)常用的)
    
            3) 普通地址調(diào)用合約地址的公開方法做一些事情 <理論上2) 屬于3)>
                - 最簡(jiǎn)單的就是調(diào)用合約公開方法改變內(nèi)部存儲(chǔ)的值,但是沒有觸發(fā)事件
                    https://etherscan.io/tx/0x43607252bf210c3d20fe9a659f45dddcd1725969d8471be7868e577f28a98e61
                    調(diào)用了函數(shù)利耍,且傳入了不同的值蚌本,但是沒有觸發(fā)事件
                - 轉(zhuǎn)賬到合約地址,觸發(fā)了事件隘梨,但是沒有做轉(zhuǎn)出程癌,代幣分發(fā)操作,此合約地址有余額
                    https://etherscan.io/tx/0x8d3e2be93030c39faf5642bd479055f8a0e99e5673142cdebc492004194376ae
                - 復(fù)雜的轉(zhuǎn)賬到合約地址出嘹,觸發(fā)了事件席楚,做了代幣分發(fā)和合約轉(zhuǎn)賬到另一地址操作
                    https://etherscan.io/tx/0xd54e1fbc350dac428ca65a4abef6db4e343e1367e6cd9434bb14949a469cefc4
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市税稼,隨后出現(xiàn)的幾起案子烦秩,更是在濱河造成了極大的恐慌,老刑警劉巖郎仆,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件只祠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扰肌,警方通過查閱死者的電腦和手機(jī)抛寝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曙旭,“玉大人盗舰,你說我怎么就攤上這事」瘐铮” “怎么了钻趋?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)剂习。 經(jīng)常有香客問我蛮位,道長(zhǎng)较沪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任失仁,我火速辦了婚禮尸曼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萄焦。我一直安慰自己控轿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布楷扬。 她就那樣靜靜地躺著解幽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烘苹。 梳的紋絲不亂的頭發(fā)上躲株,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音镣衡,去河邊找鬼霜定。 笑死,一個(gè)胖子當(dāng)著我的面吹牛廊鸥,可吹牛的內(nèi)容都是我干的望浩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼惰说,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼磨德!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吆视,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤典挑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后啦吧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體您觉,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年授滓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琳水。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡般堆,死狀恐怖在孝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淮摔,我是刑警寧澤浑玛,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站噩咪,受9級(jí)特大地震影響顾彰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胃碾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一涨享、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仆百,春花似錦厕隧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至峦朗,卻和暖如春建丧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背波势。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工翎朱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尺铣。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓拴曲,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凛忿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澈灼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.以太幣(Ether)產(chǎn)生規(guī)則和比特幣有哪些區(qū)別? 1. 出塊時(shí)間店溢。 比特幣出塊時(shí)間是平均10分鐘叁熔,而以太坊約是...
    愛學(xué)習(xí)的小仙女呀閱讀 3,394評(píng)論 0 7
  • 概念 以太坊是一個(gè)可編程區(qū)塊鏈,那么允許用戶創(chuàng)建屬于他們自己的復(fù)雜的操作逞怨,且作為一個(gè)去中介化的平臺(tái)者疤,提供不同的區(qū)塊...
    磨鏈社區(qū)閱讀 853評(píng)論 0 1
  • 【中文版】以太坊白皮書 翻譯:少平、 Seven當(dāng)中本聰在 2009 年 1 月啟動(dòng)比特幣區(qū)塊鏈時(shí)叠赦,他同時(shí)向世界引...
    __Seven__閱讀 4,227評(píng)論 0 10
  • 以太坊白皮書地址:https://github.com/ethereum/wiki/wiki/White-Pape...
    rectinajh閱讀 17,830評(píng)論 0 46
  • 文/吳雷 今天遇到一件小事除秀,其實(shí)同類的問題以前經(jīng)常遇上糯累,我只是沒有反思自己......下午時(shí),正好遇到對(duì)門出去册踩,我...
    吳雷china閱讀 307評(píng)論 0 1