当前位置:首页 » 以太坊知识 » 以太坊call函数发起方

以太坊call函数发起方

发布时间: 2025-04-03 17:46:38

A. GSN这个项目来自哪里

什么是GSN

以太坊来说,转账、发Token、调用合约等交易都是需要支付手续费Gas,不能白piao,Gas是保障以太坊网络稳定运行的重要手段。
然而在现实生活中,为了推广产品,免费甚至补贴用户是互联网企业惯用的获客手段,普罗大众早已被这些企业教育的习惯了白P。
如果企业开发了一款Dapp,想要推广到市场,告诉用户“我们这是基于区块链的,你要想使用得先去买得以太币,哦,现在一个以太币要3000多人民币!”,估计大多数人直接转身离开,剩下得大多数直接跳脚骂娘了,只有很少数极客可能会去体验下。这也是Dapp很难被大众接受的一个重要原因。

为了解决这个问题,GSN应运而出!
GSN的全称是Gas Station Network,翻译过来就是加油站网络。GSN将本该由用户支付的Gas转嫁到了其它愿意为用户买单的人身上(一般为Dapp开发者),并且能够保证交易的真实性。
image.png

GSN目前有两个版本,v1和v2,在实现和流程上有所不同。本篇内容是基于v2版本整理。
二、相关角色

2.1 客户端-Client

客户端也就是各种Dapp,是GSN架构的最上层。客户端负责发起对原交易进行签名,并将签名后的原交易发送到中继服务器中。

2.2 中继服务器-RealServer

中继服务器主要用来处理用户的元交易请求,主要的功能包括:

通过调用中继路由(RelayHub)合约,判断付款人(Paymaster)是否允许为该笔交易支付手续费,并且有足够的以太币
中继服务器将交易发送到链上
对于中继服务器,多个客户端可以使用一个,也可以一个客户端对应一个。
2.3 付款人-Paymaster

付款人交易Gas的实际支付者。付款人是一个智能合约,该合约最重要的是交易过滤器” acceptRelayedCall“,决定了可以为哪些交易支付费用。
常用的过滤器包括:

白名单
令牌认证
对特定方法放行
链下委托授权
2.4 中继路由-RelayHub

中继路由本身是一份智能合约,提供的功能包括:

维护一份中继器列表,供客户端查询
提供RelayHub.balances[recipient]方法,供中继服务器在支付Gas前检查Dapp开发者已存入足够的ETH
中继路由合约可以自行部署,也可以直接使用GSN提供的。自行部署的RelayHub无法共享已存在的中继器。
以太坊主网上的RelayHub合约地址:
2.5 中继接收合约-RelayRecipient

每个支持GSN的DApp都需要继承RelayRecipient,并提供与RelayHub通信的接口。在部署Dapp合约时,需要初始化RelayHub的地址。
需要注意的是,在继承RelayRecipient合约后,使用_msgSender()替代msg.sender获取元交易的用户信息。

B. Consensys CTF - "以太坊沙盒"

Consensys CTF “以太坊沙盒”的解答如下

一、合约解析

  • 首先,通过contractlibrary.com网站解析二进制代码,得到了一个典型的Solidity源码结构。
  • 合约包含4个函数和两个uint256[]数组全局变量。

二、函数分析

  • 合约中的函数包括对array_0的赋值、set_array、owners以及一个复杂的涉及delegatecall的函数40x2918435f。
  • 函数40x2918435f复杂,需满足三个条件,其中一个条件是msg.sender必须是owner数组中的一员。

三、owner数组的改变

  • 在没有直接设置owner数组的函数下,可以通过set_array间接改变owner数组。
  • 利用Solidity中动态数组在storage的存储方式,计算array[0]和owner[0]对应的storage key差值,通过set_array方法调整owner数组。

四、满足第三个条件

  • 构造一个不含特定字节的合约。
  • 通过手动编写合约并利用ctf的第四个函数delegatecall该合约,实现清理sandbox中的ETH。

五、利用create2函数

  • 使用create2函数创建临时合约。
  • 将合约地址作为参数赠予该临时合约,其初始化代码执行selfdestruct函数,转移所有ETH至合约部署人。

