Arweave 最新 2.7.2 版本升級了什麼?

PermaDAO
2024-04-18 17:12:10
收藏
近期 Arweave 硬分叉將共識機制進行了升級,有何重點呢,一文解讀最新變化。

近期,#Arweave 在區塊高度 1391330 時進行了硬分叉,將共識機制升級為 2.7.2 版本。這個版本有哪些更新呢?這篇文章為你詳細解讀。

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

1. 協作挖礦(Coordinated Mining )

協作挖礦是一個可以讓多個節點使用同一個挖礦地址進行挖礦,而不用擔心會丟失區塊獎勵和被列入黑名單的挖礦模式。當礦工沒有使用這種模式時,如果兩個節點在同一個高度用相同的挖礦地址發布區塊,將被視為違規,這不僅會讓礦工損失挖礦收益,還會讓該挖礦地址進入到黑名單中。所以這使得每個存儲了 Weave 不同子集的多個節點能夠獲得更多雙數據塊解決(two-chunk solutions)方案的算力優勢。

你可能對這裡出現的雙數據塊解決方案(two-chunk solutions)有些疑惑,這是什麼?

根據此前筆者在白皮書系列解讀文章中解釋的,每個 VDF(可以理解成每秒鐘),**礦工每秒每個分區最多有 2 次嘗試找到成功挖礦解決方案的機會。**這裡我們姑且將每次嘗試稱為 Attempt。其中第一次 Attempt 是在礦工存儲的分區中隨機找到一個數據塊進行 Hash;當礦工有了這個第一次 Attempt 的 Hash 之後,再用它在所有 Weave 分區中找到第二個隨機數據塊,並對其進行 Hash 來完成第二次 Attempt。如果礦工在第二次 Attempt 中找到了解決方案,那說明他們通過兩個數據塊(chunks)來完成挖礦,所以稱其為 two-chunk solutions。

在 2.7.2 版本中,共識機制將第一次 Attempt 的難度大大增加,讓礦工找到 one-chunk solution 變得非常困難,這樣礦工就必須進行第二次 Attempt,大致比例為 100 個 two-chunk solutions 才能有一次 one-chunk solution 的機會。這樣做的目的是激勵礦工去儘可能多地存儲 Weave 分區。而在新更新的協作挖礦模式下,就允許礦工在沒有存所有 weave 的情況下,可以通過與其他礦工的合作來達到最大化的挖礦效率。

基礎系統

在協作挖礦模式中有兩個角色:

  1. 出口節點
  2. 礦工

集群中的所有節點共享同一個挖礦地址。每個礦工為他們存儲的分區產生 H1 哈希。有時,他們需要的 H2 哈希是落在他們沒有存儲的分區中。在這種情況下,他們可以在協作挖礦集群中找到存儲了相應分區的礦工,並將 H1 發送給他們,讓其計算出 H2。當一個有效的解決方案被找到後( one-chunk 或 two-chunk ),這個解決方案會被發送到出口節點(Exit node)。由於出口節點是協作挖礦集群中唯一沒有被 Slash 風險,並且可以發布區塊的節點。出口節點也是唯一存儲了這個挖礦地址私鑰的節點(因此只有出口節點可以對區塊進行簽名)。

協調挖礦集群中的每個節點都可以像平常一樣與網絡上的任何其他節點進行對等連接。

單礦工 One-Chunk 流程

https://pbs.twimg.com/media/GLQiwonXoAANcx9?format=jpg\&name=medium

Note:Miner1 存儲了足夠多的分區,讓其可以同時獲得 H1 與 H2。

協作 Two-Chunk 的流程

https://pbs.twimg.com/media/GLQi6aDWgAEnnGD?format=jpg\&name=medium

配置

  1. 在協作挖礦集群中的所有節點必須配置 coordinated_mining 參數。
  2. 在協作挖礦集群中的所有節點必須通過 cmapisecret 配置相同的 secret 參數。它可以是任意長度的字符串。
  3. 在協作挖礦集群中的所有礦工應該使用 cmpeer 參數來標識所有集群中的其它礦工。 Note:出口節點也可以選擇性地進行挖礦,在這種情況下,它也被認為是一個礦工,應該由 cmpeer 參數標識。
  4. 所有礦工(不包括出口節點)應該使用 cmexitpeer 參數來標識出口節點。
  5. 在協作挖礦集群中的所有節點可以正常配置,但他們都應該指定同一個挖礦地址 mining_addr

還有兩個額外的參數可用於調整性能:

  • cmoutbatch_timeout:以毫秒為單位發送協作挖礦設置中其他節點的一批 H1 值的頻率。較高的值可以減少網絡流量,較低的值可以減少哈希延遲。默認值為 20。
  • cminbatch_timeout:以毫秒為單位處理從對等節點接收到的 H1 批次的頻率。較高的值可以減少冗餘磁碟讀取,較低的值可以減少哈希延遲。默認值為 20。

在早期的測試中,200 到 300 可能是許多挖礦設置中一個很好的折衷方案。但對於特定的挖礦集群配置與硬體中,最佳值可能會有很大的變化。

2. 礦池挖礦的本地支持

目前,Arweave 節點對礦池挖礦有內置的支持。

新的與礦池挖礦有關的參數:

  • ispoolserver
  • ispoolclient
  • poolapikey
  • poolserveraddress

3. 挖礦性能優化

新版本實施了幾項優化和錯誤修復,以使更多的礦工能夠實現最大哈希率。

更新摘要:

  • 增加挖礦過程中使用的水平分佈程度,以消除在更高的分區計數下的性能瓶頸
  • 優化 Erlang 虛擬機的內存分配、管理和垃圾回收
  • 修復了在更高的分區計數下可能出現的幾個內存不足錯誤
  • 修復了一個可能導致有效數據塊在進行哈希之前被丟棄的錯誤

更新後的挖礦性能報告:

https://pbs.twimg.com/media/GLQjeH4WwAAD6lV?format=png\&name=medium

其中:

  • H1 Solutions / H2 Solutions 指的是挖礦解決方案被找到的類型的計數,顯示的是在 H1 哈希下找到的還是 H2 哈希下找到數量的計數。
  • Confirmed Blocks 顯示了這個節點挖到的區塊的數量計數。
  • Cur 值指的是最近的值(如,過去 10 秒的平均值)。
  • Avg 值指的是全部的平均值。
  • Ideal 指的是在給定 VDF 速度和當前打包的數據量的情況下的最佳速率。
  • % of Max 指的是給定分區(或整個 Weave)被打包了多少。

4. 協議變更

2.7.2 硬分叉在區塊 1391330 進行,其激活以下協議變更:

  • one-chunk solution 的難度增加 100 倍,以更好地激勵完整的 Weave 副本存儲;
  • 額外的定價過渡階段計劃於 2024 年 11 月開始;
  • 實施每 GB/分鐘 340 Winston 的定價上限,直到 11 月的定價過渡;
  • 將檢查點(checkpoint)深度從 50 個區塊減少到 18 個;
  • 為防止低影響的垃圾郵件攻擊,提前拒絕不必要的 poa2 塊。即使在最壞的情況下,此攻擊對區塊鏈的膨脹影響也很小,因此並不是一個實際的漏洞利用。關閉此向量是出於良好衛生習慣的考慮。

更多細節可以參考相關文檔: https://github.com/ArweaveTeam/arweave/releases/tag/N.2.7.2

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
ChainCatcher 與創新者共建Web3世界