買以太坊 買以太坊
Ctrl+D 買以太坊
ads

以太坊:以太坊開發指南 #1_WEB

Author:

Time:1900/1/1 0:00:00

*譯文出自:登鏈翻譯計劃

*譯者:翻譯小組

*校對:Tiny熊

你應該聽說過了以太坊了,準備進入以太坊的世界冒險了嗎?這篇文章將快速介紹一些區塊鏈基礎知識,然后讓了解與模擬的以太坊節點進行交互--讀取區塊數據,檢查賬戶余額并發送交易。在這個過程中,我們將理解傳統的應用程序與這種新的去中心化應用之間的差異。

要求

本文希望面向所有的開發者,不過文章里還是會涉及到Python工具,但它們只是思想的載體--如果你不是Python開發者也沒有問題,它只是可以幫助我們更快速進入到以太坊。

本文假定你:

*熟悉命令終端。

*你已經寫了幾行Python代碼。

*你的機器上安裝了Python3.6或更高版本(強烈建議使用虛擬環境),并且

*你已經使用了pip。

再次強調,這些都是不是必須的,或者你不打算敲本文中的代碼,也不影響你理解本文。

簡單介紹一下區塊鏈

描述以太坊的方法有很多,但其核心還是區塊鏈。區塊鏈是由一系列的區塊組成的,所以我們從區塊鏈開始。最簡單的說,以太坊區塊鏈上的每個區塊只是一些元數據和交易列表。在JSON格式中,它看起來像這樣:

{"number":1234567,"hash":"0xabc123...","parentHash":"0xdef456...","miner":"0xa1b2c3...",...,"transactions":}

每個區塊都有一個對之前區塊的引用,parentHash是前一個區塊的哈希值。

注意:以太坊廣泛使用哈希函數來產生固定長度的值。哈希值在以太坊中扮演著重要的角色,但你現在可以放心地將其視為唯一的ID。

區塊結構

區塊鏈本質上是一個鏈表,每個區塊都有一個對前一個區塊的引用。

這種數據結構并不新穎,但治理網絡的規則卻很新穎。區塊鏈沒有中央權威機構,網絡中的對等節點必須協作來維持網絡,并競爭決定將哪些交易納入下一個區塊。因此,當你想給朋友轉賬時,你需要將這筆交易廣播到網絡上,然后等待它被包含在即將到來的區塊中。

波場TRON發起兼容以太坊EIP-3855提議:據官方消息,日前,波場TRON的社區開發者發起了開啟TVM PUSH0指令的提議,該提議的核心圍繞以太坊EIP-3855兼容,波場TRON上增加了一條名為PUSH0虛擬機新指令,以降低智能合約交易的gas成本。

作為以太坊上海升級的一部分,以太坊EIP-3855已于4月12日在其主網激活。如本次提案獲得通過,將保證波場TRON與以太坊在虛擬機層面的兼容,同時也將降低未來波場TRON智能合約的使用成本。

據了解,波場TRON于本月初發布了主網升級版本— —GreatVoyage(大航海)-v4.7.2(Periander)。在最新版本中,波場TRON引入多項治理提案和關鍵更新,除兼容以太坊EIP-3855外,還包括大幅提升Stake 2.0質押系統的靈活性、優化智能合約調用訪問接口并對P2P網絡模塊進行了全面升級。[2023/7/25 15:57:32]

區塊鏈驗證金錢從一個用戶發送到另一個用戶的唯一方法是使用區塊鏈的原生貨幣。在以太坊中,原生貨幣被稱為ether,它是以太坊區塊鏈包含了賬戶余額的唯一官方記錄。

新的開發工具鏈

新的去中心化技術棧催生了新的開發者工具。這些工具存在于許多編程語言中,但本文將從Python的角度來看。

想要與以太坊進行交互的Python開發者可能會接觸到Web3.py。Web3.py是一個庫,用來幫助我們簡化連接以太坊節點,以及發送和接收數據。

