Go-ethereum 解析ethersjs中产生的签名信息
在签名验证的过程中,我们判断签名正确的前提是,签名解析后的公钥,和发起这次动作的人是同一个公钥。
我们解析签名的需要知道,签名的消息,签名,和公钥。
按照这个思路,我们可以通过ethers实现消息的签名,也可以通过go-ethereum实现。
在签名的解析过程中,通常是由前端将上述的的已知道信息发送到后端,后端然后针对信息进行解析工作。
后端的服务中可以使用node或者golang进行编写。本文将讲述这两种解析形式。
1. ethers 消息签名
Ethers 能够通过简单的编程语句实现Metamask对某个消息进行签名
其实现的语句为:

import { ethers } from 'ethers'; // 导入ethers package
const provider = new ethers.providers.Web3Provider(window.ethereum);
console.log(provider) // 获取provider,也就是rpc服务
// 请求访问钱包
await provider.send("eth_requestAccounts", [])
const signer = provider.getSigner(); //获取签名者信息
this.userPk = await signer.getAddress(); // 获取签名者公钥
console.log(this.userPk)
le


682

被折叠的 条评论
为什么被折叠?



