Matic馬蹄鏈dapp開發功能丨Matic馬蹄鏈dapp系統開發(開發案例及原始碼)

xiaofufu發表於2023-03-11

  Dapps開發包括三個簡單的步驟:


  在區塊鏈網路上部署智慧合約


  從部署的智慧合約中讀取資料


  將交易傳送到部署的智慧合約


  智慧合約


  每個程式設計師都用他們最喜歡的程式語言執行了一個“hello world”程式,以瞭解執行該語言的基礎知識。這是我們使用Solidity語言編寫的簡單的“hello world”版本的智慧合約,我們可以在區塊鏈上新增問候語並檢索它。Solidity是編寫智慧合約最常用的語言,它編譯為可以在節點上執行的以太坊虛擬機器上執行的位元組碼。


  pragma solidity^0.5.7;


  contract greeter{


  string greeting;


  function greet(string memory _greeting)public{


  greeting=_greeting;


  }


  function getGreeting()public view returns(string memory){


  return greeting;


  }


  }


  您可以透過傳遞字串值使用greet()方法新增問候語,並使用getGreting()方法檢索問候語。


  1.在區塊鏈網路上部署智慧合約


  a)建立專案:開發方案及功能I35案例7O98系統O7I8


  mkdir pythonDapp


  cd pythonDapp


  truffle init


  成功初始化專案後,轉到您的資料夾並在/contracts目錄中建立greeter.sol檔案。在網路上部署合約之前,我們必須編譯它並構建工件。


  b)智慧合約的編譯:


  因此,對於編譯,我們將使用Truffle solc編譯器。在您的主目錄中,執行以下命令:


  truffle compile


  (or)


  truffle.cmd compile#(for windows only)


  上面的命令將在/contracts目錄中編譯你的合約,並在/build目錄中建立二進位制工件檔案greeter.json。


  c)部署合約:需求及原始碼部署唯:mrsfu123


  開啟您的Python IDLE編輯器,並在主目錄deploy.py中使用以下程式碼建立一個新檔案,然後在您的目錄中執行py deploy.py。


  import json


  from web3 importWeb3,HTTPProvider


  from web3.contract importConciseContract


  #web3.py instance


  w3=Web3(HTTPProvider(" key>"))


  print(w3.isConnected())


  key="<Private Key here with 0x prefix>"


  acct=w3.eth.account.privateKeyToAccount(key)


  #compile your smart contract with truffle first


  truffleFile=json.load(open('./build/contracts/greeter.json'))


  abi=truffleFile['abi']


  bytecode=truffleFile['bytecode']


  contract=w3.eth.contract(bytecode=bytecode,abi=abi)


  #building transaction


  construct_txn=contract.constructor().buildTransaction({


  'from':acct.address,


  'nonce':w3.eth.getTransactionCount(acct.address),


  'gas':1728712,


  'gasPrice':w3.toWei('21','gwei')})


  signed=acct.signTransaction(construct_txn)


  tx_hash=w3.eth.sendRawTransaction(signed.rawTransaction)


  print(tx_hash.hex())


  tx_receipt=w3.eth.waitForTransactionReceipt(tx_hash)


  print("Contract Deployed At:",tx_receipt['contractAddress'])


  匯入的web3庫和所有其他必需的模組


  透過指向Ropsten Infura節點啟動web3提供程式


  新增了用於簽署交易的帳戶地址和私鑰。不要忘記在程式碼中新增您的憑據。


  透過指向Truffle編譯的工件檔案greeter.json的abi和位元組碼啟動合約例項


  新增了帶有隨機數、gas、gasPrice等引數的construct_txn。此處,gas是指交易應在以太坊中使用和支付的最大計算資源量。gasPrice是指在交易中使用該數量的gas時的最小Ether數量。to指的是您傳送交易的地址。僅當您將Ether傳送到帳戶或智慧合約時才需要to引數。


  使用我們的私鑰簽署交易並在網路上廣播。


  在控制檯中記錄交易雜湊和部署的合約地址。根據以太坊的說法,事務處理時間<20秒。所以你必須等待20秒才能獲得部署的合約地址。您的後端現在已成功部署在以太坊區塊鏈上。現在您可以使用此地址與您的智慧合約進行互動。複製此合約地址。


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

相關文章