資料介紹
描述
這個項目是關(guān)于什么的?
每個運行完整以太坊節(jié)點的人都需要處理托管在區(qū)塊鏈上的智能合約。通常,這是通過在軟件中模擬以太坊虛擬機 (EVM) 來完成的。
該項目的目的是在 FPGA 上構(gòu)建 EVM 的硬件實現(xiàn)。結(jié)果將是以太坊處理單元 (EPU),這是一個 256 位處理器,它不在寄存器上運行,而是在堆棧上運行。
這個項目是給誰的?
- 就設計部分而言,這個項目是為異國情調(diào)的 CPU 愛好者準備的。
- 就硬件部分而言,它是一個面向服務器改裝者的項目。Xilinx Varium C1100 需要高性能冷卻解決方案。運行 Xilinx 的軟件套件需要定制的工作站。
- 你想使用這個項目嗎?然后,您是 EVM 驅(qū)動的區(qū)塊鏈上的獨立礦工、礦池運營商或驗證者。
設置工作站硬件
選擇非常安靜的組件可以為運行 Xilinx 軟件的工作站降溫,但不能為托管 Varium C1100 的機器降溫。如果您想將卡安裝在同一個 PC 機箱中,請在進行物理安裝之前閱讀“冷卻系統(tǒng)得到加強”一章。
組件選擇:
使用我特定的 BIOS 設置(3200 MHz,1.2 V),RAM 不需要額外的冷卻。注意:我想將 CPU 風扇安裝在護罩上,讓一些空氣流向 RAM 條。但這不是必需的。
對于無風扇電源,我們需要機箱內(nèi)部有一個正壓。這意味著所有三個 Fractal 風扇都安裝在前擋板側(cè)。頂部和底部網(wǎng)格覆蓋有紙(下圖中的白色區(qū)域),以引導氣流從前到后。
要連接風扇,請解開下圖中左側(cè)的所有電纜。風扇電纜使用相同的扎帶連接,以避免它們在運輸過程中晃來晃去。風扇集線器從 SATA 獲取電源。雖然 SSD 是 2.5",但我將它安裝在 3.5" 的托架中。在那里,它不會被主板加熱。
CPU 冷卻器和機箱背面之間不需要護罩。
氣流足夠。
安裝 Vitis 和先決條件
如果您計劃在任何基于 Ubuntu 的 Linux 上安裝 Vitis,請確保在啟動安裝程序之前安裝 libtinfo5。
https://support.xilinx.com/s/article/76616?language=en_US
簡而言之:成為超級用戶,更新您的系統(tǒng)并安裝 libtinfo5。其他一些安裝將很方便或稍后需要:
sudo su
apt update
apt upgrade
apt install libtinfo5
apt install cmake
apt install openssh-server
apt install git
apt install build-essential
apt install opencl-headers
apt install xsensors
后面會使用cmake搭建區(qū)塊鏈加速挖礦demo。openssh-server 允許您使用 ssh 從另一臺計算機登錄您的工作站,或使用 scp 從另一臺計算機復制 Vitis 安裝程序。
確保在要安裝 Vitis 的文件系統(tǒng)上禁用日志功能。如果您在 /tools 下安裝了一個單獨的 300GB 分區(qū),那么這樣做可能最簡單。
這次我將包括 Vitis 在內(nèi)的整個系統(tǒng)安裝在 logbsize=256k 的 XFS 分區(qū)上,并且只在統(tǒng)一安裝程序中勾選該項目所需的內(nèi)容。
如果使用 xfs 文件系統(tǒng),編輯 /etc/fstab 并替換
UUID=...... / xfs defaults 0 0
/swapfile none swap sw 0 0
經(jīng)過
UUID=...... / xfs logbsize=256k 0 0
#/swapfile none swap sw 0 0
并刪除所有交換分區(qū)和交換文件。我們不想在 128 GB RAM 系統(tǒng)中更換 SSD 驅(qū)動器。
重新啟動您的系統(tǒng)(是的,我知道有使用 mount 和 swapoff 的替代方法——但讓我們保持簡單)。
現(xiàn)在是時候下載 Xilinx 統(tǒng)一安裝程序了:
或者更大的選擇:https ://www.xilinx.com/support/download.html
仍然以root身份,我們切換到下載目錄并運行
chmod 555 ./Xilinx_Unified_2021.2_1021_0703_Lin64.bin
./Xilinx_Unified_2021.2_1021_0703_Lin64.bin
將單選按鈕留在頂部(“Vitis”)。它還將安裝 Vivado。是的,Vitis 依賴于 Vivado。從組件中,刪除所有不需要的。Varium 卡上的 U55 是一個 UltraScale+ 器件。
選中以下項目:
- Vitis 統(tǒng)一軟件平臺(包含所有 3 個組件)
- DocNav(有文檔總是好的)
- ... Alveo 和邊緣加速...(Varium 的某些組件與 Alveo 兼容)
- 設備:UltraScale+
除非用于其他項目,否則取消選中以下內(nèi)容:
- Vitis Model Composer(不,我沒有 Matlab)
- Kria SOM 設備(如果這個包含 PetaLinux,我們可以節(jié)省一些 GB)
- 適用于自定義平臺的設備:除 UltraScale+ 之外的所有設備
不選中工程樣本。
安裝過程需要幾個小時。
之后,需要做一些工作來避免以 root 權(quán)限運行 Vivado:
https://support.xilinx.com/s/feed/0D52E00006hpUGrSAM
對于構(gòu)建 Xilinx DMA:
https://github.com/Xilinx/dma_ip_drivers/issues/39
萬歲,Varium 卡到了
該項目歷史上的一個重要日期(2021-12-20):實物 Varium C1100 卡進入現(xiàn)場。非常感謝 Xilinx!
包裝內(nèi)只包含 Varium 卡。所有軟件都在網(wǎng)站上。不提供電纜。
該卡本身看起來像一個智能網(wǎng)卡。但我們都知道:它是一個非常智能的 HBM 網(wǎng)卡。它有兩個 QSFP-28 端口的 8 個 MAC 地址。在馬來西亞制作。
卡片很重。一切都與冷卻有關(guān)。還有一個金屬背板。有人知道J37有什么用嗎?I2C?我想為風扇提供 PWM 輸出。也許我也可以為此濫用 Alveo 連接器。
... 還有一個Hackster.io貼紙。涼爽的。
Varium 卡的機械安裝
選項 1:垂直插槽
對于這個項目,我買了一個帶有垂直 GPU 插槽和實心側(cè)面板的電腦機箱。我希望有更多的遮蔽選項,尤其是在主板附近的遮蔽預計會有問題的情況下。
顯示的問題:前面的 USB 3 電纜最好放在電源連接器旁邊。
----
選項 2:底部插槽
該主板的底部插槽只有 8 個 PCIe 通道。用臨時紙罩蓋在主板旁邊失敗了。如果您使用此插槽,請將護罩直接連接到 Varium 卡上。
冷卻系統(tǒng)得到加強
Option 1
:舊的 80 毫米 ProLiant 服務器風扇 + 護罩
護罩直接連接到 Varium 卡上。因此,底部插槽和垂直插槽安裝是可以的。只有 PCIe AUX 電源線穿過護罩。
風扇全速運轉(zhuǎn)并發(fā)出令人不快的噪音。但它提供 10 mm H2O 的靜壓(在 12VDC 下運行)。確保您的探測軟管垂直于氣流。
服務器風扇在 12VDC 下運行時聲音太大。將其電壓降至 5VDC(也可在 Molex 連接器上輕松獲得)在噪音滋擾和 Varium 卡在庫存設置(即無超頻)下的充分冷卻之間實現(xiàn)了良好的折衷。
----
Option 2
: 三洋電機高靜壓風扇
(!) 危險區(qū)域 (!) 別開玩笑了。觸摸正在運行的 PC 風扇,它就會停止。觸摸正在運行的服務器風扇,您會流血(親身體驗)。觸摸正在運行的工業(yè)級風扇……不。就是不要。Sanyo Denki 產(chǎn)品上沒有警告標簽。
沒有免費運行的桌面測試!這個風扇的推力太大了。直接安裝到 PC 機箱中進行首次通電測試,當然還有保護網(wǎng):
接線:紅色:+48V,黑色:0V,棕色:PWM(連接到 0V 以獲得 0% PWM!),黃色:轉(zhuǎn)速計(未連接)。
Sanyo Denki 是一個不錯的軟啟動。上電時無電涌。即使在 0%PWM 下,這架直升機也會產(chǎn)生穩(wěn)固的靜壓。但是聲音太大了。它消耗大約 7-14W。這些值在我的分辨率為 7W 的壞瓦特表上很難重現(xiàn)。
下一個測試是將直升機加電至 100% PWM。我關(guān)了電腦。這樣,即使出現(xiàn)LOCA(冷卻劑損失),我也不會冒 Xilinx 贊助的全新 Varium 反應堆核心熔毀的風險。
Tektronix 電源可用于 0%PWM。但是對于 100%PWM,我使用了我為音頻放大器項目設計的電源,我試圖將直升機加速到全功率。斷開棕色線與黑色線的連接就足夠了。當然,要戴護目鏡和耳罩。我妻子的評論?可怕!她是對的:根據(jù)數(shù)據(jù)表,Sanyo Denki 直升機從 3000 RPM 緩慢上升到 15000 RPM 以下。但是我的電源進入電流限制(1.5 A)并且功耗為 77W,低于額定的 98W。RND 組件風扇保護網(wǎng)格顯然不是為該吞吐量而設計的。氣流變得過于湍流,所有能量都被吸收,而不是通過 Varium 卡推動空氣或在 PC 機殼中增加壓力。
如果你真的想起訴 Sanyo Denki 直升機,盡管它的噪音很大,直接把它裹在 Varium 卡上。也許你甚至想建造一個風道來冷卻背板和前板。在進氣側(cè),添加空氣動力學安全罩。超頻快樂!
直升機將在以后的項目中進行低噪音改裝。
與此同時,自從我感染了 COVID 之后,我的 Hackster 實驗室就是一個生物危險區(qū)。
----
Option 3
:三個串聯(lián)的 140mm 分形風扇
最后一個空閑系統(tǒng)的可接受解決方案。
將分形風扇從機箱中取出,將它們排成一行,使所有電纜都在同一側(cè),并且氣流進入同一方向。然后,將燒烤串(最大直徑 3 毫米)的尖端逆著氣流插入風扇的安裝孔和墊片中:
現(xiàn)在,在烤肉串上卷上膠帶(在烤肉串上粘一點膠帶,然后開始旋轉(zhuǎn)烤肉串,直到膠帶層厚到無法再通過安裝孔)。從第一個風扇組件內(nèi)部的較薄端獲益。
確保風扇緊密堆疊在一起。
在進氣側(cè)的第一個風扇組件內(nèi)部和最后一個風扇組件的外部切割串桿。剪一張長約 600 毫米、寬與風扇疊一樣的紙。將它粘在電線附近的兩個墊片上,然后將其纏繞在風扇組周圍。添加膠帶使電纜通道氣密。將其安裝在電源護罩的正上方。
您現(xiàn)在有兩個選擇:
a) 繼續(xù)為 Varium 卡添加護罩并為 PC 的其余部分添加更多風扇
b) 用膠帶覆蓋前板的剩余部分,以免空氣逸出到前面。PC 機殼的背面部分用膠帶遮蓋,以迫使足夠的空氣通過 Varium 卡。調(diào)整阻力最小的路徑。
我選擇了選項 b)。
不是很漂亮,但可以作為概念證明。
我們在可接受的噪音水平下有幾毫米的靜壓。
只要系統(tǒng)處于空閑狀態(tài),溫度也可以。
只要 Varium 在 golden 或 xilinx_u55n_gen3x4_xdma_base_1 上空閑,就可以在沒有適當冷卻的情況下應用電源。該卡的功耗略低于 10W 至 14W,具體取決于加載的固件。
----
結(jié)論:
將 Varum 卡冷卻到可接受的辦公室噪音水平是一項挑戰(zhàn)。
接受的解決方案是:
- 使用 3 個堆疊風扇(選項 3)冷卻整個 PC 機箱,但顯然“設置工作站硬件”部分中顯示的風扇配置也可以。
- 使用低電壓(5V 而不是 12V)服務器風扇冷卻 Varium 卡。
速度控制會很好,因為它允許超頻。
在以后的項目中嘗試一下:https ://github.com/neffs/fan_controller
華碩的一個缺點是不允許我使用機箱風扇接頭連接器來控制覆蓋在 Varium 卡上的風扇。
體溫監(jiān)測
如果你跑
xsensors
你知道一些溫度。有兩個錯誤
- 0和NULL沒有區(qū)別
- 未報告 HBM 溫度(我使用 gimp 手動添加了紅色)。
恢復為 Golden 并重新刷寫 shell 奇跡般地解決了 HBM 溫度讀數(shù)問題。您的主板的某些插槽可能被剝離(看起來像 16 通道,但實際上是 8 通道)。在我的系統(tǒng)上,由于依賴性問題,這不起作用。將所有 deb 文件放入同一個apt install命令中。問題解決了:
sudo apt install ./xilinx-u55n-gen3x4-xdma-validate_1-3191757_all.deb ./xilinx-cmc-u55_1.5.16-2.3143933_all.deb ./xilinx-sc-fw-u55_7.1.12-1.ba326cb_all.deb xilinx-u55n-gen3x4-xdma-base_1-3191732_all.deb ./xilinx-u55n-gen3x4-xdma-1-202110-1-dev_1-3236984_all.deb
根據(jù)建議:
sudo /opt/xilinx/xrt/bin/xbmgmt flash --update --shell xilinx_u55n_gen3x4_xdma_base_1
現(xiàn)在,是時候重啟裝有 Varium 卡的機器了。
歡迎回來。
讓我們看看升級是否有效:
lspci | grep Xilinx
09:00.0 Processing accelerators: Xilinx Corporation Device 5058
09:00.1 Processing accelerators: Xilinx Corporation Device 5059
是的,我們還有一條線。重新運行與上面相同的命令:
sudo /opt/xilinx/xrt/bin/xbmgmt flash --update --shell xilinx_u55n_gen3x4_xdma_base_1
它現(xiàn)在將刷新 SC。
現(xiàn)在是驗證部分:
sudo lspci -vd 10ee:
sudo /opt/xilinx/xrt/bin/xbmgmt flash --scan
確保您可以看到掃描結(jié)果并相應地替換以下命令中的 09:00:
sudo /opt/xilinx/xrt/bin/xbutil validate -d 0000:09:00.1 --verbose
是的,第一次對卡進行真正的測試。
有些消息雖然很奇怪:
Test 1 [0000:09:00.1] : Aux connection
Description : Check if auxiliary power is connected
Details : Aux power connector is not available on this board
Test Status : [SKIPPED]
我連接了 AUX 電源。
劇透警報:我沒有成功。如果你想要一個正在運行的系統(tǒng),請?zhí)较乱徽隆?/font>
以下是要下載的文件(我們無法使用 curl 獲取它們,因為這些 URL 是登錄墻):
- https://www.xilinx.com/member/forms/download/xef.html?filename=dag_gen_kernel.xclbin
- https://www.xilinx.com/member/forms/download/xef.html?filename=ethash_kernel.xclbin
現(xiàn)在,讓我們設置環(huán)境變量
source /opt/xilinx/xrt/setup.sh
我遇到了 cmake 的問題,可能是因為我設置了 Vitis。確保一個
cmake --version
產(chǎn)生版本 >= 3.5
./build.sh build_host
缺少 CUDA 工具包時失敗。因為我不想在無風扇顯卡上挖礦,所以我禁用了 CUDA:
在build.sh文件中將第 146 行更改為
cmake .. -DETHASHCUDA=OFF
感謝Fouad發(fā)現(xiàn)了那個。
source /opt/xilinx/xrt/setup.sh
./build.sh build_host
[100%] 內(nèi)置目標 ethminer
是的!
如果您沒有 ETH 錢包,請創(chuàng)建一個。我從https://f-droid.org/獲取了 WallETH
然后開始編輯你的啟動腳本:
nano mine.sh
腳本看起來像
source /opt/xilinx/xrt/setup.sh
./build.sh mine 0x295805bbbaf99ec63183bfe5078c8bc34203e7 xiliminix eu1.xxxxxmine.org:4444
將0x...替換為錢包的公鑰,將xiliminix 替換為您的工作人員姓名,將 eu1.xxxxxmine.org:4444 替換為礦池的主機名:端口。不要使用 ethermine.org。如果嘗試失敗,他們會很快將您列入黑名單。
現(xiàn)在,讓我們使這個腳本可執(zhí)行并運行它:
chmod 755 mine.sh
./mine.sh
您真的期望這會起作用嗎?
在我的系統(tǒng)上,ethminer 內(nèi)置在我的主目錄中。所以留在build.sh所在的位置
mv ~/ethminer .
./mine.sh
答案是:
Unrecognized platform Xilinx
Subscription failed : Invalid user provided
聽起來更有希望。我顯然必須將我的 WallETH 與 ethermine.org 連接起來。這可以通過ethermine.org網(wǎng)站右上角的“連接錢包”選項來完成。
還有 IIRC,我還沒有在 Varium 卡上刷寫 DAG 和挖礦內(nèi)核。
xbutil program --device 0000:09:00.1 --user dag_gen_kernel.xclbin
xbutil program --device 0000:09:00.1 --user ethash_kernel.xclbin
我希望他們不要互相覆蓋。
顯然,ethermine 禁止了我。使用eu-eth.hiveon.net:4444代替。
首先嘗試用我的顯卡挖礦,然后......
SIGSEGV
sudo su
source /opt/xilinx/xrt/setup.sh
xbmgmt program -d 0000:09:00.0 --revert-to-golden
告訴我重啟電源。也許這就是我在對用戶分區(qū)進行編程后錯過的。
我沒有驗證的另一件事是我是否為正確的平臺構(gòu)建了 daggen。
一堆熱圖像——行動中的紅色礦工隊
Team Red Miner最初專注于 AMD/OpenCL 礦工,可輕松將您的 Varium 卡變成 ETH PoW 礦工。
創(chuàng)建一個新用戶,使其成為dialout組的成員并重新啟動您的機器。確保 trm 用戶可以訪問 ttyUSB。否則,您可以以 root 身份運行 Tea Red miner,但這是不好的做法。
以下是溫度(使用低電壓(5V 而不是 12V)服務器風扇冷卻):
Team Red Miner 支持對該卡進行超頻。但這需要更好的冷卻。這可以通過將服務器風扇切換到 12V 來提供:
sudo su
source /opt/xilinx/xrt/setup.sh
./teamredminer --eth_dag_slowdown=0 --fpga_clk_core=625 --fpga_clk_mem=1250 -a ethash -o stratum+tcp://eu-eth.hiveon.net:4444 -u 0x2a13f15b04f7b8d6319e9ed56521f2c2adcaf324 -p x
調(diào)整參數(shù)以滿足您的需要。否則,它會挖到我的錢包里 ;-)。
您的最大時鐘值可能與我的不同,具體取決于冷卻和制造公差。
熱點被推離風扇更遠。對電源轉(zhuǎn)換器不利。
與超頻速度相比,風扇速度對溫度的影響更大。在 USB 連接器的右側(cè),我切掉了后板的一些部分,以便于空氣流動。在熱圖像上,我們可以清楚地看到主冷卻器。不要切掉 QSFP28 連接器上方的后板。下面我們需要更多的氣流。注意空氣阻力最小的路徑。
Blinky - FPGA 的 Hello World
Red Miner 團隊正在編寫 Varium C1100 卡上開箱即用的罕見應用程序之一。但是,當您購買 FPGA 時,通常希望在其上運行您自己的設計。閃爍的 LED 是您可以證明整個設計流程有效的第一個證據(jù)。
幸運的是,@Quarky 幫助我讓 Blinky 在 Varium 上運行。
切換到您的項目目錄并下載 Quarky 的代碼。它不僅僅是眨眼,但讓我們邁出第一步:
git clone https://github.com/Quarky93/warpshell.git
按照 README.md 文件中有關(guān) Blinky 的說明進行操作。
對其進行編程后,其中一個 SQFP28 端口狀態(tài) LED 開始閃爍,其他 LED 保持亮起。低頻是我的錯;-)。增加它留給讀者作為練習。
讓 DMA 演示運行起來更具挑戰(zhàn)性,因為您必須構(gòu)建 xdma 驅(qū)動程序:
切換到您構(gòu)建項目的目錄。然后
source /tools/Xilinx/Vivado/2021.2/settings64.sh
git checkout https://github.com/Xilinx/dma_ip_drivers.git
并根據(jù)https://github.com/Xilinx/dma_ip_drivers/issues/39創(chuàng)建一個 SSL 密鑰
現(xiàn)在,您可以開始 xdma 驅(qū)動程序的構(gòu)建過程。請參閱自述文件。然后,
modprobe xdma
lsmod | grep xdma
將顯示您的構(gòu)建是否成功。如果
lspci | grep x
將您的 Varium 卡顯示為 9041,然后您就完成了,您可以嘗試 Quarky 的傳感器和 DMA 演示。如果您的卡片顯示為5058,
您仍然在卡片上加載了 Xilinx 運行時。使用 Vivado 的硬件管理器對 Quarky 的 shell 進行編程。如果這沒有將 lspci 5058 更改為 9041,請執(zhí)行熱重啟(即沒有電源循環(huán))。
一旦一些 /dev/xdma* 文件出現(xiàn),xdma 驅(qū)動程序就被正確構(gòu)建,你的卡也被正確編程。
注意:如果更新內(nèi)核,則必須重建 xdma 驅(qū)動程序。在重新創(chuàng)建 SSH 密鑰和 make install 之前執(zhí)行 make clean。
以 GUI 方式為 Varium C1100 配置 Vivado
啟動 Vivado 時,您會在開始設計的電路板中錯過 Varium C1100。此問題有兩種解決方法:
- tcl控制臺方式:UG1526第9頁(從https://www.xilinx.com/member/varium-vivado.html下載)
- GUI方式:
啟動vivado
source /tools/Xilinx/Vivado/2021.2/settings64.sh
vivado
- 創(chuàng)建一個新的 RTL 項目
- 選擇任何Ultrascale+ 開發(fā)板
- 進入 IP 目錄
- 禁用“隱藏禁用和不兼容的 IP”按鈕
- 選擇“Card Management Solution Subsystem”Version 4(試一試,版本會出現(xiàn)在下面的面板中,或者滾動表格到右邊)
- 右鍵單擊它并選擇“兼容的家庭”
- 為 Varium C1100(您可以在 DS1003 和 UG1526 中找到該部件號)選擇 XCU55N-FSVH2892-2L-E(使用搜索功能:放大鏡)。您還可以找到 U55N、U55C、SN1022 等卡...
- 點擊“切換部件”
- 確認切換項目部分
- 將 C1100_xdc_1v00.xdc 文件(或任何更新版本)包含到設計約束中
您可以從此頁面下載 XDC 文件:https ://www.xilinx.com/products/accelerators/varium/c1100.html#vivado
現(xiàn)在,您已準備好創(chuàng)建新設計。
使用 MicroBlaze 作為“服務處理器”
我首先想到構(gòu)建一個擴展的 EPU
- 主管模式(一些額外的 I/O 功能,用于將合約及其狀態(tài)加載到內(nèi)存中并返回新狀態(tài)
- 執(zhí)行模式(執(zhí)行EVM等智能合約)
與使用 MicroBlaze 執(zhí)行上述管理模式任務相比,這不太可能成功。我們不需要 256 位 ALU 和堆棧引擎來將作業(yè)加載到內(nèi)存中。第一個版本的想法也是不使用 PCIe/DMA,而是使用 MicroUSB UART。像這樣,我可以避免重新啟動主機以獲得正確的 PCIe。我們或許也可以避免編寫驅(qū)動程序軟件。性能可能低于在主 CPU 上模擬 EVM。如果是這樣,以后還是可以引入DMA的。
請注意,所有涉及 SDK 的文檔均已過時。我們現(xiàn)在使用 Vitis 在 MicroBlaze 上實施軟件。
https://www.xilinx.com/support/documentation/quick_start/microblaze-quick-start-guide-with-vitis.pdf
還可以搜索 MircroBlaze Hello World。當心舊的 SDK 工作流程。
根據(jù) Vitis 的能力,也可以采取“先造后造”的方法,即在 microBlaze 上實現(xiàn) EPU,然后逐步用真正的硬件 EPU 替換它。
試圖讓 geth 運行
切換到您的項目目錄并避免成為超級用戶,然后:
git clone https://github.com/ethereum/go-ethereum.git
sudo apt install golang
cd go-ethereum
make all
您真的期望構(gòu)建過程順利嗎?上面命令安裝的1.13.8版本報錯如下:
build github.com/ethereum/go-ethereum/cmd/clef: cannot load hash/maphash: malformed module path "hash/maphash": missing dot in first path element
golang 的更新可以解決這個問題?咱們試試吧。這里的一些說明看起來不錯。
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
sudo apt autoremove
讓我們再試一次:
make all
自述文件沒有告訴我們?nèi)绾问?bash 可以訪問可執(zhí)行文件。我在這個頁面的底部找到了。
cd build/bin
哇,甚至還有一個 evm 可執(zhí)行文件。自述文件說了什么?
./evm --code 60ff60ff --debug run
輸出是:
0x
#### TRACE ####
PUSH1 pc=00000000 gas=10000000000 cost=3
PUSH1 pc=00000002 gas=9999999997 cost=3
Stack:
00000000 0xff
STOP pc=00000004 gas=9999999994 cost=0
Stack:
00000000 0xff
00000001 0xff
#### LOGS ####
整潔的!那個仍然在 CPU 上運行。對于 EVM 上的“hello world”,擁有這個工具真是太好了。
./geth --goerli console
開始同步測試網(wǎng)。這將成為衡量 EPU/EVM 加速效率的基準。但是竊聽同伴會干擾時間。Geth 已經(jīng)是多線程的了。好的。-- 但不是 EVM。可以讓生活更輕松。
錯過了--syncmode 完整選項。那應該稱為 EVM。
對現(xiàn)有的 geth EVM 代碼進行逆向工程
https://github.com/ethereum/go-ethereum/tree/master/core/vm
更確切地說
https://github.com/ethereum/go-ethereum/blob/master/core/vm/interpreter.go
在這里,我們看到
func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) {
所以,策略是設置一個DMA發(fā)送合約*Contract,輸入[]byte, readOnly bool到Varium卡,等到處理完成,通過DMA獲取ret []byte, err error 。
解釋器主循環(huán)將有效地被 EPU 取代。interpreter.go中的其余代碼用于執(zhí)行既不在 EVM 也不在 EPU 上運行的預編譯合約。
現(xiàn)在,我將在我的 geth 分支上進行與硬件實現(xiàn)相關(guān)的更改:https ://github.com/stonux/go-ethereum.git
如果您想要自己的副本,請切換到您的本地工作目錄。當心那里是否已經(jīng)有一個 go-ethereum。我不知道 IDE 處理多個分支的能力如何。
git clone https://github.com/stonux/go-ethereum.git
整個事情會有多奇怪?
請記住,以太坊想要抗 ASIC。這對 EVM 的硬件實現(xiàn)來說是有毒的。費用表、操作碼……從一個叉子變成另一個叉子。如果我們對一個全節(jié)點進行完全同步,我們將不得不為每個分叉重新編程 FPGA,或者實現(xiàn)一個以分叉 ID 作為參數(shù)的 EPU,并相應地調(diào)整指令解碼和 gas 計量(可能在以后的版本)。
- TLIMX8-EVM評估板硬件說明書
- 基于FPGA芯片的軟硬件平臺的使用 20次下載
- 基于FPGA的神經(jīng)網(wǎng)絡硬件實現(xiàn)方法 37次下載
- 基于FPGA的RBF神經(jīng)網(wǎng)絡硬件實現(xiàn) 26次下載
- 如何使用FPGA實現(xiàn)順序形態(tài)圖像處理器的硬件實現(xiàn) 8次下載
- 在PCB上設計大容量引腳FPGA 24次下載
- 如何使用FPGA和DSP實現(xiàn)數(shù)字視頻消像旋系統(tǒng)的設計 10次下載
- 如何使用FPGA實現(xiàn)神經(jīng)網(wǎng)絡硬件的設計方法 6次下載
- 如何使用FPGA實現(xiàn)異步FIFO硬件 9次下載
- 基于TCP/IP通信技術(shù)在Xilinx FPGA上的實現(xiàn) 9次下載
- 在FPGA上實現(xiàn)CRC算法的程序 28次下載
- 融合DSP設計與FPGA硬件實現(xiàn) 225次下載
- 基于FPGA的2-D模糊CMAC網(wǎng)絡的硬件實現(xiàn) 29次下載
- 基于FPGA的模糊CMAC網(wǎng)絡的硬件實現(xiàn)
- 構(gòu)建3-GBPS Esata/sata硬件RAID 5解決方
- fpga是硬件還是軟件 756次閱讀
- fpga開發(fā)是什么意思 817次閱讀
- fpga是硬件還是軟件 1354次閱讀
- 如何使用OpenCL輕松實現(xiàn)FPGA應用編程 6322次閱讀
- 采用Fusion FPGA實現(xiàn)擴散爐溫控系統(tǒng)的軟硬件設計 941次閱讀
- 基于級聯(lián)結(jié)構(gòu)和VHDL語言的IIR數(shù)字濾波器在FPGA上實現(xiàn)設計 1923次閱讀
- 軟件無線電硬件平臺的FPGA動態(tài)配置 1045次閱讀
- FPGA在人工智能時代的獨特優(yōu)勢的全面分析 1w次閱讀
- 如何利用FPGA硬件實現(xiàn)固定倍率的圖像縮放? 4452次閱讀
- 基于FPGA硬件平臺的可重構(gòu)系統(tǒng)調(diào)度算法詳解 1922次閱讀
- 基于fpga和cpld低頻/最小邏輯ADC實現(xiàn) 1255次閱讀
- FPGA上電后IO的默認狀態(tài) 1.5w次閱讀
- 利用LabVIEW FPGA模塊構(gòu)建靈活的發(fā)動機仿真器 1748次閱讀
- 在FPGA中實現(xiàn)嵌入式TCP/IP通信協(xié)議棧 7739次閱讀
- 新手如何學習FPGA外圍硬件電路設計 2.7w次閱讀
下載排行
本周
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 136次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
- 0.10 MB | 125次下載 | 免費
- 4USB Type_C PD快充協(xié)議智能觸發(fā)芯片F(xiàn)S8025B應用手冊
- 1.48 MB | 3次下載 | 免費
- 5USB的PD快充協(xié)議電壓誘騙控制器FS312A中文手冊
- 1.51 MB | 2次下載 | 免費
- 6USB的PD和OC快充協(xié)議電壓誘騙控制器FS312B中文手冊
- 1.35 MB | 2次下載 | 免費
- 7基于三相二電平PFC和隔離DC-DC轉(zhuǎn)換器的11kW雙向電池充電器
- 618.10 KB | 2次下載 | 免費
- 8ADI公司串行端口開發(fā)和故障排除指南
- 343.09KB | 1次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 136次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
- 0.10 MB | 125次下載 | 免費
- 4使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數(shù)發(fā)生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 22次下載 | 5 積分
- 7使用TL431設計電源
- 0.67 MB | 10次下載 | 免費
- 8如何正確測試電源的紋波
- 0.36 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多