Home > Blockchain >  Ethereum: API call for Total Terminal Difficulty
Ethereum: API call for Total Terminal Difficulty

Time:09-12

I see you can get the current block data with

https://api.etherscan.io/api?module=proxy&action=eth_blockNumber&apikey=YourApiKeyToken

and

https://api.blockcypher.com/v1/eth/main

But none have TTL. Any idea how I can get this info? I want to poll it.

CodePudding user response:

These are arbitrary APIs by services that don't include the raw block data.

If you want to get the raw block data, including its totalDifficulty, you need to query an Ethereum node over its JSON-RPC API method eth_getBlockByNumber or eth_getBlockByHash.

Example with Infura, a well-known 3rd party Ethereum node provider:

curl -X POST 'https://mainnet.infura.io/v3/<your_api_key>' \
--data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x1b4", true],"id":1}'

Response contains the totalDifficulty param which, according to the docs, represents "integer of the total difficulty of the chain until this block.".

{"jsonrpc":"2.0","id":1,"result":{"difficulty":"0x4ea3f27bc","extraData":"0x476574682f4c5649562f76312e302e302f6c696e75782f676f312e342e32","gasLimit":"0x1388","gasUsed":"0x0","hash":"0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xbb7b8287f3f0a933474a79eae42cbca977791171","mixHash":"0x4fffe9ae21f1c9e15207b1f472d5bbdd68c9595d461666602f2be20daf5e7843","nonce":"0x689056015818adbe","number":"0x1b4","parentHash":"0xe99e022112df268087ea7eafaf4790497fd21dbeeb6bd7a1721df161a6657a54","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x220","stateRoot":"0xddc8b0234c2e0cad087c8b389aa7ef01f7d79b2570bccb77ce48648aa61c904d","timestamp":"0x55ba467c","totalDifficulty":"0x78ed983323d","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[]}

Ethereum is scheduled to perform the upgrade to PoS when the total difficulty reaches the threshold of 58,750,000,000,000,000,000,000.

  • Related