當前位置:首頁 » 幣種行情 » 清掉eth的接收發送統計

清掉eth的接收發送統計

發布時間: 2025-08-30 15:53:23

A. ZYNQ+linux網口調試筆記(3)PL-ETH

在ZYNQ上使用gigE Vision協議的網路介面相機。

第一步:調通PS側網口GEM0(Xilinx BSP默認配好)。

第二步:調通PS側網口GEM1(見前一篇文檔:開發筆記(1))。

第三步:調通PL側網口(本文闡述)。

第四步:在PL側網口上驗證Jumbo Frame特性,並在應用層適配gigE Vision協議。

根據《xapp1082》可知,PL側的PHY支持1000Base-X和SGMII兩種配置,這兩種配置對應兩種不同的PHY引腳介面(連接到MAC)。而我們的hdf文件使用的是1000Base-X的配置。

關於網口的Linux驅動,我們在官網找到一份資料: Xilinx Wiki - Zynq PL Ethernet 。資料很長,我們只看與我們相關的2.4.1 PL Ethernet BSP installation for 1000Base-X」這一章節就可以了。

首先導入FPGA設計同事提供的hdf文件:

在彈出的圖形界面里,進入Subsystem AUTO Hardware Settings——Ethernet Settings——Primary Ethernet,確認可以看到PL側網路設備axi_ethernet_0,說明hdf文件里已包含了必要的網口硬體信息:

上圖中被選中的網口將成為Linux上的設備eth0。這里我們默認選擇ps7_ethernet_0,即使用GEM0作為首選網口。

啟用Xilinx AXI Ethernet驅動

進入Device Drivers -- Network device support – 選中Xilinx AXI Ethernet(以及Xilinx Ethernet GEM,這是PS側網口的驅動)

進入Networking support – 選中 Random ethaddr if unset

進入Device Drivers -- Network device support -- PHY Device support and infrastructure – 啟用Drivers for xilinx PHYs

進入~~~~Device Drivers -- DMA Engine Support -– 禁用~~~~Xilinx AXI DMAS Engine~~~ (對應的配置項名為 ~~ CONFIG_XILINX_DMA ~~~)

注意: Xilinx Wiki里對設備樹節點的引用有誤(&axi_ethernet),導致編譯報錯,應改為&axi_ethernet_0。

註:PL-ETH驅動所在路徑:<project>/build/tmp/work-shared/plnx_arm/kernel-source/drivers/net/ethernet/xilinx/xilinx_axienet_main.c和xilinx_axienet_mdio.c。對應的內核配置項為CONFIG_NET_VENDOR_XILINX和CONFIG_XILINX_AXI_EMAC。

啟用ethtool和tcpmp(調試用,非必須):

然後將生成的BOOT.BIN和image.ub拷貝到SD卡根目錄下,將SD卡插入板子上,上電運行。

上電後,使用ifconfig eth1查看網口信息,觀察MAC地址與設置的一致,且ifconfig eth1 192.168.1.11 up沒有報錯。

測試網路通路:ping PC是通的。說明網口工作正常。

Linux下eth1(即PL-ETH)的MAC地址有誤

問題描述:

開機列印:

注意:

MAC地址是錯的,驅動里解析出的是GEM0的MAC地址。

試驗發現,即使在system-user.dtsi里不寫local-mac-address,也照樣解析出的是GEM0的MAC。

而將system-user.dtsi里的local-mac-address改名為pl-mac-address,並將驅動里解析的字元串也對應更改為pl-mac-address,則可以正確解析出來:

Passing MAC address to kernel via Device Tree Blob and U-Boot:

http://zedboard.org/content/passing-mac-address-kernel-device-tree-blob

通過更改u-boot環境變數和設備樹,為每個板子設置一個獨特的MAC地址:

https://www.xilinx.com/support/answers/53476.html

U-Boot里的環境變數ethaddr會覆蓋掉設備樹里pl-eth的local-mac-addr欄位,從而影響Linux啟動後的網卡MAC地址;

但U-Boot里的環境變數ipaddr不會對Linux啟動後的配置產生任何影響。因為設備樹里根本就沒有關於IP地址的配置。

phy-mode怎麼會是sgmii?查了下官方的提供的BSP里,也是「sgmii」。說明這個沒問題。具體原因不清楚。

@TODO: 設備樹里的中斷號的順序如何影響功能?

