# 9月14日-事後解析 您們好,各位XYM城市的朋友! ***定稿背景** 最終性是區塊鏈中的一個重要概念——它保證交易不能被更改、逆轉或取消。大多數鏈(如比特幣)利用概率終結性——也就是說,隨著時間的推移,你的交易被修改的可能性會降低。 在 Symbol 中,我們既有概率終結性,也有作為單獨小工具的確定性終結性——一旦交易被包含在最終區塊中,就被認為是最終的。 為了最終確定一個區塊,**2/3**活躍投票的權益必須對該區塊的哈希進行投票。 選民可以隨意進入和退出最終確定過程。任何成員資格變更都將在下一個紀元生效。此外,活躍投票股份在每個 epoch 結束時計算,該數量用作下一個 epoch 的分母。 ***問題** 9 月 12 日星期日,我們注意到網絡在完成 epoch 361 時遇到問題。這並不完全令人驚訝——我們曾預計這個 epoch 是對完成過程的強大壓力測試。 用於在網絡開始附近註冊投票密鑰的投票節點**symbol-bootstrap**已經註冊了 1-360 紀元的密鑰。由於缺乏對定期更新投票密鑰重要性的宣傳,許多用戶沒有為 epochs 361+ 註冊密鑰。結果,很多在 360 紀元投票的節點都沒有在 361 紀元投票。 儘管如此,仍然有足夠的共識進入下一個epochs(362)。不幸的是,這就是攤位發生的地方。一些更大的節點停止投票,現在,網絡無法達成絕大多數投票權的協議。 似乎正在考慮過期選民的股份,這是不可取的。經過調查,我們發現儘管客戶正確的忽略了曾經註冊過的賬戶投票密鑰的權益,但並沒有忽略先前註冊的擁有投票密鑰的賬戶的權益。通過查看對應於 360 和 361 紀元的重要性塊中存儲的數據,我們能夠快速識別出某些錯誤。如果一切都按設計工作,我們本應看到 的大幅減少TotalVotingBalance,但實際上幾乎沒有變化. ***主要修復** 我們通過過濾掉沒有在當前紀元註冊的投票密鑰的帳戶來修復這個錯誤。此外,我們將絕對多數閾值從 70% 降低到 67%。通過這些更改,我們希望在將此修復部署到絕大多數投票股權後儘快恢復最終確定。 在 block 會有一個硬分叉**528,000**。這需要修復存儲在 ImportanceBlocks 中的統計數據的計算,因為需要由所有節點驗證。 由於終結是作為 Symbol 中的一個小工具來實現的,因此在這個終結停頓期間,鏈仍在進行中。PoS+ 區塊生產在獨立於最終確定的情況下繼續進行。當定稿確定後,我們希望所有區塊都能快速定稿。 ***次要變化** 當投票節點用完投票密鑰時,原始行為會使節點崩潰。為了減少這種破壞性,我們進行了更改以簡單地記錄錯誤。雖然這樣噪音較小,但不建議長時間在這種狀態下運行節點。相反,想要停止投票的節點應該設置**enableVoting**為**false**並重新啟動。 有人抱怨多簽賬戶總是需要另一個賬戶(發起者)來支付費用。我們正在放寬這個限制,以便在分叉區塊,多重簽名賬戶可以通過將其費用轉移給發起者來間接支付自己的費用。請注意,這不會改變需要哈希鎖定的部分事務提交的行為。 ***未來的工作** 在當前版本的 Symbol 中,投票節點沒有獎勵或懲罰。雖然這大大簡化了我們啟動時的最終確定實施,但它並沒有為我們打算為投票節點創建正確的激勵措施。我們將在(不久的)將來添加一個適當的系統來獎勵選民。 我們已經意識到我們需要投資於更好的工具。能夠監控活躍投票節點的數量和投票權益的下降會在最終確定停滯之前提醒我們注意一個問題。在接下來的幾個月中,我們將優先考慮我們的基礎設施,包括一個新的區塊瀏覽器、改進的 REST API 以及易於理解且對用戶和研究人員都有幫助的數據分析。如果您想與我們合作,請加入我們的[Discord](https://www.discord.gg/xymcity)。 標籤: **Engineering Fork**
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up