注:以太坊節點和以太坊客戶端可互換使用。在任何一種情況下,它們都是指以太坊網絡中的參與者所運行的軟件。這個軟件可以讀取區塊數據、在新區塊加入到鏈上時接收更新、廣播新交易等。

以太坊客戶端可以配置為通過IPC、HTTP或Websockets來訪問,所以Web3.py也需要進行這個配置。Web3.py將這些連接選項稱為提供者。你需要從三個提供者中選擇一個來連接Web3.py實例和你的節點。

1_OrElsXOF45w-AgBuezCqjQ配置以太坊節點和Web3.py通過相同通信的協議,本圖中用IPC

一旦Web3.py配置正確,你就可以開始與區塊鏈進行交互。下面是幾個Web3.py的使用例子,拋磚引玉。

Scroll在Goerli測試網推出以太坊L2網絡zk-EVM的測試網版本:金色財經報道,Scroll在Goerli測試網上發布了其以太坊L2網絡的測試網版本,這是將zk-EVM從pre-alpha轉移到alpha的測試階段。到目前為止,Scroll可以在基于該項目的以太坊克隆的測試網上進行試用。測試網的代碼將是開源的,這意味著該網絡可以開始建立彈性。此外,Goerli測試網和Scroll之間已經建立了一個橋梁來轉移資產。

據悉,Zk-EVM是建立在以太坊上的第2層網絡,它使用零知識證明來實現可擴展性。[2023/2/28 12:32:53]

#讀取區塊:w3.eth.getBlock('latest')#發送交易:w3.eth.sendTransaction({'from':...,'to':...,'value':...})

安裝環境

在這個演練中,我們僅在Python解釋器中進行,不會創建任何目錄、文件、類或函數。

注意:在下面的例子中,以$開頭的命令是表示在終端中運行。(不要輸入$,它只是表示行的開始。)

首先,安裝IPython,以方便用戶在其中進行探索。IPython提供了tab補全功能,讓你更容易看到Web3.py內的有哪些可用方法。

$pipinstallipython

Web3.py以web3的名義發布,安裝方式如下:

$pipinstallweb3

另外,我們后面要模擬一個區塊鏈,這就需要多一些依賴。則可以通過下面命令安裝:

$pipinstallweb3

準備好了!

開啟沙盒環境

在終端中運行ipython打開一個新的Python環境。這與運行python相當,但更友好。

$ipython

這將打印出一些關于你正在運行的Python和IPython版本的信息,然后你應該看到一個等待輸入的提示:

In:

你現在看到的是一個交互式的Pythonshell,如果你跟著進行到了這里,現在可以導入Web.py了。

天橋資本以太坊基金已正式啟動:金色財經報道,新的監管文件顯示,天橋資本(SkyBridge Capital)的以太坊基金已正式啟動,一個單獨的投資者在第一周就向該基金承諾了570萬美元。這是該投資公司提供的第二只特定于加密貨幣的私募基金。該公司的另一個比特幣工具也在周五披露,已從170名投資者處獲得了4670萬美元。此前消息,天橋資本創始人Anthony Scaramucci表示,還將申請推出以太坊ETF。[2021/7/10 0:41:09]

In:fromweb3importWeb3

Web3模塊介紹

除了作為以太坊的網關,Web3模塊還提供了一些方便的功能。讓我們來探究探究。

在以太坊應用中,你通常需要轉換貨幣面額。Web3模塊就為此提供了幾個輔助方法:fromWei和toWei。

注:計算機不擅長處理十進制數學。為了規避這個問題,開發者通常會將美元金額用美分存儲。例如,價格為5.99美元的物品在數據庫中存儲為599。

在處理ether中的交易時,也使用類似的模式。然而,以太幣不是兩個小數點,而是有18位,以太幣的最小面額叫wei,所以發送交易時指定的就是這個值。

