DAPP智慧合約互助公排開發說明丨DAPP智慧合約互助公排系統開發(方案及原始碼)

xiaofufu發表於2023-02-26

什麼是DApp

  “DApp”代表去中心化應用程式。與傳統應用程式一樣,去中心化應用程式也有前端(客戶端)和後端(伺服器端)。DApp的使用者介面可以用任何語言編寫(就像傳統應用程式一樣),並且可以呼叫其後端。那麼,Dapps與傳統應用程式有何不同?DApp的後端程式碼執行在分散的對等網路(即區塊鏈)上。您可能聽說過BitTorrent、Tor、Popcorn Time——它們是在點對點網路上執行但不在區塊鏈上執行的DApp。

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

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

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

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

  智慧合約

  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;

  }
  import json

  from web3 importWeb3,HTTPProvider

  from web3.contract importConciseContract

  #compile your smart contract with truffle first

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

  abi=truffleFile['abi']

  bytecode=truffleFile['bytecode']

  #web3.py instance

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

  print(w3.isConnected())

  contract_address=Web3.toChecksumAddress("<Deployed Contract Address here>")#modify

  key="<Private key with 0x prefix here>"#modify

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

  account_address=acct.address

  #Instantiate and deploy contract

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

  #Contract instance

  contract_instance=w3.eth.contract(abi=abi,address=contract_address)

  #Contract instance in concise mode

  #contract_instance=w3.eth.contract(abi=abi,address=contract_address,ContractFactoryClass=ConciseContract)

  tx=contract_instance.functions.greet("Hello all my goody people").buildTransaction({'nonce':w3.eth.getTransactionCount(account_address)})

  #Get tx receipt to get contract address

  signed_tx=w3.eth.account.signTransaction(tx,key)

  #tx_receipt=w3.eth.getTransactionReceipt(tx_hash)

  hash=w3.eth.sendRawTransaction(signed_tx.rawTransaction)

  print(hash.hex())


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

相關文章