元宇宙非小号金色财经交流群社区官网

这样成功部署了攻击合约之后我们就需要调用它了

时间:2022-03-01 16:21:13

这样成功部署了攻击合约之后我们就需要调用它了,有的人可能会选择手工调用,比如在remix里一次又一次地调用攻击合约的pwn函数,这样不仅自己点的累而且发出的交易有限,成功率也不高,何况我们还得实时监控当前的区块变化,所以合适的选择是自动化运作,在这我选择了web3.js来与合约进行交互,说实话因为js代码写的并不多所以可能看起来不是很优雅,还请大佬轻喷

如图2所示,仍以以太坊为例,Bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图2中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点(例如图2中的节点1)查看合约账户的账户状态。

创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。

智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。

调用智能合约和转账类似,A->B转账,如果B是个普通账户,那么这只是一个普通的转账交易,和BTC的转账交易是一样的,如果B是合约账户的话,那么这个转账其实是发起一次对B的合约的调用,具体调用的是合约中的哪个函数是在数据域(data域)中另外说明的。

但是“账户模型”的区块链系统中,一般会包含转账交易和智能合约调用交易。交易的执行结果一般要经过虚拟机执行得到,考虑合约调用的场景,交易的执行结果很可能并不体现在交易内容和账户空间变更结果中;因此,交易的回执数据需要独立存储,为了统一账户创建、账户间转账、智能合约调用等多种交易的执行结果,系统一般会设计统一的回执数据组织格式。

标签:合约 成功 我们

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( zztaobao@vip.qq.com )