1以太幣=1000000000000000000wei1wei=0.000000000000000001以太幣

試一下將一些數值轉換為wei或相反。請注意,以太幣和wei之間還有其他的面額名稱。其中比較有名的是gwei,因為它往往是交易費用的體現方式。

In:Web3.toWei(1,'ether')Out:1000000000000000000In:Web3.fromWei(500000000,'gwei')Out:Decimal('0.5')

Web3模塊上的其他實用方法包括數據格式轉換器(如toHex)、地址助手(如isAddress)和哈希函數(如keccak)。其中許多內容將在后面的系列文章中介紹。要查看所有可用的方法和屬性,可以利用IPython的自動補全功能,輸入Web3.并按兩次tab鍵。

與鏈交互

接下來配置Web3.py與以太坊節點通信。這里我們可以選擇使用IPC、HTTP或Websocket提供者。

以太坊2.0質押流動性解決方案Lido啟動首日質押資產逾100萬美元:12月19日晚間,以太坊2.0質押流動性解決方案Lido宣布,該協議中質押的ETH資產價值突破100萬美元。此外,12月20日,官方稱Sigma Prime和Quantstamp已經完成Lido協議合約的審計。

據此前報道,12月19日,Lido宣布正式啟動,用戶可在Lido上進行質押ETH操作。[2020/12/20 15:51:32]

我們不會完整的進行這個步驟,但一個使用HTTP提供者的完整工作流的例子像這樣:

*下載一個以太坊節點,例如:Geth。

*在一個終端窗口啟動Geth,等待它同步網絡。默認的HTTP端口是8545,但可以配置。

*告訴Web3.py通過HTTP連接到節點,使用localhost:8545。w3=Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))。

*使用w3實例與節點交互。

雖然這是一種正式的方式,但如果你只是想要一個開發環境,同步過程需要幾個小時,而且沒有必要。Web3.py為此暴露了第四個提供者,即以太坊TesterProvider。這個測試器提供者連接到一個模擬的以太坊節點,它有更寬松的權限,還有虛擬以太幣可以使用。

以太坊TesterProvider連接到一個模擬節點,對于快速開發環境來說非常方便。

這個模擬節點叫做eth-tester,我們把它作為pipinstallweb3命令的一部分進行安裝。配置Web3.py來使用這個測試提供者很簡單:

In:w3=Web3(Web3.EthereumTesterProvider())

現在,你已經準備好在鏈上沖浪了!

快速預覽功能

第一件事,先來個連接檢查。

In:w3.isConnected()Out:True

由于我們使用的是測試提供者,這不是一個非常有價值的測試,但如果它確實失敗了,很可能是你在實例化w3變量時輸入錯誤。仔細檢查你是否包含了內括號,即Web3.EthereumTesterProvider()。

金色相對論 | Jay:Rollup + 以太坊2.0 分片可以把ETH TPS 達到10萬筆/秒:11月27日消息,在今日舉行的金色相對論中,針對“從以太坊的發展過程來看,選擇pow作為1.0階段有一定的歷史因素,但隨著現在的技術發展,例如rollup以及layer2解決方案的增加,您認為以太坊還需要以太坊2.0嗎?”的問題,Loopring COO Jay表示,首先L2 方案還在很早期,zkRollup, OVM, Plasma, State channel 都是并行存在著的。目前看來Rollup 技術比較收社區推崇也是最主流的方案。但Rollup 里面也分zk 和optimism 2 大方向。未來到底是一個Rollup 獨大還是多個平行進行都還很難說。特別是在各個rollup之前還不能打通的情況下。所以在不能說服社區都用一個rollup方案或同意的情況下,2.0 需要不斷的進行下去。另外Rollup + 2.0 分片可以ETH TPS 達到10萬筆/秒。完全是一個互補的方案,而不是排斥的。只有到達這個量級才是目前生活中可以取代中心化系統的量級,所以我們更應該不斷推動。[2020/11/27 22:20:23]

