Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 9838|Vastaus: 4

EOS Blockchain PHP Development Kit

[Kopioi linkki]
Julkaistu 11.12.2018 8.56.36 | | |
Tätä julkaisua on viimeksi muokattu jimi2018:n toimesta 11.12.2018 klo 09:06

1. Kehityspaketin yleiskatsaus
EosToolin tarkoituksena on poistaa EOS-lohkoketjusovellusten kehittäminen PHP:n avulla, kuten:
  • Kutsu sen toiminnot Nodeosin ja Keosdin RPC-rajapinnan kautta
  • Luo yksityiset ja julkiset avaimet EOS-muodossa offline-tilassa
  • Käytä paikallista yksityistä avaintasi luodaksesi EOS-yhteensopivia tapahtumaallekirjoituksia
  • Sarjoittaa transaktioobjektit Nodeosin vaatimaan packed_trx muotoon
Voidaan katsoa, että EosTool on eosjs:n PHP-versio, jota voidaan käyttää EOS:n virallisen asiakasohjelman Cleosin toimintojen täydelliseen toteuttamiseen, ja se voidaan helposti lisätä EOS-lohkoketjun tukeen PHP-sovelluksissa, mikä parantaa kehityksen tehokkuutta merkittävästi.

Kiinnostuneet ystävät voivat myös suoraan ladata EOS blockchain PHP -kehityspaketin:http://t.cn/EUZAODQ

EosTool toimii Php 7.1+ -ympäristössä, nykyinen versio on 1.0.0 ja pääkooditiedostojen lista on seuraava:

Kooditiedostothavainnollistaa
eostool/src/client/NodeClient.phpRPC-liitäntäpakettiluokka solmuohjelmisto-nodeoille
eostool/src/client/WalletClient.phpLompakko-ohjelmiston KEOSD RPC-rajapinnan kapselointiluokka
eostool/src/client/RpcOutput.phpRPC palauttaa tuloksena olevan kapselointiluokan
eostool/src/Crypto/PrivateKey.phpEOS:n yksityisavainluokka
eostool/src/Crypto/PublicKey.phpEOS:n julkisen avaimen luokka
eostool/src/Crypto/Signature.phpEOS-allekirjoitusluokka
eostool/src/Serializer/AbiType.phpEOS:n ABI-tyyppinen pakettiluokka
eostool/src/Serializer/AbiTypeFactory.phpABI-tyypin tehdasluokka
eostool/src/Serializer/SerialBuffer.phpSerialisoitu puskuritoteutusluokka
eostool/src/Serializer/Serializer.phpSerializer-toteutusluokka
eostool/src/signer/Signer.phpAllekirjoitusrajapinta
eostool/src/signer/KeosdSigner.phpKeosd-allekirjoitus-toteutusluokka
eostool/src/signer/LocalSigner.phpPaikallinen offline-allekirjoittajan toteutus
eostool/src/Contract.phpSopimusluokka
eostool/src/EosTool.phpKehityspakettien sisäänkäyntiluokka
Eostooli/testitYksikkötestitapausten luettelo
Eostool/phpunit.xmlYksikkötestiprofiilit
eostool/toimittajaKolmannen osapuolen riippuvuuspaketit
eostool/composer.jsonsäveltäjän konfiguraatiotiedosto
2. Pääsy solmupalvelimelle
Käytä NodeClient-luokkaa päästäksesi nodeosin rpc-rajapintaan. Esimerkiksi seuraava koodi käyttää ketjuliitännän get_info rajapintaa natiivisti toimivalle Nodeos-solmulle:
2.1 RPC-puheluryhmittely

EosTool käyttää johdonmukaista nimeämismenetelmää, ja NodeClientin kutsumenetelmä voidaan päätellä API:n perusteella: API-ryhmittely vastaa samaa nimeä omaavaa ominaisuutta kuin NodeClient, ja API vastaa metodia, jonka camelCase muuntaa samalla attribuutilla ja samalla nimellä kuin Client of No:n ryhmittely. Esimerkiksi:



LisäosatAPI-ryhmittelyRPC-rajapintaNodeClient-menetelmä
chain_api_pluginKetjuget_info$nc->chain->getInfo()
history_api_pluginHistoriaget_transaction$nc->history->getTransaction()
net_api_pluginVerkkoTila$nc->net->status()
producer_api_plugintuottajaget_runtime_options$nc->producer->getRunTimeOptions()
dbsize_api_plugindbsizeTule$nc->dbsize->get()

Virallinen dokumentaatio RPC API:lle:https://developers.eos.io/eosio-nodeos/reference

2.2 RPC-kutsuparametrit

Nodeosissa jotkut kutsut vaativat lisäparametrien, kuten ketjulaajennuksen get_block-rajapinnan, välittämistä, kun käytetään EosToolia kutsun tekemiseen, järjestä parametrit liitännäiseksi taulukoksi, esimerkkikoodi on seuraava:



2.3 RPC-kutsut palauttavat arvot

Kaikkien RPC-kutsujen palautustulos on RpcOutput-instanssi, ja sen hasError()-metodin kutsuminen voi selvittää, onko kutsu väärä, ja voit käyttää getError()-menetelmää virhetietojen saamiseksi.
RPC-kutsun vaste saadaan getResult()-menetelmällä, joka on StdClass-objekti, joka on muunnettu alkuperäisestä JSON-tuloksesta, joten se voidaan helposti poimia attribuuttitietoa, kuten:

2.4 Pääsy pääverkko-/testiverkkosolmuihin

Kun luodaan NodeClient-instanssi, lisäparametrien suorituksia voidaan välittää määrittämään EOS-pääverkon tai testiverkon solmut käytettäväksi. Esimerkiksi käytä seuraavaa koodia päästäksesi pääverkon solmuun:

Tai vieraile solmussa Jungle-testiverkossa:


3. Pääse lompakkopalvelimelle
Uusi Keosd-versio ei enää tarjoa RPC API -dokumentaatiota, mikä saattaa tarkoittaa, että se on alkanut liukua EOS-ohjelmistopinon reunalle. Voit kuitenkin käyttää vanhan dokumentaation version tästä osoitteesta:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Käytä WalletClient-luokkaa päästäksesi Keosdin RPC-rajapintaan. Esimerkiksi seuraava koodi käyttää Keosdin list_wallets rajapintaa, joka toimii natiivisti:
Koska Keosdin API:ta ei enää ryhmitetä, RPC:n vastaava metodi ripustetaan suoraan WalletClient-objektiin, mikä on ero. Kuten NodeClient, WalletClientin kutsu palauttaa RpcOutput-objektin.

Keosd-versio 1.4 käyttää UNIX-soketteja HTTP:n sijaan RPC-liitäntöjen tarjoamiseen oletuksena, mikä saattaa olla turvallisempaa käyttää IPC:tä, koska Keosd toimii useimmissa tapauksissa natiivisti. Siksi tämä on myös WalletClientin oletusinstanssivaihtoehto, eikä useimmissa tapauksissa tarvitse antaa lisäparametreja WalletClientin käynnistämiseksi.

4. Yksityiset ja julkiset avaimet

EOS:n keskeinen algoritmi on samankaltainen kuin Bitcoin, mutta siinä on joitakin hienosäätöjä ja oman muodon määrittelyä.
Käytä PrivateKey-luokan new() staattista menetelmää satunnaisen yksityisavaimen luomiseen. Esimerkiksi:
toEos()-menetelmää käytetään yksityisavainobjektien muuntamiseen EOS:n mukautettuun muotoon.

4.1 Julkisen avaimen johtaminen
Julkinen avain voidaan johtaa yksityisestä avaimesta, kuten:


Samoin käytä toEos()-menetelmää muuntaaksesi julkisen avaimen mukautettuun EOS-muotoon.

