Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 9838|Svare: 4

EOS Blockchain PHP-utviklingssett

[Kopier lenke]
Publisert på 11.12.2018 08:56:36 | | |
Dette innlegget ble sist redigert av jimi2018 den 11.12.2018 kl. 09:06

1. Oversikt over utviklingspakke
Formålet med EosTool er å eliminere smerten ved å utvikle EOS-blokkjedeapplikasjoner med PHP, slik som:
  • Kall funksjonene gjennom RPC-grensesnittet til Nodeos og Keosd
  • Generer private og offentlige nøkler i EOS-format offline
  • Bruk din lokale private nøkkel for å generere EOS-kompatible transaksjonssignaturer
  • Serialiser transaksjonsobjekter til det packed_trx-formatet som kreves av Nodeos
Det kan betraktes som at EosTool er en PHP-versjon av eosjs, som kan brukes til å fullt ut implementere funksjonene til EOS offisielle klient Cleos, og det kan også enkelt legges til støtten for EOS-blokkjede i PHP-applikasjoner, noe som i stor grad forbedrer utviklingseffektiviteten.

Interesserte venner kan også gå direkte til dette for å laste ned EOS blockchain PHP-utviklingssettet:http://t.cn/EUZAODQ

EosTool kjører i et Php 7.1+-miljø, den nåværende versjonen er 1.0.0, og listen over hovedkodefiler er som følger:

Kodefilerillustrere
eostool/src/klient/NodeClient.phpRPC-grensesnittpakkens klasse av node-programvare-nodeOS
eostool/src/klient/WalletClient.phpRPC-grensesnittinnkapslingsklassen i lommebokprogramvaren KEOSD
eostool/src/klient/RpcOutput.phpRPC returnerer den resulterende innkapslingsklassen
eostool/src/Crypto/PrivateKey.phpEOS privatnøkkelklasse
eostool/src/Crypto/PublicKey.phpEOS offentlig nøkkelklasse
eostool/src/Crypto/Signature.phpEOS-signaturklasse
eostool/src/Serializer/AbiType.phpEOSs ABI-type pakkeklasse
eostool/src/Serializer/AbiTypeFactory.phpABI-type fabrikkklasse
eostool/src/Serializer/SerialBuffer.phpSerialisert bufferimplementeringsklasse
eostool/src/Serializer/Serializer.phpSerializer-implementeringsklasse
eostool/src/Signer/Signer.phpSignergrensesnitt
eostool/src/Signer/KeosdSigner.phpKeosd signer-implementeringsklasse
eostool/src/Signer/LocalSigner.phpImplementering av lokal offline signer
eostool/src/Contract.phpKontraktsklasse
Eostool/SRC/EosTool.phpUtviklingspakke-inngangsklasse
eostool/testerEnhetstestcasekatalog
eostool/phpunit.xmlEnhetstestprofiler
eostool/leverandørTredjepartsavhengighetspakker
eostool/composer.jsonKomponistkonfigurasjonsfil
2. Få tilgang til nodeserveren
Bruk NodeClient-klassen for å få tilgang til nodeos' rpc-grensesnitt. For eksempel får følgende kode tilgang til get_info-grensesnittet til kjedepluginen for en Nodeos-node som kjører nativt:
2.1 RPC-anropsgruppering

EosTool benytter en konsistent navnemetode, og kallemetoden til NodeClient kan utledes ut fra API-et: API-gruppen tilsvarer en egenskap med samme navn som NodeClient, og API-et tilsvarer en metode konvertert av camelCase under samme attributt med samme navn som gruppen Client of No. For eksempel:



PluginsAPI-grupperingRPC APINodeClient-metoden
chain_api_pluginKjedenget_info$nc->chain->getInfo()
history_api_pluginHistorieget_transaction$nc->history->getTransaction()
net_api_pluginnettStatus$nc->net->status()
producer_api_pluginprodusentget_runtime_options$nc->producer->getRunTimeOptions()
dbsize_api_plugindbsizeFå tak$nc->dbsize->get()

Offisiell dokumentasjon for RPC API:https://developers.eos.io/eosio-nodeos/reference

2.2 RPC-kallparametere

For Nodeos krever noen kall at man sender inn tilleggsparametere, som for eksempel get_block-grensesnittet til kjedepluginen. Når du bruker EosTool for å gjøre et kall, organiserer du bare parameterne i et tilhørende array, eksempelkoden er som følger:



2.3 RPC-kall returnerer verdier

Returresultatet for alle RPC-kall er en RpcOutput-instans, og å kalle dens hasError()-metode kan avgjøre om kallet er feil, og du kan videre bruke getError()-metoden for å hente feilinformasjon.
Responsen på RPC-kallet kan oppnås gjennom getResult()-metoden, som er et StdClass-objekt konvertert fra det opprinnelige JSON-resultatet, slik at det enkelt kan hentes ut attributtinformasjon, som for eksempel:

2.4 Tilgang til mainnet/testnet-noder

