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

venus-wallet 代码解析 笔记

liumuhui 2年前 (2023-06-28) 阅读数 201 #技术
文章标签 Walletvenus-wallet
  1. 必须开启一个wallet http服务才能产生公私钥,也就是说直接用cmd无法产生本地账户。不方便。
  2. 不依赖别的任何服务。可以通过websocket连接gateway,为其服务。wallet-event/listenevent.go:NewAPIRegisterHub()方法会连接gateway,为其提供WalletList和WalletSign两个接口服务。
  3. 通过build/builder.go文件的代码把storage/wallet.go中的wallet类注册到rpc server中为外部提供钱包的各种api服务。同时也是通过build/builder.go文件的代码把common/api_common.go中的Common类注册到rpc server中为外部提供各种auth服务。
  4. auth服务提供了外部用户访问wallet服务是的权限控制能力。
  5. storage/wallet.go:wallet类进行walletnew方法调用时,会通过w.bus.Publish("wallet:add_address", addr)通知gateway。通知方法是
    _ = bus.Subscribe("wallet:add_address", func(addr address.Address) {  
    log.Infof("wallet add address %s", addr)  
    err := apiRegister.AddNewAddress(context.TODO(), []address.Address{addr})  
    if err != nil {  
      log.Errorf("cannot add address %s, %s", addr, err.Error())  
    }  
    })

    但是为什么要通知gateway呐??

版权声明

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

发表评论:

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

热门