售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
4. Gateway Oracle
让我们逐一理解这个原则。
以太坊和PlasmaChain网关
当有存款事件时,以太网网关和网关Oracle进行通信。这是与网关Oracle通信的机制。 PlasmaChain Gateway与以太网网关大致相同,只不过它是PlasmaChain的终点。
PlasmaChain地址映射器
PlasmaChain地址映射器的存在是为了在多个链上实现“多个帐户”的概念。通过在地址映射器上注册帐户,您可以接收ERC721令牌,因为它们已存储在PlasmaChain中。
网关Oracle
Gateway Oracle负责在以太坊(在其他链中)和PlasmaChain之间进行通信。它通常在充当PlasmaChain验证者的节点上运行,但它也可以独立运行。它监控来自以太坊或PlasmaChain的网关活动,以监控存款和取款事件。当它收到一个事件时,它会向另一个链发出一个事务。
样品交易
现在让我们详细介绍一下。
老王刚刚在以太坊主网站上使用了水系统来更换消防办公卡。他希望将新收购的消防局转移到PlasmaChain用于“Zombie Battlefield”,这是一款建立在PlasmaChain上的游戏。
法老必须在PlasmaChain地址映射器中注册他的以太坊帐户。只需注册一次。
为了证明法老拥有以太坊帐户,法老将向PlasmaChain地址映射器创建一个请求,以提供由他的以太坊帐户公钥签名的邮件。 PlasmaChain地址映射器将以太坊公钥映射到发出映射请求的PlasmaChain帐户。
法老现在准备在两条连锁店之间移动代币。
第一步是将令牌存入以太坊网关。这会将令牌的所有权转移到网关并发出存款事件。
第二步是Gateway Oracle收到此存款事件,因为它订阅了以太坊和PlasmaChain网关事件。然后,Gateway Oracle执行以下两种操作之一:
如果PlasmaChain上不存在令牌,它将根据这些规范“转换”新令牌,其所有者将是PlasmaChain网关。然后它将可用于存款人的PlasmaChain账户,并作为存款交易的一部分。
如果PlasmaChain Gateway已经拥有此令牌(如果它最初是在PlasmaChain上创建的,然后移动到另一个链,这可能会发生),那么可以从存款人的PlasmaChain帐户中检索它。
最后,通过他的PlasmaChain帐户,Pharaoh可以通过PlasmaChain网关发送提款请求,然后接收令牌。
如果法老想要在以太坊与其他人交换这张新卡,或者如果他想在他的以太坊钱包中存放稀有卡而不是用于安全的PlasmaChain钱包,他将来自PlasmaChain。网关发送传输请求,该请求由网关Oracle接收并签名。然后他可以拿出提款收据到以太坊。
如何将ERC721令牌连接到传输网关
如果您是DApp开发人员并且想要发布可转移的ERC721令牌,您可能想知道如何将ERC721令牌连接到传输网关。
第一步是在PlasmaChain和Ethereum上部署ERC721合同。合同不需要特殊,因为存款功能只是将令牌的所有权从用户转移到网关合同。但是,最好包括depositToGateway或类似功能,这些功能可以专门转移到已知的网关合同地址,这样您的用户就不必每次都填写网关地址。
Pragma solidity ^ 0.4.24;
导入'openzeppelin- solidity/contracts/token/ERC721/ERC721Token.sol';
合同MyAwesomeToken是ERC721Token('MyAwesomeToken','MAT'){ //主网网关地址 地址公共网关;
构造函数(地址_gateway)public {>
gateway=_gateway;
}
函数depositToGateway(uint tokenId)public {
safeTransferFrom(msg.sender,gateway,tokenId); }
}
在两个链上部署ERC721令牌合约后,您需要在它们之间创建映射。这会将您的令牌“注册”到网关。在此示例中,我们将在Einfair测试网络(Rinkeby)和PlasmaChain测试网络(extdev)之间创建映射。
在撰写本文时,Rinkeby传输网关的地址是:0x6f7Eb868b2236638c563af71612c9701AC30A388
由于这是一个测试网络,因此网关合同可以由织机团队清除并重新部署。因此,请务必检查SDK文档端的当前地址。
通过使用两个ERC721令牌合同的地址并证明您具有这些合同的签名,您可以通过调用extdev网关合同的addContractMapping函数来完成映射。
要证明您已将ERC721合同部署到其中一个以太坊网络,您必须提供签名(在使用部署合同的以太坊私钥签名消息时生成签名)和部署合同的以太坊事务散列。
更容易证明您已将ERC721合同部署到PlasmaChain。您只需要签署发送到PlasmaChain网关的请求,并使用部署合同的密钥来注册您的合同。然后,PlasmaChain Gateway将确保您的密钥是已部署合同的所有者。
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!