Мне нужно правильно сегментировать транзакции по времени. Можно ли доверять временным меткам в транзакциях? Можно ли их подделать?
Я не уверен, являются ли временные метки транзакций частью протокола, но меня особенно интересует «Время получения», которое отображается в blockchain.info. Например, эта транзакция ( URL API )
{
time:1385506952,
inputs:[
{
prev_out:{
n:2,
value:50000000,
addr:"17BPmjqg7mbaWYdff2EjVxra1FBHG4VAN3",
tx_index:97772745,
type:0
}
}
],
vout_sz:2,
relayed_by:"127.0.0.1",
hash:"4054f8170f7fc7c12229a116baead874f22478810b0a7e842aa28403c9b59927",
vin_sz:1,
tx_index:99131036,
ver:1,
out:[
{
n:0,
value:40000000,
addr:"1LwmnEn97jcANB68C5BVFQLJJLAm5UTJqW",
tx_index:99131036,
type:0
},
{
n:1,
value:9990000,
addr:"17BPmjqg7mbaWYdff2EjVxra1FBHG4VAN3",
tx_index:99131036,
type:0
}
],
size:257
}
Транзакции не имеют временных меток, поэтому временная метка, отображаемая на blockchain.info, соответствует времени, когда их узел получил транзакцию. Отображаемое время также изменится на время, когда оно было включено в блок. Как правило, нельзя доверять отметке времени, указанной для неподтвержденной транзакции на blockchain.info, поскольку она полностью зависит от их узла.
Фактическое время транзакции не имеет значения , равно как и точное время создания блока. В конце концов, речь идет о порядке : в гонке за добычей следующего блока первый действительный блок транслируется всем остальным майнерам, и этот блок является частью самой длинной цепочки.
Если майнер получает два действительных блока, близких друг к другу, сначала один от майнера B, а затем один от майнера A, и временная метка на блоке A показывает, что он действительно был добыт первым, наш майнер все равно будет включать блок B, потому что он пришел первым, и майнеры заинтересованы в том, чтобы начать добычу следующего блока как можно скорее.
Марч
пользователь6049
пользователь6049
timereceived
обсуждаются временные метки и другие временные метки, используемые API-интерфейсом оригинального биткойн-клиента . Я полагаю, что разумно предположить, что blockchain.org использует термин «полученное время» в смысле исходного биткойн-клиента (в том смысле, который я упомянул в своем другом комментарии в качестве предположения).timereceived