How does eth_sendTransaction method of ETH JSON-RPC API work

json-rpcsignature

As I understand, this method sends a transaction to the network. But in order for nodes to verify this transaction, the transaction needs to be signed right?

No where in the parameters of this method call does it indicate a signature of the transaction. The only parameters are from, to, gas, etc. How will nodes be able to verify this transaction?

On a related note, the eth_signTransaction method takes in just a transaction object, and returns the signed object. But in order to sign, a node must have the private key of the corresponding public key. Obviously, we cannot just give our private key to any random node in the network, so how does this method return the signed object?

I think I am missing something here with regard to digital signatures and private keys.

Best Answer

For eth_sendTransaction to work the client receiving the transaction should have the private key for sender address.

It is a combination of eth_signTransaction and eth_sendRawTransaction.