时间:2023-07-21|浏览:218
文章概览: - WalletConnect能做什么 - WalletConnect的市场支持情况 - WalletConnect消息通讯工作原理 - WalletConnect消息安全如何保障 - WalletConnect如何快速接入推送
01 WalletConnect能做什么: WalletConnect是一种基于二维码建立连接的基础通讯设施。它可以用于各种交互,并默认与以太坊进行交互。如果改变默认的以太坊协议,就无法与其他使用WalletConnect钱包或Dapp进行兼容。
在没有WalletConnect之前,使用移动端钱包的用户需要使用Chrome插件或桌面端钱包来授权操作。这导致在移动设备上使用的用户操作和使用体验与桌面端不一致,并且需要额外的操作下载插件或钱包,非常麻烦。
02 WalletConnect的市场支持情况: 目前许多常见的钱包都支持WalletConnect,比如imToken、TokenPocket、麦子钱包和TrustWallet。
03 WalletConnect消息通讯工作原理: WalletConnect建立连接的原理是钱包端和Dapp端各自建立一个主题(Topic),对方可以订阅这个主题,从而形成了双方之间的通信通道。
具体流程如下: 1. Dapp端与中继服务器建立Socket连接; 2. Dapp端生成DappClientID(用于接收来自Dapp的消息)和DappTopic(用于接收Dapp发出的登录请求),并订阅DappClientID; 3. Dapp端向中继服务器发送DappTopic的信息,并携带DappClientID信息; 4. Dapp端展示包含DappTopic信息、中继服务器地址和密码的二维码; 5. 钱包端扫描Dapp端的二维码,解析信息并获取DappTopic、中继服务器地址和密码; 6. 钱包端与中继服务器建立Socket连接,生成WalletPeerID(用于接收来自钱包端的消息),并订阅DappTopic和WalletPeerID; 7. 钱包端接收到中继服务器转发的Dapp登录请求; 8. 钱包端处理登录请求并发送Topic为DappClientID的消息,将处理结果和WalletPeerID的信息传递回去; 9. 连接建立成功后,如果Dapp要向钱包端发送消息,则发送Topic为WalletPeerID的信息; 10. 如果钱包端要向Dapp发送消息,则发送Topic为DappClientID的信息。
钱包端和Dapp端的Topic共同组成了Session,而Session的生命周期才是Dapp和钱包双方建立连接的生命周期。WebSocket的断开并不意味着与钱包的连接断开。
04 WalletConnect通讯工作原理: WalletConnect只是一个通讯协议,可以用来传输任何信息。默认情况下,WalletConnect使用WebHook方式来实现推送服务,即在移动应用未打开的情况下通知用户处理信息。
如果一方断开了Socket连接,另一方发送的消息会暂存在中继服务器中。当下次断开连接的一方 1. 消息接收方将URL和想要接收的消息发送给消息发送方; 2. 消息发送方满足一定的条件后,会调用消息接收方的URL,通知其接收消息。
WalletConnect推送的流程如下: 1. 钱包端收到Dapp的登录请求后,如果同意登录请求,可以订阅Topic为DappClientID和FirebaseID的消息; 2. 推送服务收到订阅的Topic后,会向中继服务器发送WebHook请求以订阅Topic; 3. 如果中继服务器发现推送服务订阅的Topic有消息,会通知推送服务; 4. 推送服务找到订阅相关Topic的FirebaseID,并发起推送。
07 总结: WalletConnect是一种通过扫描QR码将桌面DApp连接到移动设备的开放性协议,实现了端到端加密技术。它为以前只能在Metamask钱包上使用的DApps世界带来了更多可能性。用户可以在不妨碍私钥安全的情况下与任何DApp进行交互,并能在移动设备上收到通知,签署并同意任何交易请求。
用戶喜愛的交易所
已有账号登陆后会弹出下载