六、完成清理过程

  • 通过opcode编写runtime code,部署HackCTF合约。
  • 调用ctf的第四个函数,将合约地址作为参数传入,完成清理过程。

以上方法提供了对以太坊沙盒合约的深入理解和破解策略,旨在帮助理解合约的攻击与防御机制。

C. 以太国际空间谁知道怎么玩。EIS币怎么交易

现在我们大家都很关注关于以太坊方面的问题,那么关于以太币怎么交易?我想我们大家应该会很想了解一些内容,那么下面就让我们小编在这里就来为大家好好的介绍一下很多内容关于以太币怎么交易?以太坊的交易最直观解释:从外部账户发送到区块链上的另一个账户的消息和签名的数据包。

包含如下内容:
发送者的签名
接收的地址
转移的数字货币数量等内容
以太坊上的交易都是需要支付费用,和比特币以比特币来支付一定的交易费用不同,以太坊上固定了这个环节,那么这个间接理解是以太坊的一种安全防范错误,防止了大量的无意义的交易,保证一定的安全性,特别是智能合约的创建、执行、调用都需要消耗费用,那么也保证了整个系统的稳定性,防止了一些链上无意义的恶意行为。
交易手续费
以太坊的核心是EVM,以太坊虚拟机,那么在EVM中执行的字节码都是要支付费用。也就是经常看到的Gas、Gas limit、Gas Price这几个概念。
Gas:字面理解就是汽油,以太坊和日常的汽车一样需要Gas才能运行。Gas是一笔交易过程中计算消耗的基本单位。有一个列表可以直观看到在以太坊中操作的Gas消耗量:
操作Gas消耗具体内容
step1执行周期的默认费用。
stop0终止操作是免费的。
suicide0智能合约账户的内部数据存储空间,当合约账户调用suicide()方法时,该值将被置为null。
sha320加解密
sload20在固定的存储器中去获取
sstore100输入到固定的存储器中
balance20账户余额
create100创建合约
call20初始化一个只读调用
memory1扩充内存额外支付的费用
txdata5交易过程中数据或者编码的每一个字节的消耗
transaction500交易费用
contract creation53000homestead中目前从21000调整到53000
所以有些公司或者个人觉得区块链技术去中介化,不需要中心服务器,这种开发模式是比较便宜的,但是事实上区块链的开发不比之前的那些传统软件开发来的便宜。
Gas Price:字面理解汽油价格,这个就像你去加油站,95#汽油今天是什么价格。一个Gas Price就是单价,那么你的交易费用=Gas*Gas Price,然后以以太币来ether来支出。当然你觉得我不想支付费用,你可以设置Gas Price为0,但是选择权在矿工手中,矿工有权选择收纳交易和收取费用,那么最简单的想想很难让一个矿工去接收一个价格很低的交易吧。另外提一句,以太坊默认的Gas Price是1wei。
Gas Limit:字面理解就是Gas的限制,限制是必要的,没有限制就没有约束。这个Gas Limit是有两个意思的。首先针对单个交易,那么这个表示交易的发起者他愿意支付最多是多少Gas,这个交易发起者在发起交易的时候需要设置好。还有一个是针对区块的Gas Limit,一个单独的区块也有Gas的限制。
假设几个场景来说明Gas的使用:
用户设置Gas Limit,那么在交易过程中,如果你的实际消耗的Gas used
用户设置Gas Limit,那么交易过程中,如果你的实际消耗的Gas used > Gas Limit,那么矿工肯定发现你的Gas不足,这个交易就无法执行完成,这个之后会回滚到执行之前的状态,这个时候矿工会收取Gas Price*Gas Limit。
区块的Gas Limit,区块中有一个Gas上限,收纳的交易会出现不同的用户指定的Gas Limit。那么矿工就会根据区块限制的Gas Limit来选择,“合理”选择打包交易。
具体交易
以太坊上交易可以是简单的以太币的转移,同时也可以是智能合约的代码消息。列个表格看下交易的具体内容:
代码内容
from交易发起者的地址、不能为空,源头都没有不合理。
to交易接收者的地址(这个可以为空,空的时候就表示是一个合约的创建)
value转移的以太币数量
data数据字段。这个字段存在的时候表示的是,交易是一个创建或者是一个调用智能合约的交易
Gas Limit字面理解就是Gas的限制,限制是必要的,没有限制就没有约束。这个Gas Limit是有两个意思的。首先针对单个交易,那么这个表示交易的发起者他愿意支付最多是多少Gas,这个交易发起者在发起交易的时候需要设置好。还有一个是针对区块的Gas Limit,一个单独的区块也有Gas的限制。
Gas Price一个Gas Price就是单价,那么你的交易费用=Gas*Gas Price,然后以以太币来ether来支出。以太坊默认的Gas Price是1wei。
nonce用于区别用户发出交易的标识。
hash交易ID,是由上述的信息生成的一个hash值
r、s、v交易签名的三部分,交易发起者的私钥对hash签名生成。
交易分三种类型
转账:简单明了的以太坊上的以太币的转移,就和比特币类似,A向B转移一定数量的以太币。这种交易包含:交易发起者、接收者、value的数量,其余类似Gas Limit、hash、nonce都会默认生成。所以你会看到一段代码:
web3.eth.sendTransaction({ from: "交易发起者地址", to:“交易接收者地址”, value: 数量});
智能合约创建:创建智能合约就是把智能合约部署到区块链上,那么这个时候to是一个空的字段。data字段则是初始化合约的代码。所以看到代码:
web3.eth.sendTransaction({ from: "交易发起者地址", data: "contract binary code"});
智能合约执行:合约创建部署在区块链上,那么执行就是会加上to字段到要智能合约执行的地址,然后data字段来指定调用的方法和参数的传递,所以看到代码:
web3.eth.sendTransaction({ from: "交易发起者地址", to:“合约执行者地址”, data:“调用的方法和参数的传递”});
以上大致就是交易的类型。
交易的确认
和比特币一样,以太坊的交易需要后续区块确认后,节点同步后、才能确认。简单理解就是多挖出一些区块来,通过验证后这一笔交易才算确认,以太坊时常会出现拥堵的情况,所以有时候需要等待确认。
转账、合约交易流转
首先交易发起者A发起一笔转账交易,那么发送的格式如下:
代码具体内容
from交易发起者的地址
to交易接收者的地址
value转移的以太币数量
GasGas的量
Gas PriceGas的单价
data发送给接收者的消息
nonce交易编号
节点验证:以太坊网络中会有节点收到A发送出来的消息,那么会去检查这个消息格式时候有效,然后计算Gas Limit。这个时候回去验证A的以太坊余额,如果余额不足,那么就返回错误,不予处理。一旦A发送的消息通过了节点的验证,那么节点就会把这个交易放到交易存储池中。并广播到区块链网络。
矿工验证:那么写入区块链必须要矿工打包,矿工在接收到A发出的交易,会和其他交易一块打包,普通转账交易打包即可,那么合约调用的交易则需要在矿工本地的EVM上去执行调用的合约代码,代码执行过程中检查Gas的消耗。一旦Gas消耗完了,那么就回滚,如果Gas足够那么返回多余的Gas。并广播到区块链网络。
其余节点:重复节点验证步骤,然后合约也会在本地EVM上执行验证。通过验证后同步区块链。
首先还是发起者A发起一个创建智能合约的交易请求。格式如下:
代码具体内容
from交易发起者的地址
to0
value转移的以太币数量
GasGas的量
Gas PriceGas的单价
data合约代码
nonce交易编号
节点验证:
以太坊网络中会有节点收到A发送出来的消息,检查交易是否有效,格式是否正确,验证交易签名。计算Gas,确定下发起者的地址,然后查询A账户以太币的余额。如果余额不足,那么就返回错误,不予处理。一旦A发送的消息通过了节点的验证,那么节点就会把这个交易放到交易存储池中。并广播到区块链网络。
矿工验证:
矿工将交易打包,那么会根据交易费用和合约代码,来创建合约账户,在账户的空间中部署合约。这里说下合约地址(智能合约账户的地址是有发起者的地址和交易的随机数作为输入,然后通过加密算法生成)。交易确认后会把智能合约的地址返回给A。且广播到区块链网络。
其余节点:
重复节点验证步骤,验证区块,在节点的内存池中更新A的智能合约交易,同步区块链,且智能合约部署在自己本地的区块链中。

