如何通过包含在区块中的时间找到比特币交易?

问题描述 投票:0回答:2

有许多服务提供通过 ID 查找交易的功能。例如,如https://blockexplorer.com/tx/8987fa849d822dbb0e593d9d1b750550efe510b02885239b3d7f318cfd219a07

但是,我如何获取包含在块中的交易,而不是通过 ID 而是按时间?例如,我需要获取“2015 年 11 月 7 日 12:24:07 PM”区块中包含的所有交易

我通过什么方式获得这笔交易?

transactions bitcoin
2个回答
0
投票

如果您有比特币节点,这里有一个脚本。在您的节点所在的同一台机器上执行它。

TIMESTAMP=$1
LOWER=0
UPPER=$(bitcoin-cli getblockcount)

while (( LOWER <= UPPER )); do
    MID=$(( (LOWER + UPPER) / 2 ))
    BLOCKHASH=$(bitcoin-cli getblockhash $MID)
    BLOCKTIME=$(bitcoin-cli getblockheader $BLOCKHASH | jq .time)

    if (( BLOCKTIME < TIMESTAMP )); then
        LOWER=$(( MID + 1 ))
    elif (( BLOCKTIME > TIMESTAMP )); then
        UPPER=$(( MID - 1 ))
    else
        echo "$BLOCKTIME"
        exit 0
    fi
done

echo "$UPPER"

来源

用途:

$: ./fb.sh <timestampSeconds>

返回区块号

示例:

$: ./fb.sh 1668779310
763719

-1
投票

你可以使用unix时间戳获取块(你可以将任何你想要的时间转换成这个)

使用 blockr.io api

http://btc.blockr.io/api/v1/block/info/first?after=(时间戳)

它将为您提供块哈希和一些其他信息,您可以使用它们来查找块中的交易

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.