以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

以太坊開發者指南 #2_以太坊

Author:

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

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

在指南的第一部分中,我們在與模擬的以太坊網絡進行交互時,涵蓋了很多內容。此時,你至少應該對如何回答這些問題有一個模糊的概念:

什么是區塊鏈,區塊里有什么?

是什么讓以太坊去中心化?

什么是以太幣,為什么它是網絡的必要組成部分?

在這篇文章中,我們將在這些概念的基礎上,探討對開發者的一些影響,如果你跳過或需要復習,請返回第1部分。

接下來做什么?

我們將從賬戶開始,更深入地了解你如何與以太坊網絡交互。以太坊賬戶和Web2.0賬戶之間有一些顯著的區別。

注:Web2.0是用來描述:引入用戶生成內容的互聯網時代的,例如社交媒體和博客。而以太坊和其他去中心化技術則稱為是下一代互聯網的一部分。Web3因此被Web3.js和Web3.py等庫以及生態系統的其他地方使用。

Web2與Web3

在如今的網絡中,很難集合賬號。你得為每個社交媒體應用程序、新聞網站、配送服務、零售商和航空公司等等都注冊一個賬號。每一個賬戶都在其公司的服務器上,這使得你必須遵守他們的條款和條件、隱私政策和安全慣例。你的賬戶可以被凍結、刪除、審查或由所在公司酌情更改。

Web3代表了賬戶管理的范式轉變:只有你自己一個人擁有你的以太坊賬戶。當你創建一個賬戶時,它與任何公司無關,此賬號并且可以在多個應用程序中使用。事實上,創建一個以太坊賬戶根本不需要與以太坊區塊鏈進行交互。我們現在就來創造一個。

注:這個練習純屬教育目的。在明白安全影響之前,不要在賬戶中存儲真實價值。否則有些錯誤是無法挽回的!

創建一個賬戶

和上次演練一樣,依舊在IPythonshell中演示這些概念。如果你不是Python開發者,沒問題。只要在概念上跟著走就可以了。

加密交易平臺Gemini將于9月29日上線以太坊質押服務:9月27日消息,加密交易平臺Gemini宣布將于9月29日上線以太坊質押服務,并于9月29日至10月31日開啟免費ETH質押活動,活動期間客戶獲得的ETH獎勵將比基礎質押獎勵率高出15%,且10月份使用Buyand Stake選項購買和質押ETH的客戶不收取任何交易費用。

此前報道,加密交易平臺Gemini宣布將在美國開展Staking業務。[2022/9/27 22:32:02]

環境設置

三步到位:

安裝Web3.py、eth-tester和IPython。$pipinstallweb3web3ipython。

啟動一個新的沙盒環境。$ipython

導入Web3模塊。在:從web3導入Web3。

賬戶生成

讓我們創建一個賬戶:

In:w3=Web3()#現在不需要providerIn:acct=w3.eth.account.create()#publicaddress:In:acct.addressOut:'0x33736Bf0Ac7A046eAC36648ca852B91EAe5f567A'#privatekey:In:acct.keyOut:HexBytes('0x7aca78f5e54...')

這就是創建賬戶所有要做的!沒有注冊過程,也沒有和區塊鏈或任何服務器交互。事實上,你可以完全斷開與互聯網的連接,仍然可以創建一個有效的以太坊賬戶。

在上面的代碼中,你會發現一個賬戶的兩個組成部分:一個公開地址和一個私鑰。簡單來說,私鑰就是一個賬戶的密碼。公開地址是由私鑰衍生出來的可共享賬號。從代碼示例中可以看出,兩者通常用十六進制數字表示。

注:以太坊用戶和應用開發者不必了解賬戶生成過程的具體運作方式,但如果你有興趣非常深入地了解,可閱讀:理解助記詞與HD錢包

Aave新提案投票擬在以太坊合并前關閉ETH借貸市場:金色財經報道,Aave發起新的提案投票,計劃在以太坊合并前關閉ETH借貸市場,此外當ETH利用率達到100%時,將借款APR從103%提升到1000%。該投票將于9月3日12:15結束。[2022/8/30 12:57:10]

使用賬戶

在區塊鏈上影響變化的唯一方式是通過交易,每筆交易必須由賬戶簽署。這是需要了解,且很重要的一點。