D. Foundry的基本使用总结

本文列举了 foundry 中常用的命令,方便后续查阅。使用 foundry 的工具主要涉及三大组件,分别对应不同的功能,接下来将详细介绍每个组件的使用方法和应用场景。

在使用 foundry 之前,需要先安装。可以通过访问 foundry 的官方网址 getfoundry.sh 进行安装。对于 mac 系统用户,可以使用以下命令进行安装:

foundry

foundry 工具包含三大组件,分别是 cast、anvil 和 forge。

**cast 使用**

cast 是用于执行以太坊 RPC 调用的命令行工具。它支持智能合约调用、发送交易和检索链数据等操作。cast 与 web3 的交互十分便捷,即使是非代码开发者也能轻松使用进行链上数据查询。

使用示例:

cast rpc eth_blockNumber --rpc-url=$ETH_RPC_URL

cast 支持环境变量 ETH_RPC_URL,读取时无需在命令中体现,只需设置该变量即可。

**cast 查询功能**

- **区块高度**:使用 `cast rpc eth_blockNumber` 查询。
- **区块信息**:使用 `cast block` 查询。
- **交易信息**:使用 `cast tx` 查询。
- **交易回执查询**:使用 `cast receipt` 查询。

**使用 jq 进行数据处理**

`jq` 是一个灵活的轻量级命令行 JSON 处理器,用于处理 JSON 输入并生成 JSON 输出。可应用于处理 cast 查询结果。

