Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 9838|Odgovoriti: 4

EOS Blockchain PHP razvojni komplet

[Kopiraj povezavo]
Objavljeno na 11. 12. 2018 08:56:36 | | |
Ta objava je bila nazadnje urejena s strani jimi2018 dne 11. 12. 2018 ob 09:06

1. Pregled razvojnega paketa
Namen EosToola je odpraviti težave pri razvoju EOS blockchain aplikacij z uporabo PHP, kot so:
  • Pokliči njegove funkcije preko RPC vmesnika Nodeos in Keosd
  • Generiranje zasebnih in javnih ključev v EOS formatu brez povezave
  • Uporabite svoj lokalni zasebni ključ za generiranje podpisov transakcij, skladnih z EOS-om
  • Serializirajte transakcijske objekte v packed_trx format, ki ga zahteva Nodeos
Lahko štejemo, da je EosTool PHP različica eosjs, ki jo je mogoče uporabiti za popolno implementacijo funkcij uradnih EOS odjemalskih Cleos, prav tako pa jo je mogoče enostavno dodati v podporo EOS blockchainu v PHP aplikacijah, kar močno izboljša učinkovitost razvoja.

Zainteresirani prijatelji lahko tudi neposredno obiščejo to in prenesejo EOS blockchain PHP razvojni komplet:http://t.cn/EUZAODQ

EosTool teče v okolju Php 7.1+, trenutna različica je 1.0.0, seznam glavnih kodnih datotek pa je naslednji:

Kodne datotekePonazoritev
eostool/src/client/NodeClient.phpRazred paketov RPC vmesnika med node-i programske opreme vozlišč
eostool/src/client/WalletClient.phpRazred enkapsulacije RPC vmesnika v programski opremi denarnice KEOSD
eostool/src/client/RpcOutput.phpRPC vrne nastali enkapsulacijski razred
eostool/src/Crypto/PrivateKey.phpEOS razred zasebnega ključa
eostool/src/Crypto/PublicKey.phpRazred javnega ključa EOS
eostool/src/Crypto/Signature.phpRazred podpisa EOS
eostool/src/Serializer/AbiType.phpEOS-ov razred ABI paketov
eostool/src/Serializer/AbiTypeFactory.phpTovarniški razred tipa ABI
eostool/src/Serializer/SerialBuffer.phpRazred implementacije serializiranega medpomnilnika
eostool/src/Serializer/Serializer.phpRazred implementacije serializatorjev
eostool/src/Signer/Signer.phpVmesnik za podpisovanje
eostool/src/Signer/KeosdSigner.phpKeosd signer implementacijska klasa
eostool/src/Signer/LocalSigner.phpImplementacija lokalnega offline podpisnika
eostool/src/Contract.phpPogodbeni razred
eostool/src/EosTool.phpVstopni razred razvojnega paketa
Eostool/testiKatalog enotnih testnih primerov
eostool/phpunit.xmlEnotski testni profili
eostool/prodajalecPaketi odvisnosti tretjih oseb
Eostool/composer.jsonKonfiguracijska datoteka skladatelja
2. Dostop do strežnika vozlišča
Uporabite razred NodeClient za dostop do rpc vmesnika nodeosa. Na primer, naslednja koda dostopa do get_info vmesnika verižnega vtičnika za nativno delujoče vozlišče Nodeos:
2.1 Združevanje klicev RPC

EosTool uporablja dosledno metodo poimenovanja, in klicno metodo NodeClient je mogoče sklepati glede na API: API skupina ustreza lastnosti z enakim imenom kot NodeClient, API pa ustreza metodi, ki jo camelCase pretvori pod isti atribut istega imena kot skupina Client of No. Na primer:



VtičnikiZdruževanje API-jevRPC APIMetoda NodeClient
chain_api_pluginVerigaget_info$nc->chain->getInfo()
history_api_pluginZgodovinaget_transaction$nc->history->getTransaction()
net_api_pluginNetStatus$nc->net->status()
producer_api_pluginProducentget_runtime_options$nc->producent->getRunTimeOptions()
dbsize_api_pluginDBSIZEDobi$nc->dbsize->get()

Uradna dokumentacija za RPC API:https://developers.eos.io/eosio-nodeos/reference

2.2 Parametri klica RPC

Za Nodeos nekateri klici zahtevajo posredovanje dodatnih parametrov, kot je get_block vmesnik verižnega vtičnika; ko uporabljate EosTool za klic, preprosto organizirajte parametre v pripadajoče polje, vzorčna koda je naslednja:



2.3 Klici RPC klicev in povratne vrednosti

Povratni rezultat vseh RPC klicev je instanca RpcOutput, klicanje metode hasError() pa lahko ugotovi, ali je klic napačen, poleg tega pa lahko uporabite metodo getError() za pridobitev informacij o napaki.
Odgovor klica RPC je mogoče pridobiti z metodo getResult(), ki je StdClass objekt, pretvorjen iz izvirnega JSON rezultata, zato je mogoče enostavno pridobiti informacije o atributih, kot so:

2.4 Dostop do mainnet/testnet vozlišč

Pri ustvarjanju instance NodeClient se lahko dodajo dodatne izvedbe parametrov za definiranje EOS mainnet ali testnet vozlišč za dostop. Na primer, uporabite naslednjo kodo za dostop do glavnega vozlišča:

