Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 9838|Válasz: 4

EOS Blockchain PHP Fejlesztő Kit

[Linket másol]
Közzétéve 2018. 12. 11. 8:56:36 | | |
Ezt a bejegyzést utoljára jimi2018 szerkesztette: 2018-12-11, 09:06

1. Fejlesztési csomag áttekintése
Az EosTool célja, hogy megszüntetze az EOS blokklánc alkalmazások PHP-vel történő fejlesztésének fájdalmát, például:
  • Hívjuk a funkcióit a Nodeos és Keosd RPC interfészén keresztül
  • Privát és nyilvános kulcsok generálása EOS formátumban offline
  • Használd a helyi privát kulcsodat EOS-kompatibilis tranzakciós aláírások generálására
  • A tranzakciós objektumok sorializálása a Nodeos által előírt packed_trx formátumba
Úgy tekinthető, hogy az EosTool az eosjs PHP verziója, amely teljes mértékben megvalósítható az EOS hivatalos kliens Cleos funkcióinak megvalósítására, és könnyen hozzáadható az EOS blokklánc támogatásához a PHP alkalmazásokban, jelentősen javítva a fejlesztési hatékonyságot.

Az érdeklődő barátok közvetlenül erre is ellátogathatnak, hogy letöltsék az EOS blokklánc PHP fejlesztő készletet:http://t.cn/EUZAODQ

Az EosTool Php 7.1+ környezetben fut, a jelenlegi verzió 1.0.0, és a fő kódfájlok listája a következő:

Kódfájlokillusztrál
eostool/src/client/NodeClient.phpA csomóponti szoftver nodeók RPC interfész csomagosztálya
eostool/src/client/WalletClient.phpA KEOSD pénztárcaszoftver RPC interfész kapszulázási osztálya
eostool/src/client/RpcOutput.phpAz RPC visszaadja a kapott kapszulázási osztályt
eostool/src/Crypto/PrivateKey.phpEOS privát kulcs osztály
eostool/src/Crypto/PublicKey.phpEOS nyilvános kulcs osztály
eostool/src/Crypto/Signature.phpEOS aláírásos osztály
eostool/src/Serializer/AbiType.phpAz EOS ABI típusú csomagosztálya
eostool/src/Serializer/AbiTypeFactory.phpABI típusú gyári osztály
eostool/src/Serializer/SerialBuffer.phpSerializált pufferimplementációs osztály
eostool/src/Serializer/Serializer.phpSerializer implementációs osztály
eostool/src/signer/Signer.phpAláíró interfész
eostool/src/Signer/KeosdSigner.phpKeosd aláíró implementációs osztály
eostool/src/Signer/LocalSigner.phpHelyi offline aláíró megvalósítás
eostool/src/Contract.phpSzerződésosztály
eostool/src/EosTool.phpFejlesztési csomag belépési osztály
eostool/vizsgálatokEgységteszt eset katalógus
eostool/phpunit.xmlEgységteszt profilok
eostool/vendorHarmadik fél függőségi csomagok
Eostool/composer.jsonComposer konfigurációs fájl
2. Hozzáférés a csomópont szerverhez
Használd a NodeClient osztályt a nodeos rpc interfészének eléréséhez. Például a következő kód hozzáfér a láncplugin get_info felületéhez egy natívan futó Nodeos csomópontnál:
2.1 RPC híváscsoportosítás

Az EosTool egy következetes elnevezési módszert alkalmaz, és a NodeClient hívó módszere az API alapján következtethető: az API csoportosítás egy azonos nevű tulajdonságnak felel meg, mint a NodeClient, az API pedig egy olyan metódusnak felel meg, amelyet a camelCase ugyanazzal a név attribútummal konvertál, mint a No kliens csoportosítása. Például:



PluginekAPI csoportosításRPC APINodeClient módszer
chain_api_pluginLáncget_info$nc->chain->getInfo()
history_api_pluginTörténelemget_transaction$nc->history->getTransaction()
net_api_pluginhálóStátusz$nc->net->status()
producer_api_pluginproducerget_runtime_options$nc->producer->getRunTimeOptions()
dbsize_api_plugindbsizeFogd$nc->dbsize->get()

Hivatalos dokumentáció az RPC API-hoz:https://developers.eos.io/eosio-nodeos/reference

2.2 RPC hívási paraméterek

Nodeos esetén egyes hívások további paraméterek továbbítását igényelnek, például a láncplugin get_block interfészét, amikor EosTool-t használunk híváshoz, egyszerűen rendezd a paramétereket egy kapcsolódó tömbbe, a mintakód a következő:



2.3 RPC hívások értéket adnak vissza

Az összes RPC hívás visszanyerő eredménye egy RpcOutput példány, és a hasError() metódus hívása meghatározhatja, hogy a hívás hibás-e, továbbá a getError() módszerrel is használhatod hibainformációt.
Az RPC hívás válasza a getResult() módszerrel érhető el, amely egy StdClass objektum, amelyet az eredeti JSON eredményből konvertáltak, így könnyen kinyerhető attribútuminformációk, például:

2.4 Hozzáférés a mainnet/testnet csomópontokhoz

NodeClient instance létrehozásakor további paramétervégrehajtások is bekerülhetnek, hogy meghatározzák az EOS mainnet vagy tesztnet csomópontokat. Például a következő kódot használjuk egy főhálózati csomópont eléréséhez:

Vagy látogass meg egy csomópontot a Jungle teszthálózaton:


3. Hozzáférés a pénztárca szerverhez
A Keosd új verziója már nem kínál RPC API dokumentációt, ami azt jelentheti, hogy az EOS szoftver stackjében már a szélére csúszik. Azonban a dokumentáció régi verzióját ezen a címen érheti el:
https://developers.eos.io/eosio-nodeos/v1.1.0/reference

Használd a WalletClient osztályt a Keosd rpc felületének eléréséhez. Például a következő kód eléri a Keosd list_wallets interfészét, amely natív módon fut:
Mivel a Keosd API-ja már nem csoportosítható, az RPC megfelelő módszer közvetlenül a WalletClient objektumra van csatlakoztatva, ami különbség. Ahogy a NodeClient, a WalletClient-hez való hívás is egy RpcOutput objektumot ad vissza.

A Keosd 1.4-es verziója alapértelmezés szerint UNIX socketeket használ HTTP helyett, hogy RPC interfészeket biztosítson, ami biztonságosabbnak tekinthető IPC használatra, mivel a Keosd legtöbb esetben natív módon fut. Ezért ez a WalletClient alapértelmezett instantiációs opciója is, és a legtöbb esetben nem szükséges további paramétereket továbbítani a WalletClient indításához.

4. Magán- és nyilvános kulcsok

Az EOS kulcsfontosságú algoritmusa hasonló a Bitcoinhoz, de néhány finomhangolással és saját formátumot határoz meg.
Használd a PrivateKey class, new() statikus módszerét véletlenszerű privát kulcs generálásához. Például:
toEos() módszert arra használják, hogy privát kulcsú objektumokat egyedi formátumba alakítsanak EOS számára.

4.1 Nyilvános kulcs levezetés
A nyilvános kulcs levezethető a privát kulcsból, például:


Hasonlóképpen, használd a toEos() módszert, hogy a nyilvános kulcsot egyedi formátumra konvertáld EOS számára.

4.2 EOS privát kulcsok importálása
Egy EOS formátumú privát kulcsot átalakíthatsz EosTool PrivateKey objektummá, például az alábbi kód importálja a megadott EOS privát kulcsot, és megjeleníti annak megfelelő EOS nyilvános kulcsát:

4.3 Tekintélyalapú aláírás
A PrivateKey sign() módszere támogatja mind a normál aláírásokat, mind az EOS csomópontok által előírt hiteles aláírásokat. Például a következő kód egyszerű aláírást ad vissza:

Adjon be további paramétereket, hogy hiteles aláírást kapjon a megadott adatokhoz:



5. Sorozatosítás
Az EOS megköveteli, hogy a tranzakciókat a node push_transaction kötése előtt serializálják, ami szintén elkerülhetetlen része az EOS tranzakciók PHP-ben történő üzemeltetésének.
Az EosToolban a Serializer osztályt használják serializációs műveletekhez. Például a következő kód egy EOS átviteli tranzakciót egy 16 decimális kódfolyam formátumba sorol, amelyet egy EOS csomópontnak lehet beküldeni:


A Serializer fromAbi() statikus módszerét használják egy meghatározott abi alapján sorozatizátor példány létrehozására, majd a példány serialize() módszerét használják a megadott adattípus sorializálására, hogy hatdizimális kódfolyamot kapjunk.

6. Aláírás
Az EosTool kétféleképpen is aláírja a tranzakciókat: Keosd aláírásához vagy helyi privát kulcs használatával.
Használd a KeosdSigner osztályt az aláírás befejezéséhez a pénztárca szerveren. Például:

A LocalSigner osztály használatával elkerülheted a keosd használatát, és közvetlenül használhatod az offline privát kulcs aláírást. Például:
használd az EosTool\Signer\LocalSigner;

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



7. Tranzakció benyújtása
Egy tranzakciós adatot normalizálni, sorolni, aláírni és csomagolni kell egy sor műveleten keresztül, mielőtt továbbítható volna a Nodeos csomópontnak sugárzásra. Az EosTool osztály biztosítja a transact() módszert, amellyel ezeket a fárasztó műveleteket elkülönítik.
Például az alábbi kód létrehoz egy EosTool példányt a NodeClient és a LocalSigner segítségével, majd tranzakciót küld be:
Kényelmes az aláíró KeosdSignerre váltása, például:


8. Egyetlen szerződéses eljárás alkalmazása
Használd az EosTool pushAction() módszerét egyetlen szerződéses akció meghívására. Például a következő kód hívja a Tommy fiók hárasztó szerződésének hi() módszerét:



9. Telepítsd a szerződést
Telepítsük a szerződést az EosTool setContract() módszerével, például:
Érdeklődő barátok itt fordulhatnak:http://t.cn/EUZAODQ




Közzétéve 2018. 12. 11. 8:59:58 |
Köszi, nagyon hasznos
 Háziúr| Közzétéve 2018. 12. 11. 9:06:52 |

Köszönöm a támogatást.
Közzétéve 2018. 12. 11. 9:11:46 |
Sok tartalmat olvastam az oldalodon, és úgy érzem, néhány külföldi fordítású cikk
Közzétéve 2018. 12. 11. 9:32:07 |
Nézd meg, a köszönet főnök, hogy meggazdagodott
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com