**交易模拟**

`cast run` 命令可用于模拟交易,以进行测试或研究特定交易场景。

**钱包相关功能**

`cast wallet new` 可创建新钱包,通过 `cast wallet sign` 进行签名操作。此外,`cast resolve-name` 和 `cast lookup-address` 功能用于 ENS 查询。

**合约相关功能**

在使用查看源代码功能前,需设置 `ETHERSCAN_API_KEY` 环境变量。`cast etherscan-source` 可用于查看合约源代码,通过 `-d` 参数保存结果。调用合约函数则使用 `cast call`。

查询合约存储位置的 `cast index` 命令可根据类型、键和槽位编号计算存储位置。

**anvil 使用**

`anvil` 提供了模拟从主网 fork 的功能,通过 `casat —fork-url=$ETH_RPC_URL` 实现。常用命令参数包括 `—accounts`、`—balance` 和 `—fork-block-number`。

**forge-智能合约开发框架**

`forge init` 命令初始化项目,`forge build` 编译代码,`forge test` 进行自动化测试。日志打印可通过 `emit log` 或 `console2.log` 实现,确保在使用 `forge test` 时使用 `—vvv` 参数以显示打印内容。

`cheatcode` 功能允许在测试合约中通过 `vm` 修改虚拟机状态,如 `vm.warp` 修改时间戳、`vm.startPrank` 和 `vm.stopPrank` 修改发件人、`vm.deal` 修改余额等。

`forge snapshot` 功能允许在每个测试用例的 gas 使用上创建快照,有助于优化 gas 费用。

**代码示例**

### 修改 ERC20 代币余额
在进行 ERC20 代币余额修改时,可以使用 `vm.deal` 函数。如果在测试环境中未部署 ERC20 合约,可通过 fork-url 直接使用主网的 ERC20 合约。

### fork-url 在代码中的实现
在代码中实现 fork-url 可以通过 `vm.envAddress` 函数读取 vm 中的环境变量地址,进而实现针对不同测试网络的灵活测试用例编写。

本文详细介绍了 foundry 的基本使用方法,旨在为开发者提供便捷的工具链,提高智能合约开发和测试的效率。通过上述指南,开发者能够更加熟练地掌握 foundry 的核心功能,为区块链项目开发提供有力支持。

E. 井通币值得投资吗

