как проверить одноразовый номер, созданный ethash через контракт && добавить новый код операции в EVM - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу проверить количество памяти одного компьютера, затем я использую алгоритм 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);
^-------------------------^

Похоже, что ошибка проверки целостности была проверена компилятором, мой вопрос в том, что мне делать, если я хочу изменить существующий код операции с некоторыми переданными параметрами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...