Izlases Beacon Alpha API demonstrācijas 2. daļa

NOWHERE Network For Latvia
3 min readNov 24, 2020

--

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 blockRewardun seedparametriem, 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:

  1. Zvana requestRelayEntry metode Random Beacon līgumā.
  2. Saņemiet atpakaļ requestIdun saglabājiet to lietojumprogrammas stāvoklī.
  3. Klausieties RelayEntryGeneratednotikumu Random Beacon līgumā.
  4. Kad esat noķēris notikumu, jūs varat izlasīt nejauši ģenerēto vērtīburequestResponseno 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 RelayEntryGeneratedpā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

--

--

NOWHERE Network For Latvia
NOWHERE Network For Latvia

Written by NOWHERE Network For Latvia

NOWHERE Network? NOWHERE Tīkls? Tātad- iespējams Jums interesējoši raksti latviešu valodā, kas tulkoti informatīvu iemeslu un arī neliela pašlabuma gūšanai.

No responses yet