1.投资有风险,不能直接判断是否值得投资,井通不只是是一个项目,而是一个系,因为这个创始人割韭菜太牛,并不只发了这一个币,而是发了前前后后十几个币。 井通创始人周沙,笔名井底望天,别看他的笔名这么谦虚,割起韭菜那可一点也不含糊。周沙的个人资料,贵州人,美国国籍,2013年在硅谷开创井通科技公司,在无锡和北京开设分公司,发行多个数字货币,ICT智通链、TCT、SWTC、FST、墨客MOAC、SPC、CALL、大数据DADT、VCC等十几种币。 大部分已经归零或下架,只剩下MOAC和SWTC可以交易。这个周沙绝对是一个割韭菜高手,不只是发行数字货币,还组织资金盘“斯威特联盟”割韭菜5000软妹币。 每个币都是以割韭菜收场,目前他发行的十几个币,只剩下两个币还在流通,只不过已经接近归零了。 剩下的两个币,其中之一就是swtc,这个币号称第一公链,竟然代码提交次数是空白,你就知道这是一个骗子项目了。
2.这个币SWTC 是SWTC公链的原生数字资产,说的好像这个项目真的做了一个公链,准备与其他公链竞争一样, 不管怎么样,这个代币还是上链了,只不过上的是两个小交易所,一个是币赢国际站,一个是满币。 SWTC Coin的应用场景包括但不限于以下方面:增值服务、激励手段、信用质押、跨链跨通证计价单位。同时,SWTC Coin可以保障系统运行的稳定和安全,提高恶意攻击的成本 是不是看上去非常专业,不得不说骗子现在越来越专业,不然怎么能够骗到那么多钱? 我们再看看他剩下另一个还可以交易的币墨客MOAC,走势跟swct一模一样,一路走低,所有进场的都被埋了。 最高价161元,现在剩下0.1元,这是跌了多少?我都不会算了,是跌了1610倍吗?还能不能跌的再狠一点? 这两个虽然接近归零,还是井通发行的最好的两个币,好歹还能在交易所流通,而其他币要么已经归零,或者被交易所下架。 在币圈这个很少有盈利项目的地方,玩的就是共识,玩的就是口碑。
拓展资料:
1.19年开始走传销的路线,提供36%的年化收益,是不是相当诱人?但是币价却一路走低,从8厘跌到1厘。 传销盘一般都是先上涨,然后暴跌割韭菜,但是井通币swtc不一样,从头到尾都是下跌。 传销的后进场者一般从市场上买币,但是井通币不一样,直接从创始人的钱包里买币,不管买多少,市场上的币价都不会上涨。通过这种方式创始人出货100多亿swtc,价值5000万人民币。 井底望天割韭菜的套路并不是特别高明,但是他的胆子非常大,敢用国家队的旗号骗人,所以骗了很多人,而且井通发行数字货币,不仅收以太坊,他连法币也敢收,一般项目方发币,只敢收以太坊或比特币,很少有人敢收法币的。
2.创始人井底望天之所以敢如此明目张胆的割韭菜,还有一个重要原因是他的美国国籍,这种人可能只计划在国内割韭菜,赚了钱去美国享受,反正他已经是美国人了。 但是,只要犯法,中国的法律也照样会制裁你。 普通人想要在币圈不被黑心项目方割韭菜,唯一的办法就是只买比特币,长期看比特币跑赢99%的山寨币。

热点内容
以太坊call函数发起方 发布:2025-04-03 17:46:38 浏览:542
如果区块链被骗报警是否有用 发布:2025-04-03 17:14:29 浏览:364
04eth是多少钱 发布:2025-04-03 16:35:54 浏览:886
ltc什么时候出货最好 发布:2025-04-03 16:34:33 浏览:423
eth是什么生长素 发布:2025-04-03 16:27:17 浏览:728
eth硕士二月 发布:2025-04-03 16:16:38 浏览:907
比特币多少钱一个合适 发布:2025-04-03 16:16:31 浏览:43
一个btc等于bth 发布:2025-04-03 16:01:41 浏览:151
郑州区块链软件公司 发布:2025-04-03 15:58:32 浏览:965
币圈合约平台排行 发布:2025-04-03 15:40:49 浏览:723