量化合約開發需求版丨量化合約系統開發(開發方案及邏輯)丨量化合約原始碼及功能分析

xiaofufu發表於2023-02-27

  因為整個區塊鏈系統是點對點的對等網路,沒有統一的中心機構協調各個節點的行為,所以在生成區塊時,各個節點的行為都是相互獨立的,很有可能同時由多個礦工在同一區塊高度生成出2個以上的區塊來。這些區塊打包的交易很可能是不一樣的,同時滿足條件的數字n不是唯一的,多個礦工之間生成的數字n是不一樣的,但是同樣是滿足不等式的。在這種情況下,網路中的其他節點很可能同步到不同的區塊資料,並且這些資料在數學上都是合法的、有效的。當不同的節點中的不同的區塊作為當前最新區塊時,就會存在分叉的情況,即不同的礦機對同一高度的區塊生產了記憶體不一樣的新區快,並且這些礦工都找到了滿足不等式的數字n。


  def transfer_eth(target_address,amount,gas_price=5,gas_limit=21000):


  nonce=web3.eth.getTransactionCount(address)


  params={


  'nonce':nonce,


  'to':target_address,


  'value':web3.toWei(amount,'ether'),


  'gas':gas_limit,


  'gasPrice':web3.toWei(gas_price,'gwei'),


  'from':address,


  }


  signed_tx=web3.eth.account.signTransaction(params,private_key=private_key)


  tx_hash=web3.eth.sendRawTransaction(signed_tx.rawTransaction)


  return tx_hash


  def transfer_token(token_contract,target_address,amount,gas_price=5,gas_limit=500000):


  params={


  "from":address,


  "value":0,


  'gasPrice':web3.toWei(gas_price,'gwei'),


  "gas":gas_limit,


  "nonce":web3.eth.getTransactionCount(address),


  }


  func=token_contract.functions.transfer(target_address,web3.toWei(amount,"ether"))


  tx=func.buildTransaction(params)


  signed_tx=web3.eth.account.sign_transaction(tx,private_key=private_key)


  tx_hash=web3.eth.sendRawTransaction(signed_tx.rawTransaction)


  return tx_hash


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2937103/,如需轉載,請註明出處,否則將追究法律責任。

相關文章