賬戶

為了方便起見,測試提供者創建了一些賬戶,并預分配測試以太幣。首先,我們來看看這些賬戶的列表。

In:w3.eth.accountsOut:

如果你運行這個命令,你應該看到一個以0x開頭的十個字符串的列表。每一個都是一個的公共地址,在某些方面,類似于支票賬戶上的賬號。如果有人要給你轉賬,你需要把這個地址給他。

如前所述,測試提供者已經為這些賬戶中的每一個賬戶預分配了一些測試以太幣。我們來看看第一筆賬有多少錢。

In:w3.eth.getBalance(w3.eth.accounts)Out:1000000000000000000000000

好多零啊!在你一路笑醒之前,先回憶一下之前關于貨幣面額的介紹。以太坊用最小的面額表示,wei。將其轉換為以太幣。

In:w3.fromWei(1000000000000000000000000,'ether')Out:Decimal('1000000')

100萬測試以太幣,也不算太寒酸。

區塊數據

我們來看看這個模擬區塊鏈的狀態。

In:w3.eth.getBlock('latest')Out:AttributeDict({'number':0,'hash':HexBytes('0x9469878...'),'parentHash':HexBytes('0x0000000...'),...'transactions':})

關于一個區塊,很多信息都會被返回,但這里只介紹:

塊號是零-無論你在多長時間前配置了測試提供者。與真實的以太坊網絡不同,以太坊網絡大概每隔15秒就會挖掘一個新的區塊,而模擬鏈則會等到你給它一些工作在增加區塊。

transactions是一個空列表,原因相同:我們還沒有做任何事情。第一個區塊是一個的空區塊,只是為了開個頭。

注意,parentHash只是一堆空的字節。這標志著它是鏈條上的第一個區塊,也就是所謂的創世區塊。

交易

在沒有交易之前,我們停留在零區塊,所以我們給它一個交易。從一個賬戶向另一個賬戶發送一些測試以太幣。