為何讀出來的IRQ號不對呢?這是因為這里讀到的不是硬體的中斷號,而是經過系統映射之後的軟體IRQ number。兩者不具有線性關系。

關於中斷號的疑問:

Linux上的網口eth0、eth1的順序,似乎是按照phy地址從小到大來排布的。

Xilinx xapp1082-zynq-eth.pdf (v5.0) July 16, 2018

https://www.xilinx.com/support/documentation/application_notes/xapp1082-zynq-eth.pdf

Xilinx Wiki - Zynq PL Ethernet:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841633/Zynq+PL+Ethernet

Xilinx Wiki - Linux Drivers:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841873/Linux+Drivers

Xilinx Wiki - Linux Drivers - Macb Driver:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841740/Macb+Driver

Xilinx Wiki - Zynq Ethernet Performance:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841743/Zynq+Ethernet+Performance

查到關於Jumbo frame MTU的定義,當前值為9000,可否改大一些?

驅動源碼里關於jumbo frame的說明:

設置MTU為9000,發現ping包最大長度只能設為ping 192.168.1.10 -s 1472

https://lore.kernel.org/patchwork/patch/939535/

【完】

B. 區塊鏈怎麼防止重復交易,區塊鏈交易如何避免收到黑

區塊鏈技術

背景:比特幣誕生之後,發現該技術很先進,才發現了區塊鏈技術。比特幣和區塊鏈技術同時被發現。

1.1比特幣誕生的目的:

①貨幣交易就有記錄,即賬本;

②中心化機構記賬弊端——可篡改;易超發

比特幣解決第一個問題:防篡改——hash函數

1.2hash函數(加密方式)

①作用:將任意長度的字元串,轉換成固定長度(sha256)的輸出。輸出也被稱為hash值。

②特點:很難找到兩個不同的x和y,使得h(x)=h(y)。

③應用:md5文件加密

1.3區塊鏈

①定義

區塊:將總賬本拆分成區塊存儲

區塊鏈:在每個區塊上,增加區塊頭。其中記錄父區塊的hash值。通過每個區塊存儲父區塊的hash值,將所有的區塊按照順序連接起來,形成區塊鏈。

②區塊鏈如何防止交易記錄被篡改

形成區塊鏈後,篡改任一交易,會導致該交易區塊hash值和其子區塊中不同,發現篡改。

即使繼續篡改子區塊頭中hash值,會導致子區塊hash值和孫區塊中不同,發現篡改。

1.4區塊鏈本質

①比特幣和區塊鏈本質:一個人人可見的大賬本,只記錄交易。

②核心技術:通過密碼學hash函數+數據結構,保證賬本記錄不可篡改。

③核心功能:創造信任。法幣依靠政府公信力,比特幣依靠技術。

1.5如何交易

①進行交易,需要有賬號和密碼,對應公鑰和私鑰

私鑰:一串256位的二進制數字,獲取不需要申請,甚至不需要電腦,自己拋硬幣256次就生成了私鑰

地址由私鑰轉化而成。地址不能反推私鑰。

地址即身份,代表了在比特幣世界的ID。

一個地址產生之後,只有進入區塊鏈賬本,才能被大家知道。

②數字簽名技術

簽名函數sign(張三的私鑰,轉賬信息:張三轉10元給李四)=本次轉賬簽名

驗證韓式verify(張三的地址,轉賬信息:張三轉10元給李四,本次轉賬簽名)=True

張三通過簽名函數sign(),使用自己的私鑰對本次交易進行簽名。

任何人可以通過驗證韓式vertify(),來驗證此次簽名是否有由持有張三私鑰的張三本人發出。是返回true,反之為false。

sign()和verify()由密碼學保證不被破解。·

③完成交易

張三將轉賬信息和簽名在全網供內部。在賬戶有餘額的前提下,驗證簽名是true後,即會記錄到區塊鏈賬本中。一旦記錄,張三的賬戶減少10元,李四增加10元。

支持一對一,一對多,多對已,多對多的交易方式。

比特幣世界中,私鑰就是一切!!!

1.6中心化記賬

①中心化記賬優點:

a.不管哪個中心記賬,都不用太擔心

b.中心化記賬,效率高

②中心化記賬缺點:

a拒絕服務攻擊

b厭倦後停止服務

c中心機構易被攻擊。比如破壞伺服器、網路,監守自盜、法律終止、政府幹預等

