如何通过合同验证ethash产生的现时&&在EVM中添加新的操作码

时间:2018-09-20 10:19:34

标签: blockchain ethereum solidity pow contract

我想验证一台计算机的内存容量,然后使用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);
^-------------------------^

似乎编译器检查了完整性,我的问题是,如果我想使用传入的某些参数修改现有操作码,该怎么办?

0 个答案:

没有答案