Maison >développement back-end >tutoriel php >PHP implémente l'analyse de contenu pour l'interaction avec Ethereum via JSON-RPC
Le contenu de cet article concerne l'analyse du contenu de PHP interagissant avec Ethereum via JSON-RPC. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Depuis l'année dernière, nous développons l'activité blockchain. Ayant utilisé Ethereum récemment et travaillant avec PHP, j'ai pensé que nous pourrions discuter de ce sujet.
Il y a une prémisse ici :
1. Comprendre la blockchain
2.
$ sudo apt-get update $ sudo apt-get upgradeAprès cela, j'ai configuré SSH, iptables, ntp, etc. Vient ensuite Apache + PHP. La version PHP sera la 5.5.
$ sudo apt - get install php 5 libapache 2 - mod - php 5 php 5 - curl2. Introduction à Ethereum Cette fois, nous utiliserons le nœud Ethereum réalisé en langage GO,
appelé geth. go-ethereum
$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa:ethereum / ethereum $ sudo add-apt-repository -y ppa:ethereum / ethereum-devAprès cela, installez-le simplement.
$ sudo apt-get update $ sudo apt-get install ethereumDémarrez geth immédiatement une fois l'installation terminée.
Tout d'abord, créez un répertoire de données et décrivez les paramètres du premier bloc (le bloc Genesis).
$ mkdir~ / eth_private_net $ vim~ / eth_private_net / my_genesis.json { “nonce”:“0x0000000000000042”, “timestamp”:“0x0”, “parentHash”:“0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”, “extraData”:“0x0”, “gasLimit”:“0xffffffff”, “难度”:“0x4000”, “mixhash”:“0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”, “coinbase”:“0x3333333333333333333333333333333333333333”, “alloc”:{} }Ensuite, créez le bloc Genesis et démarrez geth.
$ geth --datadir "/home/yoshida/eth_private_net" init /home/yoshida/eth_private_net/my_genesis.json $ geth --networkid 57598955 --port 8955 --nodiscover --datadir "/home/yoshida/eth_private_net" console 2>> /home/yoshida/eth_private_net/geth_err.logDémarrez avec succès en mode console. précise plusieurs options, les explications sont résumées ci-dessous.
> eth.accounts []Nous n’avons pas encore créé de compte, nous devons donc le créer.
> personal.newAccount("password") "0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b" > eth.accounts ["0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b"]Compte maintenant créé. Nous l'avons configuré pour pouvoir obtenir des récompenses lors de l'exploitation minière.
> miner.setEtherbase(eth.accounts [0])Ensuite, puisque le nœud actuel n'autorise pas les appels RPC, ajoutez une option et redémarrez-le. Commençons par conclure avec Geth.
> exitAjoutons des options et redémarrons
$ geth --networkid 57598955 --port 8955 --nodiscover --rpc --rpcaddr "0.0.0.0" --rpcport "8956" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --datadir "/home/yoshida/eth_private_net" console 2>> /home/yoshida/eth_private_net/geth_err.logAjout de plusieurs options pour rpc. L'explication est la suivante.
$ cd /home/yoshida/php-eth/ $ ls -l ethereum.php json-rpc.php $ vim test.php <?php require_once 'ethereum.php'; $ethereum = new Ethereum('localhost', '8956'); print_r($ethereum->eth_accounts());Lorsque nous exécutons ce script, il devrait y avoir une liste de comptes comme suit.
$ php test.php Array ( [0] => 0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b )Si vous ne parvenez pas à vous connecter, veuillez vérifier les paramètres du port, etc. Jusqu’à présent, nous l’avons expliqué simplement, mais n’est-il pas étonnamment facile de développer avec PHP ? Recommandations associées :
Comment le navigateur obtient des données pertinentes via l'interface JSON-RPC du client Bitcoin Core
Un exemple simple de framework json rpc implémenté par php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!