Når man oppretter en NodeClient-instans, kan ytterligere parameterutførelser sendes inn for å definere EOS-hovednett- eller testnett-noder som skal aksesseres. For eksempel, bruk følgende kode for å få tilgang til en hovednettnode:

Eller besøk en node på Jungle testnet:


3. Få tilgang til lommebokserveren
Den nye versjonen av Keosd tilbyr ikke lenger RPC API-dokumentasjon, noe som kan bety at den har begynt å gli mot kanten i EOS-programvarestakken. Du kan imidlertid få tilgang til den gamle versjonen av dokumentasjonen på denne adressen:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Bruk WalletClient-klassen for å få tilgang til Keosds rpc-grensesnitt. For eksempel får følgende kode tilgang til list_wallets-grensesnittet til Keosd som kjører nativt:
Siden Keosds API ikke lenger er gruppert, henges den tilsvarende RPC-metoden direkte på WalletClient-objektet, noe som er en forskjell. Som NodeClient returnerer kallet til WalletClient et RpcOutput-objekt.

Keosd versjon 1.4 bruker UNIX-sokler i stedet for HTTP for å tilby RPC-grensesnitt som standard, noe som kan anses som tryggere å bruke IPC siden Keosd i de fleste tilfeller kjører nativt. Derfor er dette også standardinstansieringsalternativet for WalletClient, og i de fleste tilfeller trenger ingen ekstra parametere å sendes inn for å instansiere WalletClient.

4. Private og offentlige nøkler

EOS sin nøkkelalgoritme ligner på Bitcoin, men med noen justeringer og definerer sitt eget format.
Bruk den statiske metoden i PrivateKey-klassen new() for å generere en tilfeldig privat nøkkel. For eksempel:
toEos()-metoden brukes for å konvertere private nøkkelobjekter til et tilpasset format for EOS.

4.1 Utledning av offentlig nøkkel
Den offentlige nøkkelen kan utledes fra den private nøkkelen, for eksempel:


Bruk tilsvarende toEos()-metoden for å konvertere den offentlige nøkkelen til et tilpasset format for EOS.

4.2 Importer EOS private nøkler
Du kan konvertere en EOS-formatert privat nøkkel til et EosTool PrivateKey-objekt, for eksempel importerer koden under den spesifiserte EOS-private nøkkelen og viser den tilsvarende EOS-offentlige nøkkelen:

4.3 Autoritativ signatur
PrivateKeys sign()-metode støtter både vanlige signaturer og autoritative signaturer som kreves av EOS-noder. For eksempel returnerer følgende kode en vanlig signatur:

Send inn flere parametere for å oppnå en autoritativ signatur for de spesifiserte dataene:



5. Serialisering
EOS krever at transaksjoner blir serialisert før node push_transaction blir forpliktet, noe som også er en uunngåelig del av drift av EOS-transaksjoner i PHP.
I EosTool brukes Serializer-klassen for serialiseringsoperasjoner. For eksempel serialiserer følgende kode en EOS-overføringstransaksjon til et 16-desimal-kodestrømformat som kan sendes til en EOS-node:


Den statiske metoden fromAbi() i Serializer brukes til å konstruere en serializer-instans basert på en spesifisert abi, og deretter brukes serialize()-metoden for instansen til å serialisere den angitte typen data for å oppnå en heksadesimal kodestrøm.

6. Signatur
EosTool tilbyr to måter å signere transaksjoner på: ved å bruke Keosd for signering eller ved å bruke en lokal privat nøkkel.
Bruk KeosdSigner-klassen for å fullføre signeringen via lommebokserveren. For eksempel:

Ved å bruke LocalSigner-klassen kan du unngå å bruke keosd og bruke offline privat nøkkelsignering direkte. For eksempel:
bruk EosTool\Signer\LocalSigner;

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



7. Transaksjonsinnsending
En transaksjonsdata må normaliseres, serialiseres, signeres og pakkes gjennom en serie operasjoner før den kan sendes til Nodeos-noden for kringkasting. EosTool-klassen gir transact()-metoden for å isolere disse kjedelige operasjonene.
For eksempel oppretter koden nedenfor en EosTool-instans ved bruk av NodeClient og LocalSigner, og sender deretter inn en transaksjon:
Det er praktisk å endre signeren til KeosdSigner, for eksempel:


8. Påberope deg en enkelt kontraktssak
Bruk EosTools pushAction()-metode for å kalle en enkelt kontrakthandling. For eksempel kaller følgende kode hi()-metoden i Tommy-konto-hostingavtalen:



9. Utfør kontrakten
Distribuer kontrakten ved hjelp av EosTools setContract()-metode, for eksempel:
Interesserte venner kan gå her:http://t.cn/EUZAODQ




Publisert på 11.12.2018 08:59:58 |
Takk. Veldig nyttig.
 Vert| Publisert på 11.12.2018 09:06:52 |

Takk for støtten.
Publisert på 11.12.2018 09:11:46 |
Jeg har lest mye innhold på siden deres, og jeg føler at noe av det er oversatte utenlandske artikler
Publisert på 11.12.2018 09:32:07 |
Se på takk sjef for at du ble rik
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com