㈠ 走進以太坊網路
目錄
術語「以太坊節點」是指以某種方式與以太坊網路交互的程序。從簡單的手機錢包應用程序到存儲整個區塊鏈副本的計算機,任何設備均可扮演以太坊節點。
所有節點都以某種方式充當通信點,但以太坊網路中的節點分為多種類型。
與比特幣不同,以太坊找不到任何程序作為參考實施方案。在比特幣生態系統中, 比特幣核心 是主要節點軟體,以太坊黃皮書則提出了一系列獨立(但兼容)的程序。目前最流行的是Geth和Parity。
若要以允許獨立驗證區塊鏈數據的方式連接以太坊網路,則應使用之前提到的軟體運行全節點。
該軟體將從其他節點下載區塊,並驗證其所含交易的正確性。軟體還將運行調用的所有智能合約,確保接收的信息與其他節點相同。如果一切按計劃運行,我們可以認為所有節點設備均存儲相同的區塊鏈副本。
全節點對於以太坊的運行至關重要。如果沒有遍布全球的眾多節點,網路將喪失其抗審查性與去中心化特性。
通過運行全節點,您可以直接為網路的 健康 和安全發展貢獻一份力量。然而,全節點通常需要使用獨立的機器完成運行和維護。對於無法(或單純不願)運行全節點的用戶,輕節點是更好的選擇。
顧名思義,輕節點均為輕量級設備,可顯著降低資源和空間佔用率。手機或筆記本電腦等攜帶型設備均可作為輕節點。然而,降低開銷也要付出代價:輕節點無法完全實現自給自足。它們無法與整條區塊鏈同步,需要全節點提供相關信息。
輕節點備受商戶、服務供應商和用戶的青睞。在不必使用全節點並且運行成本過高的情況下,它們廣泛應用於支收付款。
挖礦節點既可以是全節點客戶端,也可以是輕節點客戶端。「挖礦節點」這個術語的使用方式與比特幣生態系統不同,但依然應用於識別參與者。
如需參與以太坊挖礦,必須使用一些附加硬體。最常見的做法是構建 礦機 。用戶通過礦機將多個GPU(圖形處理器)連接起來,高速計算哈希數據。
礦工可以選擇兩種挖礦方案:單獨挖礦或加入礦池。 單獨挖礦 表示礦工獨自創建區塊。如果成功,則獨享挖礦獎勵。如果加入 礦池 ,眾多礦工的哈希算力會結合起來。出塊速度得以提升,但挖礦獎勵將由眾多礦工共享。
區塊鏈最重要的特性之一就是「開放訪問」。這表明任何人均可運行以太坊節點,並通過驗證交易和區塊強化網路。
與比特幣相似,許多企業都提供即插即用的以太坊節點。如果只想啟動並運行單一節點,這種設備無疑是最佳選擇,缺點是必須為便捷性額外付費。
如前文所述,以太坊中存在眾多不同類型的節點軟體實施方案,例如Geth和Parity。若要運行個人節點,必須掌握所選實施方案的安裝流程。
除非運行名為 歸檔節點 的特殊節點,否則消費級筆記本電腦足以支持以太坊全節點正常運行。不過,最好不要使用日常工作設備,因為節點會嚴重拖慢運行速度。
運行個人節點時,建議設備始終在線。倘若節點離線,再次聯網時可能耗費大量的時間進行同步。因此,最好選擇造價低廉並且易於維護的設備。您甚至可以通過Raspberry Pi運行輕節點。
隨著網路即將過渡到權益證明機制,以太坊挖礦不再是最安全的長期投資方式。過渡成功後,以太坊礦工只能將挖礦設備轉入其他網路或直接變賣。
鑒於過渡尚未完成,參與以太坊挖礦仍需使用特殊硬體(例如GPU或ASIC)。若要獲得可觀收益,則必須定製礦機並尋找電價低廉的礦場。此外,還需創建以太坊錢包並配置相應的挖礦軟體。這一切都會耗費大量的時間和資金。在參與挖礦前,請認真考量自己能否應對各種挑戰。(國內嚴禁挖礦,切勿以身試法)
ProgPow代表 程序化工作量證明 。這是以太坊挖礦演算法Ethash的擴展方案,旨在提升GPU的競爭力,使其超過ASIC。
在比特幣和以太坊社區,抗ASIC多年來一直是飽受爭議的話題。在比特幣網路中,ASIC已經成為主要的挖礦力量。
在以太坊中,ASIC並不是主流,相當一部分礦工仍然使用GPU。然而,隨著越來越多的公司將以太坊ASIC礦機引入市場,這種情況很快就會改變。然而,ASIC到底存在什麼問題呢?
一方面,ASIC明顯削弱網路的去中心化。如果GPU礦工無法盈利,不得不停止挖礦,哈希率最終就會集中在少數礦工手中。此外,ASIC晶元的開發成本相當昂貴,坐擁開發能力與資源的公司屈指可數。這種現狀有可能導致以太坊挖礦產業集中在少數公司手中,形成一定程度的行業壟斷。
自2018年以來,ProgPow的集成一直飽受爭議。有些人認為,它有益於以太坊生態系統的 健康 發展。另一些人則持反對態度,認為它可能導致硬分叉。隨著權益證明機制的到來,ProgPoW能否應用於網路仍然有待觀察。
以太坊與比特幣是一樣,均為開源平台。所有人都可以參與協議開發,或基於協議構建應用程序。事實上,以太坊也是區塊鏈領域目前最大的開發者社區。
Andreas Antonopoulos和Gavin Wood出品的 Mastering Ethereum ,以及Ethereum.org推出的 開發者資源 等都是新晉開發者理想的入門之選。
智能合約的概念於20世紀90年代首次提出。其在區塊鏈中的應用帶來了一系列全新挑戰。2014年由Gavin Wood提出的Solidity已經成為開發以太坊智能合約的主要編程語言,其語法與Java、JavaScript以及C++類似。
從本質上講,使用Solidity語言,開發者可以編寫在分解後可由以太坊虛擬機(EVM)解析的指令。您可以通過Solidity GitHub詳細了解其工作原理。
其實,Solidity語言並非以太坊開發者的唯一選擇。Vyper也是一種熱門的開發語言,其語法更接近Python。
㈡ 比特幣核心錢包 bitcoin core同步太慢的解決方法 自己研究出來的高手勿噴
通過編輯配置文件bitcoin.conf增加節點來獲得最快的同步速度
將一下節點編輯到bitcoin.conf底部
2021-11-27更新:下面節點可能大部分都失效了,用Python做了一個每12小時爬取節點信息
使用方法:打開下面網址復制節點=>打開Bitcoin軟體=>設置=>選項=>打開配置文件=>文本文檔打開=>粘貼到最底下!=>保存=>重啟Bitcoin
https://www.diuhuo.com/bitcoin
同步錢包的速度還是很可觀的,我的帶寬是200M
connect=47.56.189.12.8333
connect=47.92.101.39:8999
connect=47.112.122.9:8999
connect=223.166.74.204:8333
connect=118.190.210.209:8333
connect=129.211.99.116:8333
connect=111.199.230.241:8333
connect=180.76.239.66:8333
connect=116.230.185.120:8333
connect=114.85.126.50:8333
connect=47.99.158.238:8333
connect=116.62.123.162:8333
————————————————
㈢ 以太坊開發人員正在應對最壞情況
以太坊准備好迎接「倫敦」硬分叉了嗎?
隨著以太坊准備在8月4日星期三激活其第11次向後不兼容升級,也稱為「硬分叉」,一些開發人員擔心升級可能會在部署前進行更多測試。
在7月23日星期五舉行的每兩周一次的以太坊核心開發者會議之後不久,以太坊基金會的提姆·貝科在所有的核心開發者Discord 聊天室中寫道,「有幾個人已經聯系或發推文說他們不一定對不延遲[硬分叉]感到滿意……我[在會議上]詢問了這個問題,似乎沒有人有強烈的意見,但有些人提到這可能不是正確的方法。」
在回應貝科的評論時,以太坊軟體客戶端開發人員阿列克謝·阿胡諾夫表示,他同意,鑒於最近發生的事件,在每兩周一次的會議上,沒有更多討論可能推遲被稱為「倫敦」的硬分叉。
「我想我知道為什麼,」阿胡諾夫寫道。「推遲 [倫敦] 是一個敏感話題,沒有人願意承受壓力,這是可以理解的。」
聊天室中的其他人懇求以太坊開發人員認真考慮將倫敦再推遲幾周進行進一步測試。
對倫敦升級風險的擔憂—其中包括影響以太坊費用市場的有爭議的代碼更改,稱為以太坊改進提案(EIP)1559—在以太坊軟體客戶端Geth中發現一個錯誤後增長。
作為背景,Geth是最流行的用於連接以太坊的軟體。據Ethernodes.org稱,在所有同步到以太坊網路的計算機(也稱為節點)中,估計有86%運行Geth客戶端軟體。
7月21日星期三,一個月前啟動倫敦硬分叉的以太坊測試網路Ropsten,在運行Geth的節點將無效交易挖入一個區塊,而運行少數客戶Besu和Open以太坊的節點卻拒絕了它。
幾個小時內,Geth團隊發布了一個補丁程序,並鼓勵所有用戶將他們的軟體更新到最新版本號Terra Nova1.10.6。
雖然沒有開發人員認為該漏洞應該在周五的電話會議期間延遲倫敦的主網路激活,但一些開發人員確實討論了如果在以太坊而不是在測試網路上發現此類漏洞的適當行動方案。
「如果像這樣的事情發生在主網上,我們會怎麼做,尤其是在大多數客戶Geth正在生產區塊的地方?顯然需要幾個小時才能修復,」貝科在會議期間說。
以太坊基金會的馬丁·霍爾斯特·斯溫德強調,這些漏洞在Ropsten上並不是前所未有的,雖然解決它們「很麻煩」,但有兩種方法可以解決它們。
首先,如果用戶的節點遵循錯誤的區塊鏈版本,用戶將需要在鏈分裂之前在內部將鏈「倒回」到區塊,並使用修補過的Geth軟體同步到新鏈。其次,如果用戶的節點尚未同步到區塊鏈的某個版本,但正在嘗試連接到網路以收集有關最近交易的數據或執行交易,則用戶最終可能會連接到錯誤版本的鏈。為了避免這種情況,這些用戶需要將以太坊上遵循正確鏈的某些節點「列入白名單」,並與卡在錯誤鏈上的其他節點隔離。
倒帶和白名單以太坊節點都可以通過Geth完成。Ropsten上的礦工能夠使用這些策略解決上周三發生的鏈分裂問題,盡管一位礦工在周五的會議上指出,在周三的事件發生之前,修復鏈分裂的指令沒有得到有效傳達,因此讓許多礦工對如何正確重啟節點感到困惑。
用戶「AlexSSD7」在Discord 聊天室中寫道,作為以太坊礦池的代表,他們「擔心」Geth中的錯誤,並指出,「一分鍾的[網路]停機時間讓我們付出了很多代價。一小時的停機時間對我們來說是2萬美元。」
客戶端軟體中的意外錯誤確實會對在主網路上運行的交易所和企業造成破壞,這就是為什麼開發人員強調需要一個強大的監控系統,該系統可以快速提醒節點運營商鏈分裂並鼓勵他們暫停運營直到進一步調查。
「這似乎是一個非常容易實現的成果,為生態系統提供了一種價值基調。如果你不確定如何開始,請在Discord中詢問,」貝科在周五的會議上說。
如果在主網上部署倫敦後再次發生類似於周三發生的錯誤,這些解決方案肯定會有所幫助,但它們不一定是用於解決更大規模問題的相同解決方案,例如黑客神奇地列印了1億個ETH。
如果發生如此災難性的事情,以太坊基金會的丹尼·瑞安在周五的會議上表示,很難提前知道開發人員將如何進行。
「我認為對於將出現的多種類型的錯誤和多種類型的特性,只有多種選擇,」瑞安說。
網路漏洞的影響越嚴重,解決漏洞的解決方案就越可能具有侵入性——並且對以太坊作為安全區塊鏈的聲譽的損害就越大。
隨著以太坊發展路線圖的近期硬分叉越來越雄心勃勃,找出最壞情況的潛在解決方案以及與網路權益持有人的損害控制計劃可能很快成為開發人員考慮的當務之急。
Fountain聯合創始人馬修·香森說:「傳統市場的DeFi:當安全代幣出現時。」 。 亮點 : Fountain是以太坊上的一個去中心化交易所,使用戶能夠買賣安全代幣。香森強調了區塊鏈技術提供的流動性和可訪問性,每天24小時可訪問並允許即時結算。證券通證化還有其他一些好處,包括進一步提高可訪問性的資產透明度和分拆。然而,建立一個完全去中心化的證券交易所有很多挑戰。入職客戶和新證券都需要遵守國際法規,包括了解客戶法律和託管許可證。
「信貸授權的力量」,Aave創始人斯坦尼·庫萊霍夫的演講。亮點: Aave是一個建立在以太坊基礎上的去中心化借貸協議。該協議背後的團隊已經開發出一種可以提供零抵押貸款的產品。庫萊霍夫認為,這是在將DeFi流動性引入實體經濟和推動Aave借貸需求方面向前邁出的一步。
以太坊創造者維塔利克·巴特林所說的「DeFi之外的事情」。亮點: 除金融服務外,社交媒體和公共產品融資是以太坊尚未開展的兩項活動。巴特林認為,網路的代幣經濟和抵抗審查是這些活動能夠從建立在去中心化區塊鏈之上獲益的兩個原因。
「Uniswap,DeFi&消費金融的未來」,Uniswap增長負責人Ashleigh Schap的談話。亮點: Uniswap實驗室正試圖與Talos、Paxos和Fireblocks等區塊鏈基礎設施公司建立合作關系,將DeFi解決方案連接到PayPal和E*Trade等知名金融 科技 公司的後端。
Circle協議開發者朱利安·布特盧普談到「為什麼DEX正在吞噬世界」。亮點: 在最好的情況下,[去中心化金融]允許世界公民平等地使用所有貨幣、股票和金融平台。隨著領域的發展,去中心化將成為一種趨勢。監管者將監督傳統金融界使用的協議,用戶仍將有權進入DeFi如今的「狂野西部」試驗場。
#比特幣[超話]# #數字貨幣#
㈣ 以太坊多節點私有鏈部署
假設兩台電腦A和B
要求:
1、兩台電腦要在一個網路中,能ping通
2、兩個節點使用相同的創世區塊文件
3、禁用ipc;同時使用參數--nodiscover
4、networkid要相同,埠號可以不同
1.4 搭建私有鏈
1.4.1 創建目錄和genesis.json文件
創建私有鏈根目錄./testnet
創建數據存儲目錄./testnet/data0
創建創世區塊配置文件./testnet/genesis.json
1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json
1.4.3 啟動私有節點
1.4.4 創建賬號
personal.newAccount()
1.4.5 查看賬號
eth.accounts
1.4.6 查看賬號余額
eth.getBalance(eth.accounts[0])
1.4.7 啟動&停止挖礦
啟動挖礦:
miner.start(1)
其中 start 的參數表示挖礦使用的線程數。第一次啟動挖礦會先生成挖礦所需的 DAG 文件,這個過程有點慢,等進度達到 100% 後,就會開始挖礦,此時屏幕會被挖礦信息刷屏。
停止挖礦,在 console 中輸入:
miner.stop()
挖到一個區塊會獎勵5個以太幣,挖礦所得的獎勵會進入礦工的賬戶,這個賬戶叫做 coinbase,默認情況下 coinbase 是本地賬戶中的第一個賬戶,可以通過 miner.setEtherbase() 將其他賬戶設置成 coinbase。
1.4.8 轉賬
目前,賬戶 0 已經挖到了 3 個塊的獎勵,賬戶 1 的余額還是0:
我們要從賬戶 0 向賬戶 1 轉賬,所以要先解鎖賬戶 0,才能發起交易:
發送交易,賬戶 0 -> 賬戶 1:
需要輸入密碼 123456
此時如果沒有挖礦,用 txpool.status 命令可以看到本地交易池中有一個待確認的交易,可以使用 eth.getBlock("pending", true).transactions 查看當前待確認交易。
使用 miner.start() 命令開始挖礦:
miner.start(1);admin.sleepBlocks(1);miner.stop();
新區塊挖出後,挖礦結束,查看賬戶 1 的余額,已經收到了賬戶 0 的以太幣:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')
用同樣的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json
啟動私有節點一,修改 rpcport 和port
可以通過 admin.addPeer() 方法連接到其他節點,兩個節點要要指定相同的 chainID。
假設有兩個節點:節點一和節點二,chainID 都是 1024,通過下面的步驟就可以從節點二連接到節點一。
首先要知道節點一的 enode 信息,在節點一的 JavaScript console 中執行下面的命令查看 enode 信息:
admin.nodeInfo.enode
" enode://@[::]:30303 "
然後在節點二的 JavaScript console 中執行 admin.addPeer(),就可以連接到節點一:
addPeer() 的參數就是節點一的 enode 信息,注意要把 enode 中的 [::] 替換成節點一的 IP 地址。連接成功後,節點一就會開始同步節點二的區塊,同步完成後,任意一個節點開始挖礦,另一個節點會自動同步區塊,向任意一個節點發送交易,另一個節點也會收到該筆交易。
通過 admin.peers 可以查看連接到的其他節點信息,通過 net.peerCount 可以查看已連接到的節點數量。
除了上面的方法,也可以在啟動節點的時候指定 --bootnodes 選項連接到其他節點。 bootnode 是一個輕量級的引導節點,方便聯盟鏈的搭建 下一節講 通過 bootnode 自動找到節點
參考: https://cloud.tencent.com/developer/article/1332424