歷史上所有有中心化機構的機密貨幣嘗試都失敗了。

比特幣解決第二個問題:如何去中心

1.7去中心化記賬

①去中心化:人人都可以記賬。每個人都可以保留完整的賬本。

任何人都可以下載開源程序,參與P2P網路,監聽全世界發送的交易,成為記賬節點,參與記賬。

②去中心化記賬流程

某人發起一筆交易後,向全網廣播。

每個記賬節點,持續監聽、持續全網交易。收到一筆新交易,驗證准確性後,將其放入交易池並繼續向其它節點傳播。

因為網路傳播,同一時間不同記賬節點的交一次不一定相同。

每隔10分鍾,從所有記賬節點當中,按照某種方式抽取1名,將其交易池作為下一個區塊,並向全網廣播。

其它節點根據最新的區塊中的交易,刪除自己交易池中已經被記錄的交易,繼續記賬,等待下一次被選中。

③去中心化記賬特點

每隔10分鍾產生一個區塊,但不是所有在這10分鍾之內的交易都能記錄。

獲得記賬權的記賬節點,將得到50個比特幣的獎勵。每21萬個區塊(約4年)後,獎勵減半。總量約2100萬枚,預計2040年開采完。

記錄一個區塊的獎勵,也是比特幣唯一的發行方式。

④如何分配記賬權:POW(proofofwork)方式

記賬幾點通過計算一下數學題,來爭奪記賬權。

找到某隨即數,使得一下不等式成立:

除了從0開始遍歷隨機數碰運氣之外,沒有其它解法,解題的過程,又叫做挖礦

誰先解對,誰就得到記賬權。

某記賬節點率先找到解,即向全網公布。其他節點驗證無誤之後,在新區塊之後重新開始新一輪的計算。這個方式被稱為POW。

⑤難度調整

每個區塊產生的時間並不是正好10分鍾

隨著比特幣發展,全網算力不算提升。

為了應對算力的變化,每隔2016個區塊(大約2周),會加大或者減少難度,使得每個區塊產生的平均時間是10分鍾。

#歐易OKEx##比特幣[超話]##數字貨幣#

以太坊區塊鏈之Bug--2020/05/19

為了防止交易重播,ETH(ETC)節點要求每筆交易必須有一個nonce數值。每一個賬戶從同一個節點發起交易時,這個nonce值從0開始計數,發送一筆nonce對應加1。當前面的nonce處理完成之後才會處理後面的nonce。注意這里的前提條件是相同的地址在相同的節點發送交易。

以下是nonce使用的幾條規則:

●當nonce太小(小於之前已經有交易使用的nonce值),交易會被直接拒絕。

●當nonce太大,交易會一直處於隊列之中,這也就是導致我們上面描述的問題的原因;

●當發送一個比較大的nonce值,然後補齊開始nonce到那個值之間的nonce,那麼交易依舊可以被執行。

●當交易處於queue中時停止geth客戶端,那麼交易queue中的交易會被清除掉。

?????第一個欄位AccountNonce,直譯就是賬戶隨機數。它是以太坊中很小但也很重要的一個細節。以太坊為每個賬戶和交易都創建了一個Nonce,當從賬戶發起交易的時候,當前賬戶的Nonce值就被作為交易的Nonce。這里,如果是普通賬戶那麼Nonce就是它發出的交易數,如果是合約賬戶就是從它的創建合約數。

為什麼要使用這個Nonce呢?其主要目的就是為了防止重復攻擊(ReplayAttack)。因為交易都是需要簽名的,假定沒有Nonce,那麼只要交易數據和發起人是確定的,簽名就一定是相同的,這樣攻擊者就能在收到一個交易數據後,重新生成一個完全相同的交易並再次提交,比如A給B發了個交易,因為交易是有簽名的,B雖然不能改動這個交易數據,但只要反復提交一模一樣的交易數據,就能把A賬戶的所有資金都轉到B手裡。