In:tx_hash=w3.eth.sendTransaction({'from':w3.eth.accounts,'to':w3.eth.accounts,'value':w3.toWei(3,'ether'。)

這時通常會等上幾秒鐘,等待交易挖到一個新的區塊。完整的流程是這樣的:

提交交易并持有交易哈希。在沒有被挖出來之前,交易是pending的:tx_hash=w3.eth.sendTransaction({...})。

等到交易被挖掘出來:w3.eth.waitForTransactionReceipt(tx_hash)。

繼續應用邏輯。如查看成功的交易:w3.eth.getTransaction(tx_hash)。

我們的模擬環境會在一個新的區塊中即時添加交易,所以我們可以立即查看交易:

In:w3.eth.getTransaction(tx_hash)Out:AttributeDict({'hash':HexBytes('0x15e9fb95dc39...'),'blockNumber':1,'transactionIndex':0,'from':'0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf','to':'0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF','value':3000000000000000000,...})

你會看到一些熟悉的細節:from、to和value字段應該與我們的sendTransaction調用的輸入相匹配。另一個令人欣慰的是,這項交易被列為區塊號1內的第一筆交易。

我們也可以通過檢查兩個相關賬戶的余額,輕松驗證這次交易是否成功。三個以太幣應從一個賬號轉移到另一個。

In:w3.eth.getBalance(w3.eth.accounts)Out:999996999999999999979000In:w3.eth.getBalance(w3.eth.accounts)Out:1000003000000000000000000

后者看起來不錯!余額從1000000到100003以太幣。但第一筆賬看起來減少的數量略大于三個以太幣?是的,沒有免費的午餐,使用以太坊公網需要支付礦工手續費,因為它從進行交易的賬戶中扣除了少量的交易費,金額為21000wei。

注意:在公共網絡上,交易費用根據網絡需求和你希望交易處理的速度而變化。如果你對費用的計算方式有興趣,請看我之前的帖子交易如何包含在一個區塊中。

結束

本文結束,我們將在這個系列的第二部分繼續探索一些概念:連接到一個真實的節點,智能合約和代幣,

本翻譯由CellNetwork贊助支持。

來源:https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/作者:MarcGarreau

參考資料

登鏈翻譯計劃:https://github.com/lbc-team/Pioneer

翻譯小組:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

以太坊:https://learnblockchain.cn/categories/ethereum/

虛擬環境:https://realpython.com/effective-python-environment/#virtual-environments

哈希函數:https://en.wikipedia.org/wiki/Hash_function

Web3.py:https://web3py.readthedocs.io/

IPC:https://en.wikipedia.org/wiki/Inter-process_communication

IPython:https://ipython.org/

Web3:https://web3py.readthedocs.io/en/stable/overview.html#base-api

fromWei:https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.fromWei

toWei:https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.toWei

其他的面額名稱:https://web3py.readthedocs.io/en/stable/examples.html#converting-currency-denominations

Geth:https://geth.ethereum.org/

eth-tester:https://github.com/ethereum/eth-tester

交易如何包含在一個區塊中:https://medium.com/ethereum-grid/ethereum-101-how-are-交易s-included-in-a-block-9ae5f491853f

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/9637398.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

QT拳頭回歸給所有人重新選擇財富的機會

Tags:以太坊WEBWEB3ETH以太坊最新價格行情分析美元WEBAIweb3.0幣圈Ethereum Stake

歐易交易所app官網下載
BIKI:BiKi即將上線FLOW并開啟流動性挖礦的公告(0202)_USD

尊敬的用戶: BiKi平臺將于2月2日14:50上線FLOW,并開放FLOW/USDT交易對和網格流動性挖礦的活動,具體詳情如下:活動時間:1月3日-1月13日活動規則:活動期間.

1900/1/1 0:00:00
CEL:幣海引路人:BTC震蕩上行 在一波牛市是否回歸_DDAI價格

幣海引路人:BTC震蕩上行在一波牛市是否回歸情走勢莫測,就像未卜是人生,總有跌宕起伏的時候,交易如同攀爬,只有登上絕頂,才能享受奇觀勝景;若遇難而退,中途放棄,只會與機會擦肩而過,在交易中.

1900/1/1 0:00:00
BKX:BBKX平臺關于QTUM、SUSHI、YFI、AAVE、COMP 幣種正向合約上線的公告_SDT

親愛的BBKX用戶 您好,我們很榮幸地通知您,BBKX永續合約將于2021年2月1日20:30上線QTUM-USDT正向合約、SUSHI-USDT正向合約、YFI-USDT正向合約、AAVE-U.

1900/1/1 0:00:00
HOT:Hotbit 定于2021年2月4日上線 PLOW (Plow Finance)_TBI

尊敬的用戶: Hotbit即將在開啟PLOW(PlowFinance)數字資產服務。 具體安排如下: 充值時間:2021年02月03日11:00(香港時間)交易時間:2021年02月04日17:.

1900/1/1 0:00:00
COS:BSN推出首批開放聯盟鏈“文昌鏈”和“泰安鏈”_區塊鏈TEC幣有這種幣嗎

2021年2月1日,BSN聯合邊界智能等機構將共同推出首批“BSN開放聯盟鏈”服務,上線基于FISCOBCOS研發的“泰安鏈”和基于邊界智能IRITA聯盟鏈產品及COSMOS/IRISnetSD.

1900/1/1 0:00:00
ACK:SEYO正式加入火幣HECO生態啟動HT的DeFi流動性挖礦_JACOBS

隨著數字貨幣的流?,作為背后基礎技術的區塊鏈逐漸???眾視野。區塊鏈技術也已經經歷過多個發展階段.

1900/1/1 0:00:00
ads