IPP挖礦系統開發詳情丨技術原始碼搭建

Lyr96246466發表於2023-05-06

  Web3,即Web 3.0,指下一代網際網路概念或模式,開發181公鏈2591合約開發3365微電是對較為成熟的Web2.0的改進升級版,但仍沒有被廣泛接受的定義,而被認為是一個相對的概念,甚至可以簡單理解為新一代的網際網路,不同層面,對於Web 3,都有不同的理解。


  module.exports={


  networks:{


  },


  mocha:{


  },


  compilers:{


  solc:{


  }


  }


  };


  Web3是一種全新的網際網路科技,也被稱為“去中心化網際網路”。與傳統網際網路不同,Web3使用的是去中心化的技術,因此更加安全、透明、自治。在Web3中,不存在中心化的伺服器或管理機構,而是透過區塊鏈技術、點對點網路和智慧合約等技術,實現去中心化的互動和應用。


  pragma solidity>=0.7.0<0.9.0;


  //用Remix編寫,需手動呼叫function以實現相關功能


  contract SimplePaymentChannel{


  address payable public sender;//發件人地址


  address payable public recipient;//收件人地址


  uint public expiration;//儲存合約到期時間,防止收件人一直不關閉合約,佔用發件人以太幣資源


  //建構函式,部署合約時呼叫,僅呼叫一次


  //初始化發件人地址,收件人地址,合約有效時間


  constructor(address payable recipientAddress,uint256 duration)payable{


  sender=payable(msg.sender);//msg.sender是address型別,需強制型別轉換為payable address型別


  recipient=recipientAddress;


  expiration=block.timestamp+duration;


  }


  //銷燬合約,只有收件人能銷燬合約


  function close(uint256 amount,bytes memory signature)external{


  //require()中判斷條件為true則繼續,為false則退出該function,回退該function內所有更改


  require(msg.sender==recipient);//判斷呼叫該function地址是否為收件人


  require(isValidSignature(amount,signature));//判斷收件人是否掌握有正確的的發件人訊息簽名


  recipient.transfer(amount);//把應得的以太幣傳送給收件人,誰呼叫transfer(),就給誰轉賬


  selfdestruct(sender);//銷燬當前合約,將合約剩餘資金髮送到給定地址sender


  //由於合約內容已被記錄在舊的區塊上,仍可以被查詢,但不能被再次呼叫,除非重新部署該合約


  }


  //合約有效期續期,僅有發件人可以呼叫


  function extend(uint256 newExpiration)external{


  require(msg.sender==sender);//判斷呼叫者是否為發件人


  require(newExpiration>expiration);//判斷新的有效期是否大於當前有效期


  expiration=newExpiration;//重置合約有效期


  }


  //判斷當前合約是否在有效期內


  function claimTimeout()external{


  require(block.timestamp>=expiration);//判斷當前合約是否過期,若過期,則銷燬合約


  selfdestruct(sender);//銷燬合約


  }


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

相關文章