Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9838|Atbildi: 4

EOS Blockchain PHP izstrādes komplekts

[Kopēt saiti]
Publicēts 11.12.2018 08:56:36 | | |
Šo ziņu pēdējo reizi rediģēja jimi2018 2018-12-11 09:06

1. Izstrādes paketes pārskats
EosTool mērķis ir novērst sāpes, kas saistītas ar EOS blokķēdes lietojumprogrammu izstrādi, izmantojot PHP, piemēram:
  • Izsauciet tās funkcijas, izmantojot Nodeos un Keosd RPC saskarni
  • Ģenerējiet privātās un publiskās atslēgas EOS formātā bezsaistē
  • Vietējās privātās atslēgas izmantošana, lai ģenerētu ar EOS saderīgus darījumu parakstus
  • Serializējiet transakciju objektus Nodeos pieprasītajā packed_trx formātā
Var uzskatīt, ka EosTool ir eosjs PHP versija, ko var izmantot, lai pilnībā īstenotu EOS oficiālā klienta Cleos funkcijas, un to var arī viegli pievienot EOS blokķēdes atbalstam PHP lietojumprogrammās, ievērojami uzlabojot izstrādes efektivitāti.

Ieinteresētie draugi var arī doties tieši uz to, lai lejupielādētu EOS blokķēdes PHP izstrādes komplektu:http://t.cn/EUZAODQ

EosTool darbojas Php 7.1+ vidē, pašreizējā versija ir 1.0.0, un galveno koda failu saraksts ir šāds:

Kodu failiIlustrētu
eostool/src/client/NodeClient.phpMezglu programmatūras mezglu RPC interfeisa pakotnes klase
eostool/src/client/WalletClient.phpMaka programmatūras KEOSD RPC interfeisa iekapsulēšanas klase
eostool/src/client/RpcOutput.phpRPC atgriež iegūto iekapsulēšanas klasi
eostool / src / Kriptogrāfija / PrivateKey.phpEOS privātās atslēgas klase
eostool / src / Kriptogrāfija / PublicKey.phpEOS publiskās atslēgas klase
eostool/src/Crypto/Signature.phpEOS paraksta klase
eostool/src/Serializer/AbiType.phpEOS ABI tipa paku klase
eostool/src/Serializer/AbiTypeFactory.phpABI tipa rūpnīcas klase
eostool/src/Serializer/SerialBuffer.phpSeriālizētā bufera ieviešanas klase
eostool/src/Serializer/Serializer.phpSerializatora ieviešanas klase
eostool/src/parakstītājs/Signer.phpParakstītāja interfeiss
eostool/src/parakstītājs/KeosdSigner.phpKeosd parakstītāja ieviešanas klase
eostool/src/parakstītājs/LocalSigner.phpLokālā bezsaistes parakstītāja ieviešana
eostool/src/Contract.phpLīguma klase
eostool/src/EosTool.phpIzstrādes paketes ieejas klase
eostool/testiVienības testa gadījumu katalogs
EOSTOOL/phpunit.xmlVienības testa profili
eostool/pārdevējsTrešo pušu atkarības pakotnes
eostool/composer.jsonKomponista konfigurācijas fails
2. Piekļūstiet mezglu serverim
Izmantojiet NodeClient klasi, lai piekļūtu nodeos rpc interfeisam. Piemēram, šāds kods piekļūst ķēdes spraudņa get_info saskarnei vietējā Nodeos mezglā:
2.1 RPC zvanu grupēšana

EosTool izmanto konsekventu nosaukumu piešķiršanas metodi, un NodeClient izsaukuma metodi var secināt saskaņā ar API: API grupēšana atbilst rekvizītam ar tādu pašu nosaukumu kā NodeClient, un API atbilst metodei, ko pārveidojis camelCase ar tādu pašu atribūtu ar tādu pašu nosaukumu kā Client of No grupēšana. Piemēram:



SpraudņiAPI grupēšanaRPC APINodeClient metode
chain_api_pluginķēdeget_info$nc->chain->getInfo()
history_api_pluginVēstureget_transaction$nc->history->getTransaction()
net_api_pluginnetostatuss$nc->net->status()
producer_api_pluginProducentsget_runtime_options$nc->producer->getRunTimeOptions()
dbsize_api_plugindbsizeiegūt$nc->dbsize->get()

RPC API oficiālā dokumentācija:https://developers.eos.io/eosio-nodeos/reference

2.2 RPC zvana parametri

Nodeos dažiem zvaniem ir nepieciešams nodot papildu parametrus, piemēram, ķēdes spraudņa get_block saskarni, izmantojot EosTool, lai veiktu zvanu, vienkārši organizējiet parametrus saistītajā masīvā, parauga kods ir šāds:



2.3 RPC izsaukumi atgriež vērtības

Visu RPC izsaukumu atgrieztais rezultāts ir RpcOutput instance, un, izsaucot tās hasError() metodi, var noteikt, vai izsaukums ir nepareizs, un varat turpināt izmantot getError() metodi, lai iegūtu informāciju par kļūdām.
RPC izsaukuma atbildi var iegūt, izmantojot getResult() metodi, kas ir StdClass objekts, kas konvertēts no sākotnējā JSON rezultāta, tāpēc to var viegli iegūt atribūta informāciju, piemēram:

2.4 Piekļuve mainnet/testnet mezgliem

Veidojot NodeClient instanci, var nodot papildu parametru izpildi, lai definētu EOS galveno tīklu vai testtīkla mezglus, kuriem piekļūt. Piemēram, izmantojiet šādu kodu, lai piekļūtu galvenā tīkla mezglam:

