In meinem Smart Contract möchte ich die random.org-API verwenden, um eine Zufallszahl zu generieren, aber wenn ich den verifizierten Quellcode veröffentliche, möchte ich nicht, dass jemand sieht, welchen API-Schlüssel ich verwende. Der Etheroll-Vertrag verwendet die random.org-API und tut dies wie folgt:
bytes32 rngId = oraclize_query("nested", "[URL] ['json(https://api.random.org/json-rpc/1/invoke).result.random[\"serialNumber\",\"data\"]', '\\n{\"jsonrpc\":\"2.0\",\"method\":\"generateSignedIntegers\",\"params\":{\"apiKey\":${[decrypt] BLTr+ZtMOLP2SQVXx8GRscYuXv+3wY5zdFgrQZNMMY3oO/6C7OoQkgu3KgfBuiJWW1S3U/+ya10XFGHv2P7MB7VYwFIZd3VOMI/Os8o1uJCdGGZgpR0Dkm5QoNH7MbDM0wa2RewBqlVLFGoZX1PJC+igBPNoHC4=},\"n\":1,\"min\":1,\"max\":100,\"replacement\":true,\"base\":10${[identity] \"}\"},\"id\":1${[identity] \"}\"}']", gasForOraclize);
Ich bin verwirrt, wie das funktioniert - woher kommt decrypt
es und wenn es funktioniert, wie erhalte ich eine verschlüsselte Version meines API-Schlüssels, den ich decrypt
wie oben verwenden kann?
Dies wird ausführlich in den Oracalize-Dokumenten in Ethereum > Fortgeschrittene Themen > Verschlüsselte Abfragen erklärt
Sie verwenden ein bereitgestelltes Python-Skript, um eine Zeichenfolge mit dem öffentlichen Schlüssel von Oracalize zu verschlüsseln, der in diesem Abschnitt aufgeführt ist, und nur Oracalize kann ihn entschlüsseln. Sie sind auf nur einen verschlüsselten Abfrageparameter beschränkt.
ZhouW