本文主要是介绍5.5 以太坊:以太坊源码详解5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
交易步骤
发起交易:制定目标地址和交易金额,以及gas和gaslimit
交易签名:使用账户的私钥对交易进行签名
提交交易:把交易添加到交易缓冲池中(会先对签名进行验证)
广播交易:通知EVM执行,同时把交易广播到其他节点
具体分析
1、发起交易
func (s *PublicTransactionPoolAPI) SendTransaction(ctx context.Context, args SendTxArgs) (common.Hash, error) {// Look up the wallet containing the requested signeraccount := accounts.Account{Address: args.From}// 得到钱包wallet, err := s.b.AccountManager().Find(account)if err != nil {return common.Hash{}, err}if args.Nonce == nil {// Hold the addresse's mutex around signing to prevent concurrent assignment of// the same nonce to multiple accounts.s.nonceLock.LockAddr(args.From)defer s.nonceLock.UnlockAddr(args.From)}// Set some sanity defaults and terminate on failureif err := args.setDefaults(ctx, s.b); err != nil {retu
这篇关于5.5 以太坊:以太坊源码详解5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!