賬戶可以發起轉賬以太幣的交易,部署智能合約,或與合約交互。我們來簡單探討一下每個方式。

以太幣轉賬

回顧一下,EthereumTesterProvider啟用了一個以賬戶和充值了測試以太幣種子的測試環境。我們先來查看一些測試賬戶和賬戶余額。

In:w3=Web3(Web3.EthereumTesterProvider())In:w3.eth.accountsOut:In:acct_one=w3.eth.accountsIn:w3.eth.get_balance(acct_one)Out:1000000000000000000000000

接下來,我們將介紹一個新的賬戶。

In:acct_two=w3.eth.accounts.create()In:acct_two.addressOut:'0x2FF32Bcc040e98EBa3c0ae2d8ad9C451a78d3E24'In:acct_two.keyOut:HexBytes('0x02af55504048265...f70e9965a3505ea')

然后把一些測試以太幣送到新的賬戶上。

In:tx_hash=w3.eth.send_transaction({'from':acct_one,'to':acct_two.address,'value':10000000000})

這筆交易將立即執行,但一些重要的細節被隱藏起來。Web3.py很聰明,知道EthereumTesterProvider正在管理acct_one,而且我們正在使用測試環境。為方便起見,acct_one是"unlocked(解鎖)"的,也就是說,該默認使用該賬戶來簽署交易。

單個以太坊礦工贏得170.65 ETH的區塊獎勵:1月18日消息,鏈上數據顯示,1月17日,單個ETH礦工挖出一個區塊,并贏得超過170.65 ETH的區塊獎勵,價值約54萬美元,區塊高度是14020509。這對于礦工來說是非常幸運的事,盡管比特幣礦工此前發生過類似情況,這種情況極為罕見。

據此前報道,1月11日,一個算力僅有126 TH的個體礦工贏得6.25 BTC的區塊獎勵,價值超26萬美元,該比特幣區塊的區塊高度是718124。(Beincrypto)[2022/1/18 8:57:27]

那么,如果從非解鎖賬戶發起交易是什么樣的呢?讓我們從acct_two,一個不由EthereumTesterProvider管理的賬戶發送一些以太幣。這個需要三個步驟。1)指定交易細節,2)簽署交易,3)向網絡廣播交易。

#1)手動構造交易In:tx={'to':acct_one,'value':10000000,'gas':21000,'gasPrice':1,#priceonlypossibleineth-tester'nonce':0}#2)用私鑰簽名交易In:signed=w3.eth.account.sign_transaction(tx,acct_two.key)#3)發送”raw“原始交易In:tx_hash=w3.eth.sendRawTransaction(signed.rawTransaction)

讓我們來分析一下。步驟1定義了一個Python字典,其中包含所需的交易字段。我們在第一部分學習了gas和gasPrice,但nonce可能是新關鍵字。在以太坊中,nonce只是賬戶的交易次數。以太坊協議會跟蹤這個值,以防止雙花。

由于這是acct_two進行的第一筆交易,所以它的nonce為0。如果你提供了錯誤的值,結果是無效的交易,并被Web3.py拒絕。

ValidationError:Invalidtransactionnonce:Expected0,butgot4

分析:以太坊的高額 Gas 費可能導致部分用戶探索其他選擇:Messari 研究人員 Wilson Withiam 發推表示,2020 年第三季度鞏固了以太坊作為加密金融的中心。雖然現在沒有定論,但它或能成為加密貨幣的主要結算層。只是這項活動付出了一定的代價(高昂的 Gas 費),這可能給其他區塊鏈帶來了一線希望。其進一步解釋稱,高額費用可能導致部分用戶探索其他選擇。這將是其他平臺展示其低費用和「高級」擴展技術的時候。但是低費用不是合理的。Layer1 必須擁有一個充滿活力的社區和原創應用才能保持其市場份額。[2020/10/23]

請注意,當從acct_one發送交易時,仍然需要一個nonce,但EthereumTesterProvider會跟蹤管理賬戶的交易計數,并為新的交易添加適當的nonce。

另一個細節你可能已經注意到了,從tx中缺少一個from值。這是因為,sign_transaction方法可以從發件人的私鑰推斷出發件人的地址。上面提到過,公開地址可以從私鑰中推導出來,但私鑰不能從公開地址反向推導出來。

最后,raw原始交易是以字節表示的交易數據和簽名。在底層,sign_transaction與sendRawTransaction采用相同的編碼。