Vai arī apmeklējiet mezglu Džungļu testtīklā:


3. Piekļūstiet maka serverim
Jaunā Keosd versija vairs nenodrošina RPC API dokumentāciju, kas var nozīmēt, ka tā ir sākusi slīdēt uz malu EOS programmatūras kaudzē. Tomēr jūs varat piekļūt vecajai dokumentācijas versijai šajā adresē:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Izmantojiet WalletClient klasi, lai piekļūtu Keosd rpc interfeisam. Piemēram, šāds kods piekļūst Keosd list_wallets saskarnei, kas darbojas vietējā veidā:
Tā kā Keosd API vairs nav grupēts, RPC atbilstošā metode ir tieši piekarināta WalletClient objektam, kas ir atšķirība. Tāpat kā NodeClient, izsaukums uz WalletClient atgriež objektu RpcOutput.

Keosd versija 1.4 izmanto UNIX ligzdas, nevis HTTP, lai nodrošinātu RPC interfeisus pēc noklusējuma, ko var uzskatīt par drošāku IPC izmantošanai, ņemot vērā, ka vairumā gadījumu Keosd darbojas vietēji. Tāpēc šī ir arī WalletClient noklusējuma instancēšanas opcija, un vairumā gadījumu nav jānodod papildu parametri, lai izveidotu WalletClient.

4. Privātās un publiskās atslēgas

EOS galvenais algoritms ir līdzīgs Bitcoin, bet ar dažiem uzlabojumiem un definējot savu formātu.
Izmantojiet PrivateKey klases new() statisko metodi, lai ģenerētu nejaušu privāto atslēgu. Piemēram:
toEos() metode tiek izmantota, lai pārvērstu privātās atslēgas objektus EOS pielāgotā formātā.

4.1 Publiskās atslēgas atvasināšana
Publisko atslēgu var atvasināt no privātās atslēgas, piemēram:


Līdzīgi izmantojiet metodi toEos(), lai konvertētu publisko atslēgu uz pielāgotu EOS formātu.

4.2 Importējiet EOS privātās atslēgas
EOS formatētu privāto atslēgu var pārvērst par EosTool PrivateKey objektu, piemēram, zemāk esošais kods importē norādīto EOS privāto atslēgu un parāda atbilstošo EOS publisko atslēgu:

4.3 Autoritatīvs paraksts
PrivateKey sign() metode atbalsta gan parastos parakstus, gan autoritatīvus parakstus, kas nepieciešami EOS mezgliem. Piemēram, šāds kods atgriež vienkāršu parakstu:

Nododiet papildu parametrus, lai iegūtu autoritatīvu parakstu norādītajiem datiem:



5. Serializācija
EOS pieprasa, lai darījumi tiktu serializēti pirms mezgla push_transaction, kas arī ir neizbēgama EOS darījumu darbības daļa PHP.
Programmā EosTool serializācijas operācijām tiek izmantota klase Serializer. Piemēram, šāds kods serializē EOS pārsūtīšanas transakciju 16 decimāldaļu kodu plūsmas formātā, ko var iesniegt EOS mezglā:


Statiskā metode fromAbi() of Serializer tiek izmantota, lai izveidotu serializatora instanci, pamatojoties uz norādīto abi, un pēc tam instances serialize() metode tiek izmantota, lai serializētu norādīto datu tipu, lai iegūtu heksadecimālo koda plūsmu.

6. Paraksts
EosTool piedāvā divus veidus, kā parakstīt darījumus: izmantojot Keosd parakstīšanai vai izmantojot vietējo privāto atslēgu.
Izmantojiet KeosdSigner klasi, lai pabeigtu parakstīšanu, izmantojot maka serveri. Piemēram:

Izmantojot klasi LocalSigner, varat izvairīties no keosd izmantošanas un tieši izmantot bezsaistes privātās atslēgas parakstīšanu. Piemēram:
izmantojiet EosTool\Signer\LocalSigner;

$prvKeys = ['5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'];
$signer = jauns LocalSigner($prvKeys);
$signatures = $signer->zīme($tx,$pubKeys,$chainId);



7. Darījuma iesniegšana
Darījuma dati ir jānormalizē, jāserializē, jāparaksta un jāiepako, izmantojot virkni operāciju, pirms tos var iesniegt Nodeos mezglā apraidei. EosTool klase nodrošina transact() metodi, lai izolētu šīs garlaicīgās darbības.
Piemēram, tālāk norādītais kods izveido EosTool instanci, izmantojot NodeClient un LocalSigner, un pēc tam iesniedz darījumu:
Parakstītāju ir ērti nomainīt uz KeosdSigner, piemēram:


8. Izsauciet vienu līguma darbību
Izmantojiet EosTool pushAction() metodi, lai izsauktu vienu līguma darbību. Piemēram, šis kods izsauc Tommy konta mitināšanas līguma hi() metodi:



9. Izvietojiet līgumu
Izvietojiet līgumu, izmantojot EosTool setContract() metodi, piemēram:
Ieinteresētie draugi var doties šeit:http://t.cn/EUZAODQ




Publicēts 11.12.2018 08:59:58 |
Paldies Ļoti noderīgi
 Saimnieks| Publicēts 11.12.2018 09:06:52 |
Vasara Publicēts 2018-12-11 08:59
Paldies Ļoti noderīgi

Paldies par atbalstu.
Publicēts 11.12.2018 09:11:46 |
Es esmu lasījis daudz satura jūsu vietnē, un es uzskatu, ka daži no tiem ir tulkoti ārzemju raksti
Publicēts 11.12.2018 09:32:07 |
Paskatieties uz paldies priekšniekam par to, ka esat bagāts
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com