区块链 区块链技术 比特币公众号手机端

venus-gateway 代码解析

liumuhui 2年前 (2023-06-28) 阅读数 196 #技术
文章标签 venusgateway
  1. gateway只是转发链组件(miner,messager)发送给本地组件(wallet,cluster,market)的一个代理,中间不会存储任何信息,所以也就没有用数据库。
  2. gateway也需要在auth服务中注册,也就是依赖auth组件,只依赖这一个服务,剩下的服务都是反向依赖gataway。反响依赖的含义是wallet,cluster,market本地组件不需要暴露组件服务的ip,而是通过websocket协议连接gateway,这样gateway需要调用本地组件时,通过websocket发起请求。
  3. 本地组件wallet通过请求walletevent/wallet_event.go的(w WalletEventStream) ListenWalletEvent()rpc接口方法来进行websocket连接的。通过这个方法连接时,gateway会生成一个golang 的channel,然后把channel通过 (w walletConnMgr) addNewConn()方法缓存起来,以备gateway向wallet服务发起请求。例如:miner服务需要签名时,通过rpc接口发送WalletSign请求,这个时候(w WalletEventStream) WalletSign()方法来处理这个http的rpc请求,处理方式是利用(w walletConnMgr) getChannels()方法获取channel,然后对channel发送walletSign请求给wallet。
版权声明

本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门