當使用賬戶Nonce之後,每次發起一個交易,A賬戶的Nonce值就會增加,當B重新提交時,因為Nonce對不上了,交易就會被拒絕。這樣就可以防止重復攻擊。當然,事情還沒有完,因為還能跨鏈實施攻擊,直到EIP-155引入了chainID,才實現了不同鏈之間的交易數據不兼容。事實上,Nonce並不能真正防止重復攻擊,比如A向B買東西,發起交易T1給B,緊接著又提交另一個交易T2,T2的Gas價格更高、優先順序更高將被優先處理,如果恰好T2處理完成後剩餘資金已經不足以支付T1,那麼T1就會被拒絕。這時如果B已經把東西給了A,那A也就攻擊成功了。所以說,就算交易被處理了也還要再等待一定時間,確保生成足夠深度的區塊,才能保證交易的不可逆。

Price指的是單位Gas的價格,所謂Gas就是交易的消耗,Price就是單位Gas要消耗多少以太幣(Ether),Gas*Price就是處理交易需要消耗多少以太幣,它就相當於比特幣中的交易手續費。

GasLimit限定了本次交易允許消耗資源的最高上限,換句話說,以太坊中的交易不可能無限制地消耗資源,這也是以太坊的安全策略之一,防止攻擊者惡意佔用資源。

Recipient是交易接收者,它是common.Address指針類型,代表一個地址。這個值也可以是空的,這時在交易執行時,會通過智能合約創建一個地址來完成交易。

Amount是交易額。這個簡單,不用解釋。

Payload比較重要,它是一個位元組數組,可以用來作為創建合約的指令數組,這時每個位元組都是一個單獨的指令;也可以作為數據數組,由合約指令來進行操作。合約由以太坊虛擬機(EthereumVirtualMachine,EVM)創建並執行。

V、R、S是交易的簽名數據。以太坊當中,交易經過數字簽名之後,生成的signature是一個長度65的位元組數組,它被截成三段,前32位元組被放進R,再32位元組放進S,最後1個位元組放進V。那麼為什麼要被截成3段呢?以太坊用的是ECDSA演算法,R和S就是ECSDA簽名輸出,V則是RecoveryID。

R,S,V是交易簽名後的值,它們可以被用來生成簽名者的公鑰;R,S是ECDSA橢圓加密演算法的輸出值,V是用於恢復結果的ID

區塊鏈安全性主要通過什麼來保證

區塊鏈技術是一種分布式記錄技術,它通過對數據進行加密和分布式存儲,來保證數據的安全性和可靠性。

主要通過以下幾種方式來保證區塊鏈的安全性:

1.加密技術:區塊鏈採用的是對稱加密和非對稱加密演算法,可以有效保護數據的安全。

2.分布式存儲:區塊鏈的數據不是集中存儲在單一節點上,而是分散存儲在網路中的各個節點上,這有效防止了數據的篡改和丟失。

3.共識機制:區塊鏈通常採用共識機制來確認交易的合法性,這有助於防止惡意交易的發生。

4.合約機制:區塊鏈可以通過智能合約來自動執行交易,這有助於防止操縱交易的發生。

區塊鏈技術在實現安全性的同時,也帶來了一些挑戰。例如,區塊鏈的安全性可能受到漏洞的攻擊,或者因為私鑰泄露而導致資產被盜。因此,在使用區塊鏈技術時,還需要注意身份認證、密碼安全等方面的問題,以確保區塊鏈的安全性。

此外,區塊鏈技術的安全性也可能受到政策、法規等方面的影響。例如,在某些國家和地區,區塊鏈技術可能會受到審查和限制,這也可能會對區塊鏈的安全性產生影響。

總的來說,區塊鏈技術的安全性主要通過加密技術、分布式存儲、共識機制和合約機制等方式來保證,但是還需要注意其他方面的挑戰和影響因素。

熱點內容
礦機安裝怎麼開機 發布:2025-08-30 21:57:35 瀏覽:882
幣圈社交電商概念 發布:2025-08-30 21:55:16 瀏覽:967
區塊鏈共識機制是密碼學 發布:2025-08-30 21:42:59 瀏覽:632
如何用人民幣買入以太坊 發布:2025-08-30 21:38:33 瀏覽:593
發現幣圈的賺錢方法 發布:2025-08-30 21:31:50 瀏覽:87
比特幣價格提醒功能 發布:2025-08-30 21:13:54 瀏覽:282
比特幣查處 發布:2025-08-30 21:13:11 瀏覽:277
比特魚礦池怎麼買礦機 發布:2025-08-30 21:02:38 瀏覽:231
eth礦工手續費 發布:2025-08-30 20:55:49 瀏覽:220
萊特幣工作量證明機制 發布:2025-08-30 20:51:29 瀏覽:773