Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 9838|Svar: 4

EOS Blockchain PHP Udviklingskit

[Kopier link]
Opslået på 11/12/2018 08.56.36 | | |
Dette indlæg blev sidst redigeret af jimi2018 den 11-12-2018 kl. 09:06

1. Oversigt over udviklingspakken
Formålet med EosTool er at eliminere besværet ved at udvikle EOS blockchain-applikationer ved hjælp af PHP, såsom:
  • Kald dens funktioner gennem RPC-grænsefladen mellem Nodeos og Keosd
  • Generer private og offentlige nøgler i EOS-format offline
  • Brug din lokale private nøgle til at generere EOS-kompatible transaktionssignaturer
  • Serialiser transaktionsobjekter til det packed_trx-format, som Nodeos kræver
Det kan betragtes som en PHP-version af eosjs, som kan bruges til fuldt ud at implementere funktionerne i EOS officielle klient Cleos, og det kan også nemt tilføjes til understøttelsen af EOS-blockchain i PHP-applikationer, hvilket i høj grad forbedrer udviklingseffektiviteten.

Interesserede venner kan også gå direkte til dette for at downloade EOS blockchain PHP udviklingssæt:http://t.cn/EUZAODQ

EosTool kører i Php 7.1+ miljøet, den nuværende version er 1.0.0, og listen over hovedkodefiler er som følger:

Kodefilerillustrere
eostool/src/klient/NodeClient.phpRPC-interfacepakkeklassen af node-software-nodeos
eostool/src/client/WalletClient.phpRPC-interface-indkapslingsklassen i wallet-softwaren KEOSD
eostool/src/klient/RpcOutput.phpRPC returnerer den resulterende indkapslingsklasse
eostool/src/Crypto/PrivateKey.phpEOS private nøgleklasse
eostool/src/Crypto/PublicKey.phpEOS public key-klasse
eostool/src/Crypto/Signature.phpEOS-signaturklasse
eostool/src/Serializer/AbiType.phpEOS's ABI-type pakkeklasse
eostool/src/Serializer/AbiTypeFactory.phpABI-type fabriksklasse
eostool/src/Serializer/SerialBuffer.phpSerialiseret buffer-implementeringsklasse
eostool/src/Serializer/Serializer.phpSerializer-implementeringsklasse
eostool/src/Signer/Signer.phpSigner-interface
eostool/src/Signer/KeosdSigner.phpKeosd-signer-implementeringsklasse
eostool/src/Signer/LocalSigner.phpLokal offline signer-implementering
eostool/src/Contract.phpKontraktklasse
eostool/src/EosTool.phpUdviklingspakke-indgangsklasse
eostool/testsEnhedstestcasekatalog
eostool/phpunit.xmlEnhedstestprofiler
eostool/leverandørTredjepartsafhængighedspakker
eostool/composer.jsonKomponistkonfigurationsfil
2. Få adgang til nodeserveren
Brug NodeClient-klassen til at få adgang til nodeos' rpc-interface. For eksempel tilgår følgende kode den get_info interface i kæde-plugin'et for en Nodeos-node, der kører nativt:
2.1 RPC-kaldsgruppering

EosTool anvender en konsekvent navngivningsmetode, og kaldemetoden NodeClient kan udledes ud fra API'et: API-grupperingen svarer til en egenskab med samme navn som NodeClient, og API'en svarer til en metode konverteret af camelCase under samme attribut med samme navn som gruppen af Client of No. For eksempel:



PluginsAPI-grupperingRPC APINodeClient-metoden
chain_api_pluginKædeget_info$nc->chain->getInfo()
history_api_pluginHistorieget_transaction$nc->history->getTransaction()
net_api_pluginNetStatus$nc->net->status()
producer_api_pluginProducerget_runtime_options$nc->producer->getRunTimeOptions()
dbsize_api_plugindbsizeFå fat$nc->dbsize->get()

Officiel dokumentation for RPC API:https://developers.eos.io/eosio-nodeos/reference

2.2 RPC kaldparametre

For Nodeos kræver nogle kald, at man sender yderligere parametre ind, såsom kæde-plugins' get_block-interface; når man bruger EosTool til at foretage et kald, skal man blot organisere parametrene i et tilhørende array, eksempelkoden er som følger:



2.3 RPC-kald returnerer værdier

Returresultatet af alle RPC-kald er en RpcOutput-instans, og at kalde dens hasError()-metode kan afgøre, om kaldet er forkert, og du kan yderligere bruge getError()-metoden til at opnå fejlinformation.
Svaret på RPC-kaldet kan opnås via getResult()-metoden, som er et StdClass-objekt konverteret fra det oprindelige JSON-resultat, så det let kan udtrækkes attributinformation, såsom:

2.4 Adgang til mainnet/testnet-noder

