See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 9838|Vastuse: 4

EOS plokiahela PHP arenduskomplekt

[Kopeeri link]
Postitatud 11.12.2018 08:56:36 | | |
Seda postitust viimati redigeeris jimi2018 12-11 09:06

1. Arenduspaketi ülevaade
EosTooli eesmärk on kõrvaldada EOS plokiahela rakenduste arendamise valu PHP abil, näiteks:
  • Kutsu selle funktsioone läbi Nodeose ja Keosd RPC liidese
  • Genereeri privaatsed ja avalikud võtmed EOS-formaadis võrguühenduseta
  • Kasuta oma kohalikku privaatvõtit, et genereerida EOS-nõuetele vastavad tehinguallkirjad
  • Serialiseeri tehinguobjektid packed_trx vormingusse, mida Nodeos nõuab.
Võib pidada EosTooli eosjs-i PHP-versiooniks, mida saab kasutada EOS-i ametliku kliendi Cleos funktsioonide täielikuks rakendamiseks ning seda saab hõlpsasti lisada EOS plokiahela toe hulka PHP rakendustes, parandades oluliselt arenduse efektiivsust.

Huvitatud sõbrad saavad samuti otse siia alla laadida EOS plokiahela PHP arenduskomplekti:http://t.cn/EUZAODQ

EosTool töötab Php 7.1+ keskkonnas, praegune versioon on 1.0.0 ja peamiste koodifailide nimekiri on järgmine:

KoodifailidIllustreerida
eostool/src/client/NodeClient.phpSõlmetarkvara nodeode RPC liidese paketi klass
eostool/src/client/WalletClient.phpRahakoti tarkvara KEOSD RPC liidese kapseldamise klass
eostool/src/client/RpcOutput.phpRPC tagastab saadud kapseldamisklassi
eostool/src/Crypto/PrivateKey.phpEOS privaatvõtme klass
eostool/src/Crypto/PublicKey.phpEOS avaliku võtme klass
eostool/src/Crypto/Signature.phpEOS signatuuriklass
eostool/src/Serializer/AbiType.phpEOS-i ABI tüüpi paketiklass
eostool/src/Serializer/AbiTypeFactory.phpABI tüüpi tehase klass
eostool/src/Serializer/SerialBuffer.phpSerialiseeritud puhvri rakendusklass
eostool/src/Serializer/Serializer.phpSerializeri rakendusklass
eostool/src/signer/Signer.phpAllkirjastaja liides
eostool/src/Signer/KeosdSigner.phpKeosd signeri rakendusklass
eostool/src/Signer/LocalSigner.phpKohalik offline-allkirjastaja rakendus
Eostool/SRC/Contract.phpLepinguklass
eostool/src/EosTool.phpArenduspaketi sisenemisklass
Eostool/testidÜhiktesti juhtumite kataloog
Eostool/phpunit.xmlÜksustesti profiilid
eostool/müüjaKolmandate osapoolte sõltuvuspaketid
Eostool/composer.jsonHelilooja konfiguratsioonifail
2. Juurdepääs sõlmeserverile
Kasuta NodeClient klassi, et pääseda ligi nodeose RPC liidesele. Näiteks pääseb järgmine kood ligi ahela plugina get_info liidesele natiivselt töötava Nodeos sõlme jaoks:
2.1 RPC kõnede grupeerimine

EosTool kasutab järjepidevat nimetamismeetodit ning NodeClienti kutsumise meetodit saab API järgi järeldada: API grupeerimine vastab samanimelisele omadusele nagu NodeClient, ning API vastab meetodile, mille camelCase teisendab sama atribuudi all sama nimega kui Kliendi grupeerimine. Näiteks:



PluginadAPI grupeerimineRPC APINodeClient meetod
chain_api_pluginKettget_info$nc->chain->getInfo()
history_api_pluginAjaluguget_transaction$nc->history->getTransaction()
net_api_pluginvõrkStaatus$nc->net->status()
producer_api_pluginprodutsentget_runtime_options$nc->producer->getRunTimeOptions()
dbsize_api_plugindbsizeMine$nc->dbsize->get()

RPC API ametlik dokumentatsioon:https://developers.eos.io/eosio-nodeos/reference

2.2 RPC kõneparameetrid

Nodeose puhul nõuavad mõned kutsed lisaparameetrite edastamist, näiteks ahela plugina get_block liides; kui kasutada EosTooli kutse tegemiseks, korralda parameetrid seotud massiiviks, näidiskood on järgmine:



2.3 RPC kutsed tagastavad väärtusi

Kõigi RPC kõnede tagastustulemus on RpcOutput instants ning selle hasError() meetodi kutsumine määrab, kas kutse on vale, ning saad kasutada getError() meetodit veainfo saamiseks.
RPC kutse vastuse saab saada getResult() meetodi abil, mis on StdClass objekt, mis on teisendatud algsest JSON-i tulemusest, nii et seda saab hõlpsasti välja võtta atribuudi infot, näiteks:

2.4 Juurdepääs mainnet/testnet sõlmedele

NodeClient instantsi loomisel saab sisestada täiendavaid parameetrite täitmisi, et määratleda EOS-i põhivõrgu või testvõrgu sõlmed, millele pääseda. Näiteks kasutage järgmist koodi, et pääseda ligi peavõrgu sõlmele:

Või külasta sõlme Jungle testnetis:


