i20*_*awa 4 blockchain ethereum solidity web3js geth
我正在使用以太坊学习区块链,我想使用Solidity在智能合约中使用过去的交易数据.如果我在用javascript编写的程序中使用Web3.js模块,我可以轻松获得这些数据.但我无法使用Solidity在Smart合同中获取这些数据.
Solidity的参考说我们可以通过使用"block.number"和"block.blockhash(uint blockNumber)"函数来获取当前的块编号,blockhash等,但是没有提到获取事务数据.(http://solidity.readthedocs.io/en/latest/units-and-global-variables.html#special-variables-and-functions)
请帮我.
答案很简单.遗憾的是,您无法从Solidity访问旧事务或阻止数据链.至多,你可以访问最后256块的哈希值(见blockhash
在文档)
或者,作为一种解决方法,您可以考虑使用Oraclize.Oraclize表示读取链上的链数据的方法,因此您可以尝试从Etherscan Web API读取事务数据.Oraclize的工作方式是:
但是,通过这种方法,您依赖于:
如果您只关心与智能合约相关的交易数据,另一种方法是将交易数据存储在链上.如果你告诉我们更多你正在解决的具体问题,我们可以给你一些建议.
归档时间: |
|
查看次数: |
1213 次 |
最近记录: |