4.2 EOS:n yksityisavainten tuonti
Voit muuntaa EOS-muotoisen yksityisavaimen EosToolin yksityisavaimeksi, esimerkiksi alla oleva koodi tuo määritellyn EOS-yksityisavaimen ja näyttää sen vastaavan EOS-julkisen avaimen:

4.3 Auktoritatiivinen allekirjoitus
PrivateKeyn sign()-menetelmä tukee sekä tavallisia allekirjoituksia että EOS-solmujen vaatimia auktoritatiivisia allekirjoituksia. Esimerkiksi seuraava koodi palauttaa pelkän allekirjoituksen:

Anna lisäparametreja saadaksesi auktoritatiivisen allekirjoituksen määritetyille tiedoille:



5. Sarjoittaminen
EOS vaatii transaktioiden sarjallistamista ennen solmujen push_transaction sitoumista, mikä on myös väistämätön osa EOS-transaktioiden operointia PHP:ssä.
EosToolissa Serializer-luokkaa käytetään serialisointioperaatioissa. Esimerkiksi seuraava koodi sarjoittaa EOS-siirtotransaktion 16 desimaalin koodivirtamuotoon, joka voidaan toimittaa EOS-solmulle:


Serializerin staattista fromAbi()-menetelmää käytetään generoimaan serializaattori-instanssi määritellyn abi:n pohjalta, ja sitten instanssin serialize()-menetelmää käytetään kyseisen datatyypin sarjoittamiseen keksadesimaalisen koodivirran saamiseksi.

6. Allekirjoitus
EosTool tarjoaa kaksi tapaa allekirjoittaa tapahtumia: Keosd:n avulla allekirjoittamiseen tai paikallisen yksityisavaimen avulla.
Käytä KeosdSigner-luokkaa allekirjoittamiseen lompakkopalvelimella. Esimerkiksi:

Käyttämällä LocalSigner-luokkaa voit välttää keosd:n käytön ja käyttää suoraan offline-yksityisen avaimen allekirjoitusta. Esimerkiksi:
käytä EosTool\Signer\LocalSigner;

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



7. Tapahtuman lähettäminen
Transaktiodata täytyy normalisoida, sarjoittaa, allekirjoittaa ja paketoida useiden operaatioiden kautta ennen kuin se voidaan lähettää Nodeos-solmulle lähetystä varten. EosTool-luokka tarjoaa transact()-menetelmän näiden tylsän operaatioiden eristämiseen.
Esimerkiksi alla oleva koodi luo EosTool-instanssin käyttämällä NodeClientia ja LocalSigneria, ja lähettää sitten transaktion:
On kätevää vaihtaa allekirjoittaja muotoon KeosdSigner, esimerkiksi:


8. Vedota yhteen sopimustoimenpiteeseen
Käytä EosToolin pushAction()-menetelmää kutsuaksesi yhden sopimustoiminnon. Esimerkiksi seuraava koodi kutsuu Tommy-tilin isännöintisopimuksen hi()-metodia:



9. Ota sopimus käyttöön
Otetaan sopimus käyttöön EosToolin setContract()-menetelmällä, esimerkiksi:
Kiinnostuneet ystävät voivat mennä täältä:http://t.cn/EUZAODQ




Julkaistu 11.12.2018 8.59.58 |
Kiitos. Erittäin hyödyllistä.
 Vuokraisäntä| Julkaistu 11.12.2018 9.06.52 |
Kesä Julkaistu 2018-12-11 08:59
Kiitos. Erittäin hyödyllistä.

Kiitos tuesta.
Julkaistu 11.12.2018 9.11.46 |
Olen lukenut paljon sisältöä sivustollasi, ja koen, että osa niistä on käännettyjä ulkomaisia artikkeleita
Julkaistu 11.12.2018 9.32.07 |
Katso kiitospomoa rikastumisesta
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com