이 글의 내용은 JSON-RPC를 통해 이더리움과 상호 작용하는 PHP의 내용 분석에 관한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
작년부터 블록체인 사업을 전개하고 있습니다. 최근 이더리움을 사용하고 PHP로 작업하면서 이 주제에 관해 이야기를 나눠볼까 생각했습니다.
여기에 전제 조건이 있습니다:
1. 블록체인을 이해합니다.
2. 프로그래밍 언어에 대한 지식이 있습니다.
텍스트:
$ sudo apt-get update $ sudo apt-get upgrade
그 후 SSH, iptables, ntp 등을 설정했습니다.
그 다음에는 Apache + PHP가 나옵니다. PHP 버전은 5.5입니다.
$ sudo apt - get install php 5 libapache 2 - mod - php 5 php 5 - curl
2. 이더리움 소개
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-dev
그런 다음 설치하면 됩니다.
$ sudo apt-get update $ sudo apt-get install ethereum
설치가 완료되면 즉시 geth를 시작하세요.
먼저 데이터 디렉토리를 생성하고 첫 번째 블록(제네시스 블록)에 대한 설정을 설명합니다.$ 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”:{} }
$ 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.log
콘솔 모드에서 성공적으로 시작됩니다.
여러 옵션이 지정되어 있으며, 설명은 아래에 요약되어 있습니다.
3. JSON-RPC 호출을 준비합니다.
먼저 현재 계정 정보를 가져옵니다. 또한 지난번에 시작한 geth 콘솔을 사용합니다.
> eth.accounts []
아직 계정을 만들지 않았기 때문에 만들어야 합니다.
> personal.newAccount("password") "0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b" > eth.accounts ["0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b"]
계정이 생성되었습니다. 채굴 시 보상을 받을 수 있도록 설정하였습니다.
> miner.setEtherbase(eth.accounts [0])
다음으로 현재 노드에서는 RPC 호출을 허용하지 않으므로 옵션을 추가하고 다시 시작해 보세요. 먼저 geth를 마무리하겠습니다.
> exit
옵션을 추가하고 다시 시작합시다.
$ 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.log
rpc에 대한 여러 옵션을 추가했습니다. 설명은 다음과 같습니다.
4. PHP에서 액세스
README에서 볼 수 있듯이 클래스만 생성하면 됩니다.
테스트 스크립트와 같은 디렉토리에 넣어서 사용해보자.
$ 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());
이 스크립트를 실행하면 아래와 같은 계정 목록이 나와야 합니다.
$ php test.php Array ( [0] => 0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b )
연결이 되지 않을 경우 포트 설정 등을 확인해주세요.
지금까지는 간단하게 설명했는데, PHP로 개발하는 것이 의외로 쉽나요?
관련 권장 사항:
브라우저가 비트코인 코어 클라이언트의 JSON-RPC 인터페이스를 통해 관련 데이터를 얻는 방법 php으로 구현된 간단한 json rpc 프레임워크 예위 내용은 PHP는 JSON-RPC를 통해 Ethereum과의 상호 작용을 위한 콘텐츠 구문 분석을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!