部署智能合約

與智能合約的交互看起來與標準交易非常相似。

簡單來說,智能合約是”活躍“在以太坊區塊鏈上的程序,任何人都可以使用。當你準備好部署一個智能合約時,需要將代碼編譯成字節碼,并將其作為一個data值包含在一個交易中。

bytecode="6080604052348015610...36f6c63430006010033"tx={'data':bytecode,'value':0,'gas':1500000,'gasPrice':1,'nonce':0}

除了需要更多的Gas外,合約部署交易中唯一的區別是沒有to值。其余過程與標準的以太幣轉賬相同。

動態 | 以太坊面臨可擴展性和擁塞兩大問題:據coincryptorama報道,以太坊(ETH)在推出后被認為是數字貨幣和區塊鏈的改變者。但是,以太坊目前正在經歷可擴展性和擁塞問題。根據Etherscan的數據顯示,以太坊未完成的交易已經超過了90,000大關。由于網絡上的可擴展性問題,許多分散的應用程序和初始代幣產品正在從以太坊平臺遷移到其他平臺。其他的區塊鏈項目如EOS、Tron和Stellar Lumens正成為以太坊的威脅。[2018/12/3]

與智能合約交互

使用部署合約的交易格式類似。在這種情況下,to值指向合約地址,data值將根據正在執行的合約方法的輸入而變化。

需要注意的是,像Web3.py這樣的工具為合約的部署和交互提供了更直觀的界面。

#與合約交互myContract=web3.eth.contract(address=address,abi=abi)twentyone=myContract.functions.multiply7(3).call()#部署新合約Example=w3.eth.contract(abi=abi,bytecode=bytecode)tx_hash=Example.constructor().transact()

簽名

交易是影響區塊鏈狀態的唯一方式,但并不是賬戶的唯一的使用方式。僅僅是證明某個賬戶的所有權,其本身就很有用。

舉個例子,OpenSea是一個以太坊市場,你可以用你的賬戶簽名留言來競拍待售物品。只有當拍賣到期或賣家接受你的報價時,才是真正的交易。同樣,在向你展示一些賬戶細節之前,該應用程序使用簽名信息作為一種認證形式。

與交易不同的是,簽名信息不需要任何費用。他們沒有向網絡廣播,也沒有列入一個區塊。簽名信息只是用私鑰簽署后的一串數據。和期望的一樣,發送者的私鑰仍然是隱藏的,但接收者可以用數學方法證明發送者的公共地址。換句話說,無法冒充信息的發送者。

注:術語鏈上和鏈下是表示數據是否活躍在以太坊區塊鏈上的縮寫。例如,賬戶余額和智能合約狀態是_鏈上管理_的,但消息簽名卻發生在_鏈下_。

我們將在以后的文章中深入探討消息簽名,但這里有一些偽代碼可以讓你了解工作流程。

#1.一串信息msg="amanaplanacanalpanama"#2.用私鑰簽名pk=b"..."signed_message=sign_message(message=msg,private_key=pk)#3.用任何方式發送簽名信息`signed_message`#4.信息接收者解析出發送者的公共地址sender=decode_message_sender(msg,signed_message.signature)print(sender)#'0x5ce9454...b9aB12E'

Web3賬戶所涉問題

我們可以輕松創建以太坊賬戶:離線并與任何應用程序獨立。這些賬戶可以用來簽署信息或發送各種類型的交易。這對應用開發者意味著什么?

永久密碼

這個世界一個殘酷的現實是,沒有密碼恢復服務。如果你丟失了你的私鑰,你就可以和這個賬戶吻別了。這就是真正的所有權的雙刃劍。應用開發者有道德和義務幫助以太坊新人上崗,并教育他們認識到這一現實。(注:社交恢復型錢包可改善此類用戶體驗)。

新挑戰

將新用戶引入以太坊是有門檻的。正如你一直在學習的那樣,有一些范式的轉變并不是很明顯。你可能要引導還沒有以太坊賬戶的訪客或沒有以太幣的用戶支付交易費用。教育用戶的成本取決于你的受眾,但如果你能夠優雅地引入新用戶,整個生態系統將受益。

較少的賬戶管理功能

鑒于用戶在你的應用之外創建賬戶,你可能會發現你的使用場景幾乎不需要或根本不需要賬戶管理功能。

