Go-Ethereum
獲取交易包含在您的節點中的時間
有什麼方法可以獲取您收到交易的時間嗎?我想知道我的節點中何時包含智能合約。(本地測試網)
當區塊被添加到您的本地區塊鏈時,它們包含一堆元數據,包括區塊時間戳,即區塊被探勘的時間,包括該區塊中的所有交易。
這是撰寫本文時的最新塊:
https://etherscan.io/block/6521553
Height: 6521553 TimeStamp: 56 secs ago (Oct-15-2018 07:55:37 PM +UTC) <--- here Transactions: 104 transactions and 23 contract Internal Transactions in this Block Hash: 0x6995e8a668ddc3743e806e99a3c860b8a57d4a7c8de47664489e0c39749069bb ...
但是,該時間戳不一定反映所有節點意識到該塊的時間,因為在整個網路中傳播該資訊需要時間。它只是說明區塊創建者何時聲稱創建了該區塊。
此外,區塊時間戳並不是一門完美的科學,因為它是來自區塊創建者的聲明,並且可以由區塊創建者在某些規則內進行調整。看這裡:
您可以使用任何 Web3 API(如 Web3.js 提供的 API)非常輕鬆地訪問塊時間戳:
獲取塊
web3.eth.getBlock(blockHashOrBlockNumber [, returnTransactionObjects] [, callback])
例如:
web3.eth.getBlock(6521553).then(console.log);
{ difficulty: "3220937666879710" extraData: "0x66726131" gasLimit: 8000029 gasUsed: 7982786 hash: "0x6995e8a668ddc3743e806e99a3c860b8a57d4a7c8de47664489e0c39749069bb" logsBloom: "0x420542890060082225300245402122f1002aa0004221201100005100566155ea0d8210b04c821040472440169190308898314a00010881a6880891464f2e0ce02188cd40200669c908b0060ac8002480d824080cd03048524a5461080680606a0609d09302495802e460259814040c41282801600c5c00020058201599486031206482383cc2007034420ac0848020083810222c055000862a8111212a4060008a0c0b5242671860864480c12411e531141004080404803842018004d20100280081832251959a9619126c07400800d68c196805250a2087ec1cd000c0512000021031019212a800a009a0040818ec22a0402e86120a05134d7c87180d94e204" miner: "0xb2930B35844a230f00E51431aCAe96Fe543a0347" mixHash: "0x31f52f83ea88a0201aa44e3e70abe03d097fbe2fed54d9b32bc268194b0b6ae3" nonce: "0x297eb26407ff9ca4" number: 6521553 parentHash: "0x8516a9c81830a6b8d953083af31aad2497f33108d5df184b20098003103e56d8" receiptsRoot: "0x4c95c9233bcc119ab84bf347a371229b516aacb13aa55bdbf785dfb635e0a719" sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" size: 21086 stateRoot: "0xcfd2357bcdc9497cf7289e45fd142860ecf933becb7b2060f70a1bf00a885ae0" timestamp: 1539633337 <--------- here totalDifficulty: "7243332583953312312387" transactions: Array(104) [...] transactionsRoot: "0x1e2248a45cf7e0f3500781a8293eadbaf12235dd5dc78b4f00b87b2559e75c58" uncles: Array [] }
Date()
然後,您可以使用 JavaScript函式將其轉換為人類可讀的時間:Date(1539633337 * 1000)
“2018 年 10 月 15 日星期一 13:08:39 GMT-0700(太平洋夏令時間)”