3. Juurdepääs rahakoti serverile
Uus Keosd versioon ei paku enam RPC API dokumentatsiooni, mis võib tähendada, et see on hakanud EOS-i tarkvaravirna äärele nihkuma. Kuid vana dokumentatsiooni versioon on saadaval sellel aadressil:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Kasuta WalletClient klassi, et pääseda ligi Keosd RPC liidesele. Näiteks järgmine kood pääseb ligi Keosdi list_wallets liidesele, mis töötab natiivselt:
Kuna Keosd API ei ole enam grupeeritud, riputatakse RPC vastav meetod otse WalletClient objektile, mis on erinevus. Nagu NodeClient, tagastab WalletClienti kutse RpcOutput objekti.

Keosd versioon 1.4 kasutab vaikimisi UNIX sokleid HTTP asemel, et pakkuda RPC liideseid, mida võib pidada IPC kasutamiseks turvalisemaks, arvestades, et enamasti töötab Keosd natiivselt. Seetõttu on see ka WalletClienti vaikimisi instantsimise valik ning enamasti ei pea WalletClienti käivitamiseks lisaparameetreid sisestama.

4. Privaat- ja avalikud võtmed

EOS-i võtmealgoritm on sarnane Bitcoinile, kuid mõningate täiendustega ja oma formaadi määratlemisega.
Kasuta PrivateKey klassi staatilist meetodit new(), et genereerida juhuslik privaatvõti. Näiteks:
toEos() meetodit kasutatakse privaatvõtme objektide teisendamiseks EOS-i kohandatud vormingusse.

4.1 Avaliku võtme tuletamine
Avalik võti saab tuletada privaatvõtmest, näiteks:


Sarnaselt kasuta toEos() meetodit, et konverteerida avalik võti EOS-i jaoks kohandatud vormingusse.

4.2 EOS-i privaatvõtmete importimine
EOS-formaadis privaatvõtme saab teisendada EosTool privaatvõtme objektiks, näiteks allolev kood impordib määratud EOS privaatvõtme ja kuvab vastava EOS avaliku võtme:

4.3 Autoriteetne allkiri
PrivateKey sign() meetod toetab nii tavalisi allkirju kui ka autoriteetseid allkirju, mida EOS sõlmed nõuavad. Näiteks järgmine kood tagastab lihtsa allkirja:

Sisesta täiendavad parameetrid, et saada autoriteetne allkiri määratud andmete jaoks:



5. Serialiseerimine
EOS nõuab, et tehingud oleksid seriaalis enne sõlme push_transaction sõlmimist, mis on samuti vältimatu osa EOS-tehingute opereerimisest PHP-s.
EosToolis kasutatakse serialiseerimisoperatsioonide jaoks Serializer klassi. Näiteks järgmine kood serialiseerib EOS-ülekande tehingu 16-kümnendsüsteemi koodivoo vormingusse, mida saab EOS sõlmele esitada:


Serializeri staatilist meetodit fromAbi() kasutatakse serialiseerija eksemplari konstrueerimiseks määratud abi põhjal ning seejärel serialize() meetodit kasutatakse määratud andmetüübi serialiseerimiseks, et saada kuueteistkümnendsüsteemi koodivoog.

6. Allkiri
EosTool pakub tehingute allkirjastamiseks kahte võimalust: Keosd kasutamine allkirjastamiseks või kohaliku privaatvõtme kasutamine.
Kasuta KeosdSigner klassi, et allkirjastada rahakoti serveris. Näiteks:

Kasutades LocalSigner klassi, saad vältida keosd kasutamist ja kasutada otse offline-privaatvõtme signeerimist. Näiteks:
kasutada EosTool\Signer\LocalSigner;

$prvKeys = ['5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'];
$signer = uus LocalSigner($prvKeys);
$signatures = $signer->märk($tx,$pubKeys,$chainId);



7. Tehingute esitamine
Tehinguandmed tuleb normaliseerida, serialiseerida, allkirjastada ja pakendada läbi mitmete operatsioonide, enne kui see saab edastada Nodeos sõlmele edastamiseks. EosTool klass pakub transact() meetodit nende tüütute operatsioonide isoleerimiseks.
Näiteks allolev kood loob EosTool'i instantsi NodeClienti ja LocalSigneri abil ning seejärel esitab tehingu:
On mugav muuta allkirjastaja KeosdSigneriks, näiteks:


8. Rakenda ühe lepingulise hagi
Kasuta EosTool'i pushAction() meetodit, et kutsuda üks lepinguline tegevus. Näiteks järgmine kood kutsub Tommy konto majutuslepingu hi() meetodit:



9. Rakenda leping
Rakendage leping EosTool'i setContract() meetodiga, näiteks:
Huvitatud sõbrad võivad minna siia:http://t.cn/EUZAODQ




Postitatud 11.12.2018 08:59:58 |
Aitäh. Väga kasulik.
 Üürileandja| Postitatud 11.12.2018 09:06:52 |
Suvi Postitatud 2018-12-11 08:59
Aitäh. Väga kasulik.

Aitäh toetuse eest.
Postitatud 11.12.2018 09:11:46 |
Olen lugenud teie saidil palju sisu ja tunnen, et osa neist on tõlgitud välismaised artiklid
Postitatud 11.12.2018 09:32:07 |
Vaata, aitäh, boss, et ta rikastus
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com