参数流动过程
对交易参数进行RLP编码后变成data,RLP编码的data再进行 keccak256()方法进行Hash之后得到待签名的data,签名的data通过 SECP256K1.sign() 方法签名得到签名后的data(签名这里就需要私钥了,用私钥对交易参数的RLP编码keccak256()Hash之后的Data进行签名),签名后的data再进行 serializedSignature() 序列化后得到序列化的签名data,序列化的签名data在进行 SECP256K1.unmarshalSignature() 反序列化得到反序列化的data,然后根据发序列化的data解析得到R、S、V,三个值赋值给交易的R、S、V三个参数,赋值完三个参数之后,再次对对所有交易参数进行RLP编码并转成hex字符串加上0x前缀,得到的结果就是 eth_sendRawTransaction( ) RPC接口的参数,然后发起请求进行交易得到交易hash
简单总结
签名就是对交易参数进行签名得出交易参数的R、S、V的值,然后再对所有交易参数进行RLP编码发起交易
网友评论