Wie kann ich Details zu Transaktionen von einer beliebigen Blocknummer abrufen, ohne das Ereignis zu verwenden?

Ohne das Ereignis zu verwenden, möchte ich alle Details abrufen, wie viele Transaktionen mit der Transaktions-ID in einem bestimmten Block enthalten sind, indem ich einfach die Blocknummer einfüge?

Antworten (2)

Mit web3 können Sie die Funktion getBlock verwenden. Dann können Sie den Wert von "transactions" (ein Array) aus dem empfangenen Objekt lesen, um die Anzahl der Transaktionen und ihre txids zu berechnen:

Gibt einen Block zurück, der der Blocknummer oder dem Block-Hash entspricht.

Beispiel

web3.eth.getBlock(10855106).then(console.log)

/*
{
  "number": 3,
  "hash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
  "parentHash": "0x2302e1c0b972d00932deb5dab9eb2982f570597d9d42504c05d9c2147eaf9c88",
  "nonce": "0xfb6e1a62d119228b",
  "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "transactionsRoot": "0x3a1b03875115b79539e5bd33fb00d8f7b7cd61929d5a3c574f507b8acf415bee",
  "stateRoot": "0xf1133199d44695dfa8fd1bcfe424d82854b5cebef75bddd7e40ea94cda515bcb",
  "miner": "0x8888f1f195afa192cfee860698584c030f4c9db1",
  "difficulty": BigNumber,
  "totalDifficulty": BigNumber,
  "size": 616,
  "extraData": "0x",
  "gasLimit": 3141592,
  "gasUsed": 21662,
  "timestamp": 1429287689,
  "transactions": [
    "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b"
  ],
  "uncles": []
}
*/
Wenn Sie einen Knoten ausführen, können Sie mit curl direkt von der Befehlszeile nach Blockdaten fragen, also:

Wenn Sie einen Knoten lokal ausführen, können Sie Blockdaten direkt von der Befehlszeile aus mit curl anfordern, also:

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x200100", true],"id":1}' http://localhost:8545

Dies funktioniert für Parität. Beachten Sie, dass Sie Hex für die Blocknummer verwenden müssen.