Я хочу проверить количество памяти одного компьютера, затем я использую алгоритм ethash
, который ethereum
использовал для выполнения работы.Проблема заключается в том, что кэш и набор данных в алгоритме слишком велики для контрактов.Как я могу проверить работу?
На мой взгляд, номер блока и адрес аккаунта и одноразовый номер должны перейти в контракт, затем контракт подтвердить его.
Или есть какой-то другой способ памятибазовый алгоритм для проверки памяти одного компьютера?Спасибо.
Я хотел бы изменить структуру vm.Context,
type Context struct {
// CanTransfer returns whether the account contains
// sufficient ether to transfer the value
CanTransfer CanTransferFunc
// Transfer transfers ether from one account to the other
Transfer TransferFunc
// GetHash returns the hash corresponding to n
GetHash GetHashFunc
// VerifyMemoryDifficulty return true if the given nonce is valid
VerifyMemoryDifficulty VerifyMemoryDifficultyFunc
// .......
// Difficulty *big.Int // Provides information for DIFFICULTY
}
VerifyMemoryDifficultyFunc func(*big.Int)
Но, когда я вызываю это в моей прочности, он возвращает ошибку:
Error: Different number of arguments in return statement than in returns declaration.
return block.difficulty(99);
^-------------------------^
Похоже, что ошибка проверки целостности была проверена компилятором, мой вопрос в том, что мне делать, если я хочу изменить существующий код операции с некоторыми переданными параметрами?