新的商業模式

數據挖掘不會消失,但這種新的賬戶所有權模式是Web2.0模式的一個健康的替代方案,在Web2.0模式下,公司擁有用戶的每一點數據,并將其出售給出價最高的人。以太坊的智能合約平臺提供了一個新的激勵模型。

新的軟件架構

在你的商業模式定義中,一個有趣的權衡將是如何處理鏈上與鏈下。正如我們討論過的,消息簽名不需要鏈上交互。也沒有什么可以阻止你使用私人數據庫來處理部分數據,而使用以太坊區塊鏈來處理其他位數據或功能。需要考慮的權衡因素很多:可用性、成本、透明度、去中心化、隱私等等。

小結

這些都掌握了嗎?檢驗一下:

以太坊賬戶與Web2.0中的賬戶有何不同?

以太坊賬戶可以在哪些方面使用?

以太坊賬戶對應用開發者有什么影響?

你可以生成的賬戶數量沒有限制,你可以自由地將同一個賬戶用于多個應用程序,或者為每個應用程序創建一個新的賬戶。當一個公共區塊鏈被描述為無需許可的,意思是:你和網絡之間沒有守衛人。因此,不要等著別人允許你建造。

本翻譯由CellNetwork贊助支持。

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

參考資料

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

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

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

第一部分:https://learnblockchain.cn/article/2092

第1部分:https://learnblockchain.cn/article/2092

Web3.js:https://web3js.readthedocs.io/

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

IPython:https://ipython.org/

十六進制:https://simple.wikipedia.org/wiki/Hexadecimal

理解助記詞與HD錢包:https://learnblockchain.cn/2018/09/28/hdwallet/

雙花:https://en.wikipedia.org/wiki/Double-spending

OpenSea:https://opensea.io/

社交恢復型錢包:https://learnblockchain.cn/article/2011

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

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

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

登鏈社區

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

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

入駐指南:

/apply_guide/

本文網址:

/news/9641881.html

免責聲明:

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

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

上一篇:

盤點零知識證明代表性項目:如何影響和塑造區塊鏈生態系統?

Tags:以太坊ETHWEBWEB3以太坊價格歷史走勢圖Coinbase Wrapped Staked ETHcoinweb交易所合法嗎WEB3COIN

幣安下載
買BTC,瓜分10萬獎池_比特幣

親愛的CoinW用戶: 比特幣屢創歷史新高,為幫助各領域投資者了解并掌握數字資產的理財方式,CoinW將于2021年02月06日14:00開啟:“買BTC,瓜分10萬獎池”活動.

1900/1/1 0:00:00
以太坊創新高,還能漲多少?_以太坊

在前幾天的文章中,我還提到以太坊一旦穩穩站上1500美元,則本輪行情接下來的發展就要看比特幣和以太坊的漲勢是急拉暴漲還是緩漲回調了。如果是緩漲回調的波浪式前進則行情的發展將非常可期.

1900/1/1 0:00:00
新的全球計劃旨在到2030年使1,000個城市采取氣候行動_COIN

世界各地的城市已承諾采用原則并進行“明智的投資”,以確保其大流行恢復計劃也能增強氣候適應能力。在昨天舉行的為期兩天的2021年虛擬氣候適應峰會上,邁阿密,巴黎和鹿特丹市市長加入了世界資源研究所,

1900/1/1 0:00:00
牛市借貸挖礦的幾大風險,該如何選擇_比特幣

編者按:本文來自?彩云區塊鏈,Odaily星球日報經授權轉載。現在的數字貨幣圈內,基本上已經認同牛市的到來了,而近期挖礦也成為了很多人關心的話題,相對于直接購買比特幣而言,普通人仍然比較認可挖礦.

1900/1/1 0:00:00
虎符將于2月4日19:00正式上線ENJ(Enjin),同步開啟掛單激勵

尊敬的虎符用戶, 虎符將于2021年2月4日19:00(UTC8)重磅上線ENJ/USDT交易對。充值已開啟,提現將于2021年2月5日10:00(UTC8)開啟.

1900/1/1 0:00:00
關于GST暫停充提的公告_BIT

公告編號2021020301各位關心ZBG的投資者們和項目方:GST因錢包升級暫停充提幣,具體開放時間以公告為準,給您帶來不便深感抱歉,敬請諒解.

1900/1/1 0:00:00
ads