Ali obiščite vozlišče na Jungle testnetu:


3. Dostop do strežnika denarnice
Nova različica Keosd ne zagotavlja več dokumentacije za RPC API, kar lahko pomeni, da se je začel premikati na rob programske opreme EOS. Vendar pa lahko do stare različice dokumentacije dostopate na tem naslovu:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Uporabi razred WalletClient za dostop do Keosd-jevega rpc vmesnika. Na primer, naslednja koda dostopa do list_wallets vmesnika Keosd, ki teče nativno:
Ker Keosdov API ni več združen, je ustrezna metoda RPC neposredno pritrjena na objekt WalletClient, kar predstavlja razliko. Tako kot NodeClient, klic WalletClient vrne objekt RpcOutput.

Keosd različica 1.4 uporablja UNIX vtičnice namesto HTTP, da privzeto zagotavlja RPC vmesnike, kar je lahko varnejše za uporabo IPC, saj Keosd v večini primerov teče nativno. Zato je to tudi privzeta možnost za instanciranje WalletClientClient in v večini primerov ni treba prenesti dodatnih parametrov za instanciranje WalletClienta.

4. Zasebni in javni ključi

EOS-ov ključni algoritem je podoben Bitcoinu, vendar z nekaj prilagoditvami in definiranjem lastnega formata.
Uporabite statično metodo razreda PrivateKey new() za generiranje naključnega zasebnega ključa. Na primer:
metoda toEos() se uporablja za pretvorbo objektov zasebnega ključa v prilagojen format za EOS.

4.1 Izpeljava javnega ključa
Javni ključ lahko izpeljemo iz zasebnega ključa, na primer:


Podobno uporabite metodo toEos() za pretvorbo javnega ključa v prilagojen format za EOS.

4.2 Uvoz zasebnih ključev EOS
Zasebni ključ v EOS-formatu lahko pretvorite v EosTool PrivateKey objekt, na primer, spodnja koda uvozi določeni EOS zasebni ključ in prikaže njegov ustrezni EOS javni ključ:

4.3 Avtoritativni podpis
Metoda sign() v PrivateKey podpira tako običajne kot avtoritativne podpise, ki jih zahtevajo EOS vozlišča. Na primer, naslednja koda vrne navaden podpis:

Dodajte dodatne parametre za pridobitev avtoritativnega podpisa za določene podatke:



5. Serializacija
EOS zahteva, da so transakcije serializirane pred vložitvijo vozlišča push_transaction, kar je prav tako neizogiben del delovanja EOS transakcij v PHP.
V EosToolu se razred Serializator uporablja za operacije serializacije. Na primer, naslednja koda serializira EOS prenosno transakcijo v 16-decimalnem kodnem tokovnem formatu, ki ga je mogoče poslati EOS vozlišču:


Statična metoda fromAbi() iz Serializerja se uporablja za konstrukcijo instance serializerja na podlagi določenega abi, nato pa se metoda serializacije() instance uporabi za serializacijo določene vrste podatkov za pridobitev šestnajstiškega toka kod.

6. Podpis
EosTool ponuja dva načina za podpisovanje transakcij: uporabo Keosd za podpisovanje ali uporabo lokalnega zasebnega ključa.
Uporabite razred KeosdSigner za dokončanje podpisovanja preko strežnika denarnice. Na primer:

Z uporabo razreda LocalSigner se lahko izognete uporabi keosd in neposredno uporabite offline podpisovanje zasebnega ključa. Na primer:
uporabi EosTool\Signer\LocalSigner;

$prvKeys = ['5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'];
$signer = novi LocalSigner($prvKeys);
$signatures = $signer->znak($tx,$pubKeys,$chainId);



7. Oddaja transakcije
Podatke transakcije je treba normalizirati, serializirati, podpisati in zapakirati skozi vrsto operacij, preden jih je mogoče poslati vozlišču Nodeos za oddajanje. Razred EosTool zagotavlja metodo transact() za izolacijo teh dolgočasnih operacij.
Na primer, spodnja koda ustvari instanco EosTool z uporabo NodeClient in LocalSigner ter nato pošlje transakcijo:
Priročno je spremeniti podpisnika v KeosdSigner, na primer:


8. Sprožite enotno pogodbeno tožbo
Uporabite metodo pushAction() v EosToolu za klic ene same pogodbene akcije. Na primer, naslednja koda kliče metodo hi() iz pogodbe o gostovanju Tommy računa:



9. Uvedba pogodbe
Na primer, uvedite pogodbo z uporabo metode setContract() podjetja EosTool:
Zainteresirani prijatelji lahko obiščejo tukaj:http://t.cn/EUZAODQ




Objavljeno na 11. 12. 2018 08:59:58 |
Hvala. Zelo uporabno.
 Najemodajalec| Objavljeno na 11. 12. 2018 09:06:52 |

Hvala za podporo.
Objavljeno na 11. 12. 2018 09:11:46 |
Prebral sem veliko vsebin na vaši strani in menim, da so nekatere prevodi tujih člankov
Objavljeno na 11. 12. 2018 09:32:07 |
Poglej, hvala šefu, ker si obogatel
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com