Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 9838|Odpoveď: 4

EOS Blockchain PHP vývojová sada

[Kopírovať odkaz]
Zverejnené 11. 12. 2018 8:56:36 | | |
Tento príspevok naposledy upravil jimi2018 dňa 11.12.2018 09:06

1. Prehľad vývojového balíka
Účelom EosTool je odstrániť nepríjemnosti spojené s vývojom EOS blockchainových aplikácií pomocou PHP, napríklad:
  • Funkcie volajte cez RPC rozhranie Nodeos a Keosd
  • Generovanie súkromných a verejných kľúčov vo formáte EOS offline
  • Použite svoj lokálny súkromný kľúč na generovanie transakčných podpisov kompatibilných s EOS
  • Serializujte transakčné objekty do packed_trx formátu požadovaného Nodeosom
Možno považovať EosTool za PHP verziu eosjs, ktorú možno použiť na plnú implementáciu funkcií oficiálneho klienta EOS Cleos, a tiež ju možno jednoducho pridať k podpore EOS blockchainu v PHP aplikáciách, čím sa výrazne zvyšuje efektivita vývoja.

Záujemcovia si môžu tiež priamo stiahnuť EOS blockchain PHP development kit:http://t.cn/EUZAODQ

EosTool beží v prostredí Php 7.1+, aktuálna verzia je 1.0.0 a zoznam hlavných kódových súborov je nasledovný:

Kódové súboryilustrovať
eostool/src/client/NodeClient.phpTrieda balíkov RPC rozhrania, ktoré tvoria nodeos softvéru pre uzly
eostool/src/klient/WalletClient.phpTrieda zapuzdrenia RPC rozhrania v peňaženkovom softvéri KEOSD
eostool/src/klient/RpcOutput.phpRPC vracia výslednú triedu zapuzdrenia
eostool/src/Crypto/PrivateKey.phpTrieda súkromného kľúča EOS
eostool/src/Crypto/PublicKey.phpTrieda verejného kľúča EOS
eostool/src/Crypto/Signature.phpTrieda podpisu EOS
eostool/src/Serializer/AbiType.phpTrieda balíkov ABI v EOS
eostool/src/Serializer/AbiTypeFactory.phpTovárenská trieda typu ABI
eostool/src/Serializer/SerialBuffer.phpTrieda implementácie serializovaného bufferu
eostool/src/Serializer/Serializer.phpImplementačná trieda serializátora
eostool/src/Signer/Signer.phpRozhranie signer
eostool/src/Signer/KeosdSigner.phpKeosd signer implementation class
eostool/src/Signer/LocalSigner.phpImplementácia lokálneho offline signera
eostool/src/Contract.phpZmluvná trieda
EOSTOOL/SRC/EosTool.phpVstupná trieda vývojového balíka
eostool/testyKatalóg jednotkových testovacích prípadov
Eostool/phpunit.xmlProfily jednotkových testov
eostool/predajcaZávislostné balíky tretích strán
eostool/composer.jsonKonfiguračný súbor skladateľa
2. Prístup k serveru uzla
Použite triedu NodeClient na prístup k rpc rozhraniu nodeos. Napríklad nasledujúci kód pristupuje k get_info rozhraniu chain pluginu pre natívne bežiaci Nodeos uzol:
2.1 Zoskupovanie hovorov RPC

EosTool používa konzistentnú metódu pomenovania a metódu volania NodeClient možno odvodiť podľa API: zoskupenie API zodpovedá vlastnosti rovnakého názvu ako NodeClient a API zodpovedá metóde konvertovanej camelCase pod rovnakým atribútom rovnakého mena ako zoskupenie Client of No. Napríklad:



PluginyZoskupovanie APIRPC APIMetóda NodeClient
chain_api_pluginReťazget_info$nc->chain->getInfo()
history_api_pluginHistóriaget_transaction$nc->history->getTransaction()
net_api_pluginnetStav$nc->net->status()
producer_api_pluginProducentget_runtime_options$nc->producent->getRunTimeOptions()
dbsize_api_plugindbsizeZískaj$nc->dbsize->get()

Oficiálna dokumentácia pre RPC API:https://developers.eos.io/eosio-nodeos/reference

2.2 Parametre volania RPC

Pre Nodeos niektoré volania vyžadujú odoslanie ďalších parametrov, ako je get_block rozhranie chain pluginu, pri použití EosTool na vykonanie volania stačí zorganizovať parametre do pridruženého poľa, ukážkový kód je nasledovný:



2.3 Návratové hodnoty volaní RPC

Výsledok všetkých RPC volaní je inštancia RpcOutput a volanie metódy hasError() môže zistiť, či je volanie nesprávne, a môžete ďalej použiť metódu getError() na získanie informácií o chybe.
Odpoveď volania RPC je možné získať metódou getResult(), čo je objekt StdClass konvertovaný z pôvodného JSON výsledku, takže je možné ľahko extrahovať informácie o atribúte, napríklad:

2.4 Prístup k uzlom mainnet/testnet

Pri vytváraní inštancie NodeClient je možné zadať ďalšie vykonania parametrov na definovanie uzlov EOS mainnet alebo testnet na prístup. Napríklad použite nasledujúci kód na prístup k mainnetovému uzlu:

Alebo navštívte uzol na Jungle testnete:


3. Prístup k serveru peňaženky
Nová verzia Keosd už neposkytuje dokumentáciu RPC API, čo môže znamenať, že sa začala posúvať na okraj softvérového stacku EOS. Starú verziu dokumentácie však môžete získať na tejto adrese:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Použite triedu WalletClient na prístup k RPC rozhraniu Keosd. Napríklad nasledujúci kód pristupuje k list_wallets rozhraniu Keosd, ktoré beží natívne:
Keďže Keosd API už nie je zoskupené, RPC zodpovedajúca metóda je priamo zavesená na objekte WalletClient, čo je rozdiel. Rovnako ako NodeClient, volanie WalletClient vráti objekt RpcOutput.

Verzia Keosd 1.4 používa UNIX sockety namiesto HTTP na poskytovanie RPC rozhraní ako predvolené, čo môže byť považované za bezpečnejšie na použitie IPC, keďže Keosd vo väčšine prípadov beží natívne. Preto je to tiež predvolená možnosť inštancie pre WalletClient a vo väčšine prípadov nie je potrebné vkladať žiadne ďalšie parametre na vytvorenie WalletClient.

4. Súkromné a verejné kľúče

Kľúčový algoritmus EOS je podobný Bitcoinu, ale s niekoľkými úpravami a definovaním vlastného formátu.
Použite statickú metódu triedy PrivateKey new() na generovanie náhodného súkromného kľúča. Napríklad:
metóda toEos() sa používa na konverziu objektov súkromného kľúča do vlastného formátu pre EOS.

4.1 Odvodenie verejného kľúča
Verejný kľúč možno odvodiť zo súkromného kľúča, napríklad:


Podobne použite metódu toEos() na konverziu verejného kľúča do vlastného formátu pre EOS.

4.2 Import súkromných kľúčov EOS
Súkromný kľúč formátovaný EOS môžete previesť na objekt EosTool PrivateKey, napríklad kód nižšie importuje špecifikovaný EOS súkromný kľúč a zobrazí jeho zodpovedajúci verejný kľúč EOS:

4.3 Autoritatívny podpis
Metóda sign() v PrivateKey podporuje bežné aj autoritatívne podpisy požadované uzlami EOS. Napríklad nasledujúci kód vráti obyčajný podpis:

Zadajte ďalšie parametre na získanie autoritatívneho podpisu pre špecifikované údaje:



5. Serializácia
EOS vyžaduje, aby boli transakcie serializované pred uložením node push_transaction, čo je tiež nevyhnutná súčasť prevádzky EOS transakcií v PHP.
V EosTool sa trieda Serializer používa pre operácie serializácie. Napríklad nasledujúci kód serializuje transakciu EOS prenosu do formátu kódového prúdu s 16 desatinkami, ktorý môže byť odoslaný uzlu EOS:


Statická metóda fromAbi() zo Serializeru sa používa na vytvorenie inštancie serializera na základe špecifikovaného abi, a potom sa metóda serializa() tejto inštancie použije na serializáciu špecifikovaného typu dát za účelom získania hexadecimálneho kódového prúdu.

6. Podpis
EosTool poskytuje dva spôsoby podpisovania transakcií: pomocou Keosd na podpisovanie alebo pomocou lokálneho súkromného kľúča.
Použite triedu KeosdSigner na dokončenie podpisu pomocou peňaženkového servera. Napríklad:

Použitím triedy LocalSigner sa môžete vyhnúť keosd a priamo použiť offline podpisovanie privátnych kľúčov. Napríklad:
používať EosTool\Signer\LocalSigner;

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



7. Podanie transakcie
Transakčné dáta musia byť normalizované, serializované, podpísané a zabalené prostredníctvom série operácií, než môžu byť odoslané na Nodeos uzol na vysielanie. Trieda EosTool poskytuje metódu transact() na izolovanie týchto zdĺhavých operácií.
Napríklad nižšie uvedený kód vytvorí inštanciu EosTool pomocou NodeClient a LocalSigner a potom odošle transakciu:
Je pohodlné zmeniť signer na KeosdSigner, napríklad:


8. Podať žalobu na základe jednej zmluvy
Použite metódu pushAction() v EosTool na zavolanie jednej akcie kontraktu. Napríklad nasledujúci kód volá metódu hi() z hostingovej zmluvy Tommy:



9. Nasadiť zmluvu
Nasadiť kontrakt pomocou metódy setContract() od EosTool, napríklad:
Záujemcovia môžu ísť sem:http://t.cn/EUZAODQ




Zverejnené 11. 12. 2018 8:59:58 |
Ďakujem, veľmi užitočné
 Prenajímateľ| Zverejnené 11. 12. 2018 9:06:52 |
Summer Zverejnené 11.12.2018 08:59
Ďakujem, veľmi užitočné

Ďakujem za podporu.
Zverejnené 11. 12. 2018 9:11:46 |
Čítal som veľa obsahu na vašej stránke a mám pocit, že niektoré z nich sú preložené zahraničné články
Zverejnené 11. 12. 2018 9:32:07 |
Pozri sa na ďakujem šéfovi za zbohatnutie
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com