有许多服务提供通过 ID 查找交易的功能。例如,如https://blockexplorer.com/tx/8987fa849d822dbb0e593d9d1b750550efe510b02885239b3d7f318cfd219a07
但是,我如何获取包含在块中的交易,而不是通过 ID 而是按时间?例如,我需要获取“2015 年 11 月 7 日 12:24:07 PM”区块中包含的所有交易
我通过什么方式获得这笔交易?
如果您有比特币节点,这里有一个脚本。在您的节点所在的同一台机器上执行它。
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
你可以使用unix时间戳获取块(你可以将任何你想要的时间转换成这个)
使用 blockr.io api
http://btc.blockr.io/api/v1/block/info/first?after=(时间戳)
它将为您提供块哈希和一些其他信息,您可以使用它们来查找块中的交易
希望这有帮助!