以太坊“免”Gas发交易GSN简介

2020-09-14 18:55 栏目:经验之谈 来源:网络整理 查看()

1.什么是GSN

对于以太网,诸如转账、发送令牌、调用合同等交易。这是保证以太网稳定运行的重要手段。但在现实生活中,为了推广产品,免费甚至补贴用户是互联网企业获取客户的常用手段,而大众早就习惯了这些企业的教育。如果公司开发了一个Dapp,并想将其推向市场,告诉用户,“我们是基于区块链的。如果要用,首先要买Ethereum。哦,现在一个以太馆要3000多人民币!”估计大部分人都是直接转身离开,剩下的都是直接跳楼骂人,可能只有少数极客会经历。这也是Dapp难以被大众接受的重要原因。

为了解决这个问题,GSN应运而生!GSN全称是加油站网络,翻译过来就是加油站网络。GSN将本应由用户支付的Gas转让给其他愿意为用户支付的人(一般是Dapp开发者),并能保证交易的真实性。

以太坊“免”Gas发交易GSN简介

GSN目前有两个版本,v1和v2,在实现和流程上都有所不同。本文基于v2版本。

二、相关角色

2.1客户-客户

客户端,即各种Dapp,是GSN架构的顶层。客户端负责对原始交易进行签名,并将签名后的原始交易发送给中继服务器。

2.2中继服务器-RealServer

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

通过调用RelayHub合同,判断付款人(Paymaster)是否允许支付交易的手续费,是否有足够的以太网。

中继服务器将事务发送到链。对于中继服务器,多个客户端可以使用一个,或者一个客户端可以对应一个。

2.3付款人-付款人

付款人交易气体的实际付款人。付款方是一个智能合同,这个合同中最重要的是交易过滤器“acceptRelayedCall”,它决定了哪些交易可以付款。常用的过滤器包括:

白名单

令牌认证

特定方法的发布

链下的委托授权

2.4中继路由-中继总线

中继路由本身是一个智能契约,其功能包括:

维护一个转发器列表供客户端查询

为中继服务器提供Relay Hub balances[recipient]METHoD,以检查Dapp开发人员在支付Gas之前是否存放了足够的eth中继路由合同,Gas可以自行部署,也可以直接由GSN提供。自行部署的继电器不能共享现有继电器。以太网主网络上的RelayHub合同地址:

0xd 216153 c 06e 857 CD 7f 72665 e0a f1 d7d 82172 f 494

2.5中继接收合同-中继接收

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

2.6受信任的转发器-受信任的转发器

可信转发器用于验证发送方的签名和Nonce值,RelayHub通过可信转发器将元事务转发给Dapp合同。

第三,结构

GSN的整体架构如下图所示。

以太坊“免”Gas发交易GSN简介

一个完整的过程如下:1。客户端从中继服务器查询可用中继列表;2.客户端将原始事务发送给关系服务器;3.中继服务器验证Dapp开发者有足够的ETH来支付Gas。付款人允许交易。4.中继服务器将已签名的交易返回给客户端,该交易已由中继服务器中的中继支付。5.RelayServer将事务发送到RelayHub合同。6.RelayHub协定调用内部受信任的转发器来验证事务的签名和随机数。7.受信任的转发器通过验证后,将调用接收方合同。

四.案例

https://metacoin.opengsn.org/政府官员提供的元币案例

V.参考

GSNv2官方网站文档:https://docs.opengsn.org/learn/index.html

gsnv 2 GitHub https://github.com/opengsn/gsn

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发