以太坊浏览器的Internal Transactions检索功能(1)

版权声明:1、本BLOG的目的、形式及内容。   此BLOG为个人维护BLOG,内容均来自原创及互连网转载。最终目的为收集整理自己需要的文章技术等内容,不涉及商业用途。 2、有关原创文章的版权   本BLOG上原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为。 3、有关本站侵权   本BLOG所转载的内容,均是本人未发现有对文章版权声明的文章且无来自传统媒体。如 https://blog.csdn.net/xq723310/article/details/81537132

    做了这么久的以太坊钱包发现,突然觉得最好的模型就是etherscan,如果能做的和etherscan一样,估计就能超越90%的钱包了。所以可以有计划的照着etherscan实现各种功能就好了,最近发现etherscan都支持了erc721,挺有意思的。不过今天的主角是Internal Transactions。

    Internal Transactions,我的理解就是你给合约发起了一笔交易,然后合约根据当前的环境进行一系列的动作,可能是eth转账,也可能是调用新的合约或者其他一些数据的操作;这些动作其实都是在节点内部进行的,或者你可以认为是在evm里进行的;这里有问题,我们通过现有一些接口不容易捕获到这些动作,因为他们都位于evm中;我觉得严格意思来说,这并不是交易,而是执行合约的一个附带结果;实际的交易是用户和合约之间的转账;

    从这个Internal Transactions我们可以看出来以太坊处理交易的内部实现,当一笔交易被打包进块被广播后,节点接受了这笔交易后,其实需要自己在把这笔交易执行一遍的,虽然以太坊是个分布式网络,但是每个节点的环境或者上下文应该是一致的,(其实分叉就是节点环境不一致的情况)所以每个节点的evm执行相同的交易,结果是一致的。

   现在我们返回理解Internal Transactions,你对合约发起了一笔交易,打包进区块,广播;其他节点接受到区块后,会对里边的交易进行重放,即重新执行一次;这样Internal Transactions交易就会在该节点上生效,也会在整个网络上同步了数据。

    可能理解的不正确,欢迎指正,下一篇会讨论如何实现Internal Transactions这个功能。

阅读更多 登录后自动展开

更多精彩内容