Mit dieser Frage meine ich, wenn wir versuchen, einen Glücksspielvertrag zu entwickeln, brauchen wir zufällige Eingaben. Können wir einfach die Nonce-Daten aus bestimmten Blöcken verwenden? (Ich fange gerade an, Blockchain zu lernen, ich komme aus China, es kann einige Sprachprobleme in Bezug auf meinen Ausdruck geben.)
Die Nonce-Daten sind innerhalb des Vertrages nicht verfügbar. Die im Vertragscode verfügbaren Variablen (von http://solidity.readthedocs.org/en/latest/miscellaneous.html#global-variables ) sind:
Globale Variablen
block.coinbase (Adresse): aktuelle Adresse des Blockminers
block.difficulty (uint): aktuelle Blockschwierigkeit
block.gaslimit (uint): aktuelle Blockgasgrenze
block.number (uint): aktuelle Blocknummer
block.blockhash (Funktion (uint) gibt (Bytes32) zurück): Hash des angegebenen Blocks - funktioniert nur für die 256 neuesten Blöcke
block.timestamp (uint): Zeitstempel des aktuellen Blocks
msg.data (Bytes): vollständige Anrufdaten
msg.gas (uint): verbleibendes Gas
msg.sender (Adresse): Absender der Nachricht (aktueller Anruf)
msg.value (uint): Anzahl der mit der Nachricht gesendeten Wei
now (uint): Zeitstempel des aktuellen Blocks (Alias für block.timestamp)
tx.gasprice (uint): Gaspreis der Transaktion
tx.origin (Adresse): Absender der Transaktion (vollständige Aufrufkette)
sha3(...) gibt (bytes32) zurück: Berechnen Sie den Ethereum-SHA3-Hash der (dicht gepackten) Argumente
sha256(...) gibt (bytes32) zurück: berechnet den SHA256-Hash der (dicht gepackten) Argumente
reifemd160(...) liefert (bytes20): berechnet RIPEMD von 256 den (dicht gepackten) Argumenten
ecrecover(bytes32, uint8, bytes32, bytes32) gibt (Adresse) zurück: Stellt den öffentlichen Schlüssel aus der Signatur der elliptischen Kurve wieder her
addmod(uint x, uint y, uint k) gibt (uint) zurück: compute (x + y) % k wobei die Addition mit beliebiger Genauigkeit durchgeführt wird und nicht bei 2**256 umbricht.
mulmod(uint x, uint y, uint k) gibt (uint) zurück: compute (x * y) % k wobei die Multiplikation mit beliebiger Genauigkeit durchgeführt wird und nicht bei 2**256 umbricht.
this (aktueller Vertragstyp): der aktuelle Vertrag, der explizit in eine Adresse umgewandelt werden kann
super: der Vertrag eine Ebene höher in der Vererbungshierarchie
Selbstzerstörung (Adresse): Zerstöre den aktuellen Vertrag und sende sein Geld an die angegebene Adresse
- .balance: Saldo der Adresse in Wei
- .send(uint256) gibt zurück (bool): sendet die gegebene Menge an Wei an die Adresse, gibt bei einem Fehler „false“ zurück.
Sehen Sie sich Folgendes an, wenn Sie an der Generierung von (Pseudo-)Zufallszahlen interessiert sind:
Wang
Datenschutz ist ein Menschenrecht.eth