Når man opretter en NodeClient-instans, kan yderligere parameterudførelser sendes ind for at definere EOS-mainnet- eller testnet-noder, der skal tilgås. For eksempel kan du bruge følgende kode til at tilgå en mainnet-node:

Eller besøg en node på Jungle testnet:


3. Få adgang til wallet-serveren
Den nye version af Keosd leverer ikke længere RPC API-dokumentation, hvilket kan betyde, at den er begyndt at glide ud til kanten i EOS-softwarestakken. Du kan dog få adgang til den gamle version af dokumentationen på denne adresse:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Brug WalletClient-klassen til at få adgang til Keosds rpc-interface. For eksempel tilgår følgende kode det list_wallets interface i Keosd, som kører nativt:
Da Keosds API ikke længere er grupperet, hænges den tilsvarende RPC-metode direkte på WalletClient-objektet, hvilket er en forskel. Ligesom NodeClient returnerer kaldet til WalletClient et RpcOutput-objekt.

Keosd version 1.4 bruger UNIX-sockets i stedet for HTTP til at levere RPC-grænseflader som standard, hvilket kan anses for sikrere at bruge IPC, da Keosd i de fleste tilfælde kører native. Derfor er dette også standardinstansieringsmuligheden for WalletClient, og i de fleste tilfælde behøver der ikke indtastes yderligere parametre for at instansiere WalletClient.

4. Private og offentlige nøgler

EOS's nøglealgoritme ligner Bitcoin, men med nogle justeringer og definerer sit eget format.
Brug den statiske metode i PrivateKey-klassen new() til at generere en tilfældig privat nøgle. For eksempel:
toEos()-metoden bruges til at konvertere private nøgleobjekter til et brugerdefineret format for EOS.

4.1 Udledning af offentlige nøgler
Den offentlige nøgle kan udledes fra den private nøgle, såsom:


Brug tilsvarende toEos()-metoden til at konvertere den offentlige nøgle til et brugerdefineret format for EOS.

4.2 Import af EOS Private Keys
Du kan konvertere en EOS-formateret privat nøgle til et EosTool PrivateKey-objekt, for eksempel importerer koden nedenfor den specificerede EOS-private nøgle og viser dens tilsvarende EOS-offentlige nøgle:

4.3 Autoritativ underskrift
PrivateKeys sign()-metode understøtter både normale signaturer og autoritative signaturer, som kræves af EOS-noder. For eksempel returnerer følgende kode en almindelig signatur:

Indfør yderligere parametre for at opnå en autoritativ signatur for de specificerede data:



5. Serialisering
EOS kræver, at transaktioner serialiseres, før node push_transaction committes, hvilket også er en uundgåelig del af at drive EOS-transaktioner i PHP.
I EosTool bruges Serializer-klassen til serialiseringsoperationer. For eksempel serialiserer følgende kode en EOS-overførselstransaktion til et 16-decimal kodestrømsformat, der kan sendes til en EOS-node:


Den statiske metode fromAbi() i Serializer bruges til at konstruere en serializer-instans baseret på en specificeret abi, og derefter bruges serialize()-metoden for instansen til at serialisere den specificerede datatype for at opnå en hexadecimal kodestrøm.

6. Underskrift
EosTool tilbyder to måder at signere transaktioner på: ved at bruge Keosd til signering eller ved at bruge en lokal privat nøgle.
Brug KeosdSigner-klassen til at fuldføre signeringen via wallet-serveren. For eksempel:

Ved at bruge LocalSigner-klassen kan du undgå at bruge keosd og direkte bruge offline privat nøglesignering. For eksempel:
brug EosTool\Signer\LocalSigner;

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



7. Transaktionsindlevering
En transaktionsdata skal normaliseres, serialiseres, signeres og pakkes gennem en række operationer, før den kan sendes til Nodeos-noden til broadcasting. EosTool-klassen tilbyder transact()-metoden til at isolere disse kedelige operationer.
For eksempel opretter koden nedenfor en EosTool-instans ved brug af NodeClient og LocalSigner, og indsender derefter en transaktion:
Det er praktisk at ændre signeren til KeosdSigner, for eksempel:


8. Påberåber sig en enkelt kontraktsag
Brug EosTools pushAction()-metode til at kalde en enkelt kontrakthandling. For eksempel kalder følgende kode hi()-metoden i Tommy-konto-hostingkontrakten:



9. Udrul kontrakten
Udrul kontrakten ved hjælp af EosTools setContract()-metode, for eksempel:
Interesserede venner kan gå herhen:http://t.cn/EUZAODQ




Opslået på 11/12/2018 08.59.58 |
Tak. Meget nyttigt.
 Udlejer| Opslået på 11/12/2018 09.06.52 |

Tak for støtten.
Opslået på 11/12/2018 09.11.46 |
Jeg har læst meget indhold på jeres side, og jeg føler, at noget af det er oversatte udenlandske artikler
Opslået på 11/12/2018 09.32.07 |
Se på tak til chefen for at være blevet rig
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com