目錄
1.開發環境
2.以太坊的介紹
3.準備JSON-RPC呼叫
4.從PHP訪問
首頁 後端開發 php教程 php透過JSON-RPC實現與以太坊互動的內容解析

php透過JSON-RPC實現與以太坊互動的內容解析

Aug 23, 2018 am 10:03 AM
django laravel php 以太坊 區塊鏈

這篇文章帶給大家的內容是關於php透過JSON-RPC實現與以太坊互動的內容解析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

自去年以來,我們正在開發區塊鏈(Blockchain)業務。最近使用過Ethereum並使用PHP,所以我想我們應該聊聊這個主題。

這裡有個前提:

  • 1、理解區塊鏈

  • 2、對程式語言有了解

正文:

1.開發環境

我們將使用Ubuntu 14.04 LTS。安裝作業系統後,輸入預先決定的命令。

$ 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語言製作的以太坊節點,go-ethereum簡稱geth。

首先讓我們新增一個儲存庫。

$ 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”:{}
}
登入後複製

接下來,建立Genesis區塊並啟動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.log
登入後複製

處於控制台模式時,啟動成功。

指定了幾個選項,解釋總結如下。

  • networkid,連接到公共節點。

  • port,它是一個用於待機的連接埠。我把它改為4位數字。

  • nodiscover,這是一個防止節點自動查看的設定。

  • datadir,指定區塊鏈儲存資料的目錄。

  • console,在啟動的同時啟動控制台。

好了,準備PHP的下一個調用,但在此之前讓我們在geth方面做更多準備。

3.準備JSON-RPC呼叫

透過JSON-RPC從PHP存取。在這裡,我們將設定鄰域。

首先,將取得目前的帳戶資訊。我們也使用上次啟動的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的幾個選項。解釋如下。

  • rpc,允許RPC備用。

  • rpcaddr,用於RPC備用的IP位址。

  • rpcport,用於監聽RPC的連接埠。我將連接埠號碼降低為4位數。

  • rpccorsdomain,允許存取RPC的網域。請注意,當發布節點時,如果它是“*”,它將允許所有內容。

節點端現在準備就緒。接下來將是來自PHP的呼叫。

4.從PHP訪問

最後就是為什麼從PHP訪問,而是有他們,因為這是相當困難,當你寫程式的時候可以使用這個。

如你在README中看到的,你只需要建立一個類別。

讓我們透過將它放在與測試腳本相同的目錄中來使用它。

$ cd /home/yoshida/php-eth/
$ ls -l
ethereum.php json-rpc.php
$ vim test.php
<?php

require_once &#39;ethereum.php&#39;;
$ethereum = new Ethereum(&#39;localhost&#39;, &#39;8956&#39;);
print_r($ethereum->eth_accounts());
登入後複製

當我們執行這個腳本時,應該有一個帳戶清單如下。

$ php test.php
Array
(
[0] => 0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b
)
登入後複製

如果無法連接,請檢查連接埠設定等。

到目前為止,我們簡單的解釋了它,但感覺使用PHP開發是否出乎意料地容易?

相關推薦:

瀏覽器如何透過比特幣核心用戶端的JSON-RPC介面取得相關資料

php實作的一個簡單json rpc框架實例

#

以上是php透過JSON-RPC實現與以太坊互動的內容解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
2025最安全交易所TOP5:黑U避坑指南,資金100%保命法則 2025最安全交易所TOP5:黑U避坑指南,資金100%保命法則 May 08, 2025 pm 08:27 PM

在加密貨幣交易領域,交易所的安全性始終是用戶關注的重點。 2025年,經過多年的發展和演變,一些交易所憑藉其卓越的安全措施和用戶體驗脫穎而出。本文將詳細介紹2025年最安全的五大交易所,並提供如何避開黑U(黑客攻擊用戶)的實用指南,確保您的資金100%安全。

ok交易所國內如何註冊? ok交易平台大陸新手註冊使用指南 ok交易所國內如何註冊? ok交易平台大陸新手註冊使用指南 May 08, 2025 pm 10:51 PM

在加密貨幣市場中,選擇一個可靠的交易平台是至關重要的。 OK交易平台作為全球知名的數字資產交易所,吸引了大量大陸新手用戶。本指南將詳細介紹如何在OK交易平台上進行註冊和使用,幫助新手用戶快速上手。

恆星(XLM)隨著華爾街接受令牌化的重大增長 - 專家解釋說 恆星(XLM)隨著華爾街接受令牌化的重大增長 - 專家解釋說 May 08, 2025 pm 09:12 PM

Stellar再次引起廣泛關注,這不僅僅是炒作。在一則新視頻中,來自Ncashofficial的加密專家Nick,擁有超過200,000訂閱者,詳細分析了Stellar的情況。儘管Stellar的XLM在第一層的領域展現了對資產代幣化的承諾,並擁有令人矚目的合作夥伴組合,但關於XLM的討論主要集中在其突破阻力和保持動力方面的挑戰。然而,擁有超過206,000訂閱者的Ncashofficial的加密貨幣專家Nick最近的分析顯示,XLM可能是最被忽視的代幣之一。隨著華爾街繼續向區塊鍊和BenHor

以太坊(ETH)市場分析與交易策略:2025年5月8日 以太坊(ETH)市場分析與交易策略:2025年5月8日 May 08, 2025 pm 08:12 PM

以太坊當前市場概況及短期交易策略

全球十大支持多鏈交易的加密貨幣平台2025年權威發布 全球十大支持多鏈交易的加密貨幣平台2025年權威發布 May 08, 2025 pm 07:15 PM

根據 2025 年權威機構的最新評估和行業趨勢,以下是全球十大支持多鏈交易的加密貨幣平台,結合交易量、技術創新、合規性及用戶口碑綜合分析:

零基礎躺賺攻略:2025年必囤的5種山寨幣,穩賺50倍! 零基礎躺賺攻略:2025年必囤的5種山寨幣,穩賺50倍! May 08, 2025 pm 08:30 PM

在加密貨幣市場中,山寨幣(altcoins)常常被投資者視為潛在的高回報資產。雖然市場上存在許多山寨幣,但並非所有山寨幣都能帶來預期的收益。本文將為零基礎的投資者提供一份詳細的攻略,介紹2025年值得囤積的5種山寨幣,並解釋如何通過這些投資實現穩賺50倍的目標。

PHP電子郵件:分步發送指南 PHP電子郵件:分步發送指南 May 09, 2025 am 12:14 AM

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自動化intifications andMarketingCampaigns.1)設置設置yourphpenvenvironnvironnvironmentwithaweberswithawebserverserververandphp,確保themailfunctionisenabled.2)useabasicscruct

GO:使用標準'字符串”包的字符串操縱 GO:使用標準'字符串”包的字符串操縱 May 09, 2025 am 12:07 AM

Go語言使用"strings"包進行字符串操作。 1)拼接字符串使用strings.Join函數。 2)查找子串使用strings.Contains函數。 3)替換字符串使用strings.Replace函數,這些函數高效且易用,適用於各種字符串處理任務。

See all articles