普瑞緹Protradex合約鏈上分紅系統開發

lxqy1668發表於2023-05-09

可以發現,{I88公鏈-I928合約-開發8024},這是在犧牲一點效率的情況下,獲得了極大的安全性。首先沒有一本中央大賬本了,所以無法摧毀。每個節點都僅僅是系統的一部分,每個節點權利相等,都有著一模一樣的賬本。摧毀部分節點對系統一點都沒有影響。其次,無法左臂,因為除非你能控制系統內大多數人的電腦都進行修改,否則系統會參照多數人的意見來決定什麼才是真實結果,結果會發現修改自己的賬本完全沒有意義(因為別人不承認)。其次,由於沒有中心化的中介機構存在,讓所有的東西都透過預先設定的程式自動執行,不僅能夠大大降低成本,也能提高效率。而由於每個人都有相同的賬本,能確保賬本記錄過程是公開透明的。

  

  //Create a new`Token`contract and return its address.

  

  //From the JavaScript side,the return type

  

  //of this function is`address`,as this is

  

  //the closest type available in the ABI.

  

  return new OwnedToken(name);

  

  }

  

  function changeName(OwnedToken tokenAddress,bytes32 name)public{

  

  //Again,the external type of`tokenAddress`is

  

  //simply`address`.

  

  tokenAddress.changeName(name);

  

  }

  

  //Perform checks to determine if transferring a token to the

  

  //`OwnedToken`contract should proceed

  

  function isTokenTransferOK(address currentOwner,address newOwner)

  

  public

  

  pure

  

  returns(bool ok)

  

  {

  

  //Check an arbitrary condition to see if transfer should proceed

  

  return keccak256(abi.encodePacked(currentOwner,newOwner)

  

  function airdrop()public{

  

  require(

  

  airdroprecord[msg.sender]==false,

  

  "you already got your airdop"

  

  );

  

  airdroprecord[msg.sender]=true;

  

  balances[msg.sender]+=30;

  

  }

  

  function bet(uint256 value,uint256 mod)public{

  

  address _addr=msg.sender;

  

  //make sure pseudo-random is strong

  

  require(lasttime!=block.timestamp);

  

  require(mod>=2&&mod<=12);

  

  require(logger[msg.sender]<=20);

  

  logger[msg.sender]+=1;

  

  require(balances[msg.sender]>=cost);

  

  //watchout,the sender need to approve such first

  

  balances[msg.sender]-=cost;

  

  //limit

  

  value=value%mod;

  

  //not contract

  

  uint32 size;

  

  assembly{

  

  size:=extcodesize(_addr)

  

  }


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

相關文章