Код:
...
случай OP_CHECKLOCKTIMEVERIFY:
{
...
// На самом деле сравнивать указанное время блокировки с транзакцией.
если (! checker.CheckLockTime (nLockTime))
вернуть set_error (serror, SCRIPT_ERR_UNSATISFIED_LOCKTIME);
ломать;
}
...
BOOL TransactionSignatureChecker :: CheckLockTime (Const CScriptNum& nLockTime) сопзЬ
{
...
// Наконец, функция nLockTime может быть отключена, и, таким образом,
// CHECKLOCKTIMEVERIFY обойдены, если каждый txin было
// завершена установка nSequence к MaxInt.
// сделка будет допускаться в blockchain, что делает
// опкод неэффективна.
//
// Проверка, если это Vin не является окончательным достаточно
// предотвратить это состояние. В качестве альтернативы мы могли проверить все
// входы, но тестирование только этот вход минимизирует данные
// требовалось доказать правильность выполнения CHECKLOCKTIMEVERIFY.
если (txTo->Vin [NIN] .IsFinal ())
вернуться ложным;
возвращает истину;
}
случай OP_CHECKLOCKTIMEVERIFY:
{
...
// На самом деле сравнивать указанное время блокировки с транзакцией.
если (! checker.CheckLockTime (nLockTime))
вернуть set_error (serror, SCRIPT_ERR_UNSATISFIED_LOCKTIME);
ломать;
}
...
BOOL TransactionSignatureChecker :: CheckLockTime (Const CScriptNum& nLockTime) сопзЬ
{
...
// Наконец, функция nLockTime может быть отключена, и, таким образом,
// CHECKLOCKTIMEVERIFY обойдены, если каждый txin было
// завершена установка nSequence к MaxInt.
// сделка будет допускаться в blockchain, что делает
// опкод неэффективна.
//
// Проверка, если это Vin не является окончательным достаточно
// предотвратить это состояние. В качестве альтернативы мы могли проверить все
// входы, но тестирование только этот вход минимизирует данные
// требовалось доказать правильность выполнения CHECKLOCKTIMEVERIFY.
если (txTo->Vin [NIN] .IsFinal ())
вернуться ложным;
возвращает истину;
}
Для начала я не понимаю, почему только текущий txin тестируется. А во-вторых, я бы подумал, что если бы все порядковые номера txin были установлены MaxInt тогда он должен вернуть истинный, а не ложь. Может быть, если оператор имеет ошибку, и должны быть сведены на нет там?
Может кто-нибудь объяснить этот код мне пожалуйста.