Izlases Beacon Alpha API demonstrācijas 2. daļa
Izpētiet nejaušās bākas līguma metodes un notikumus
Pirmajā daļā mēs parādījām, kā palaist vienkāršu tīmekļa lietotni, kurā tiek izmantots mūsu izlases bākas alfa API līgums. Šajā ziņojumā mēs centīsimies sniegt jums detalizētāku rokasgrāmatu, kā sazināties ar līgumu, un pārskatu par mūsu alfa API definētajām metodēm.
KeepRandomBeacon.sol
Šis līgums ir saskarne ar mūsu “Treshold relay”, drošu mehānismu, kas balstīts uz Treshold parakstu shēmu, un tas ļauj mums nejauši atlasīt nodrošinātājus jaunai glabāšanai. Treshold relay ir diezgan sarežģīts priekšmets, un tas ir pelnījis atsevišķu ziņu, bet, ja vēlaties uzzināt vairāk, jūs varat apskatīt mūsu dokumenta 6.2.2.
Mūsu demonstrācijas gadījumam ir nepieciešama tikai viena metode un tai atbilstošais notikums. Šeit ir metodes requestRelayEntry piemērs, kuru mēs izsauksim:
1 /**
2 * @dev Creates a request to generate a new relay entry, which will include a
3 * random number (by signing the previous entry's random number).
4 * @param blockReward The value in KEEP for generating the signature.
5 * @param seed Initial seed random value from the client. It should be a cryptographically generated random value.
6 * @param callbackContract Callback contract address.
7 * @param callbackMethod Callback contract method signature.
8 * @return An uint256 representing uniquely generated ID. It is also returned as part of the event.
9 */
10 function requestRelayEntry(
11 uint256 blockReward,
12 uint256 seed,
13 address callbackContract,
14 string callbackMethod
15 ) public payable returns (uint256 requestID) {
16 // ...
17 return requestID;
18 }KeepRandomBeacon.sol hosted with ❤ by GitHub
Pagaidām mums nav jāuztraucas par blockReward
un seed
parametriem, jo tos nodrošina Keep tīkla uzlabotā mehānika. Arī atzvanīšanas līguma parametri nav obligāti, tāpēc mūsu process nejauša skaitļa iegūšanai ir atkarīgs no šīm dažām darbībām:
- Zvana
requestRelayEntry
metode Random Beacon līgumā. - Saņemiet atpakaļ
requestId
un saglabājiet to lietojumprogrammas stāvoklī. - Klausieties
RelayEntryGenerated
notikumu Random Beacon līgumā. - Kad esat noķēris notikumu, jūs varat izlasīt nejauši ģenerēto vērtību
requestResponse
no notikuma argumentiem. Argos ietilpst arī requestId, un mēs pieņemam, ka jūs salīdzināt to ar iepriekšējās darbības laikā saņemto, lai pārliecinātos, ka saņemat atbildi uz savu pieprasījumu, nevis kāda cita.
Lūdzu, skatiet piemēru no Random avatar app 1–2.
Skatīt: requestRelayEntry.js
3. — 4. Darbību skatiet zemāk esošajā fragmentā; tas parāda, kā jūs varat skatīties notikumu RelayEntryGenerated
pārbaudītrequestId
,un iegūt savu izlases numuru:
Skatīt: RelayEntryGenerated.js
Atzvana līgums
Ja vēlaties izmantot atzvanīšanas līgumu, lai saņemtu rezultātu, varat norādīt līguma adresi un metodes parakstu, kas attēlots kā virkne, piemēram, zemāk esošajā piemērā:
Skatīt: requestRelayEntryWithCallback.js
Here’s an example of a callback contract:
Skatīt: CallbackContract.sol
Izvietošana
Visu iepriekš minēto kodu var viegli izvietot, izmantojot “Truffle box”. Lūdzu, pārliecinieties, vai esat instalējis Truffle, un pēc tam palaidiet:
truffle unbox keep-network/random-beacon-box
Kad būsit palaidis Truffle izsūtīšanas lodziņu, tiks parādīts ekrāns ar sākotnējo Truffle komandu komplektu, kas jums palīdzēs palaist lietojumprogrammu. Lūdzu, skatiet šo lielisko Truffle apmācību, lai iegūtu vairāk informācijas.
Mēs ceram, ka mūsu ziņa palīdzēs vairāk uzzināt, kā darbojas mūsu Random Beacon, kāda veida līguma metodes būs pieejamas mūsu publiskajā API mainnet un kā jūs to varat izmantot savās tīmekļa lietotnēs. Ja jums ir kādi jautājumi, atstājiet tos zemāk, un mēs ar prieku atbildēsim uz tiem; laimīga celtne! :)
Uzzināt vairāk
Lai iegūtu papildinformāciju par Keep network:
Paldies Antonio Salazar Cardozo, Eliza Petrovska, Michael Gluzman, un Prashanth Irudayaraj.
Tulkojis: nowhere#6182