Milestone是coordinator發的交易
以目前來講 , 只選兩筆交易去驗證
由於milestone最多選四個tip
所以加速的想法是 : 減少tip到兩個以下
用圖來說明
假設 是 milestone
下一個milestone 出現的時候 , 可能會指向 與
那 , 和 都不會確認
發交易讓 只剩下一個或兩個
綠色的 , , 是特別發起的交易 , 這樣就能使 只剩下一個
如此 milestone前的交易都能是確認
是不好的影響
洗到只剩下1個或2個交易
這代表有衝突交易的話 , 會都被指向
以基金會的確認度算法 , 衝突交易都是確認的
這邊不確定的是milestone是如何選交易的 , 所以需要多個算法來驗證
直接的作法是:
用 拿到全部的
發交易 , 從 選兩筆驗證並移除 , 重複直到 為空
重複1,2的動作直到 查詢只剩2個或1個的交易
這作法可能會讓衝突的交易被驗證
先針對2.做測試
以下是一些數據
第一次
第二次
第三次
第四次
第五次
會發現 的數目沒有下降
在 選兩筆被驗證的交易 , 這兩筆可能已經被其他 發起的交易驗證了
所以 數目不會減少 , 反而會增加
其他 發起的交易不會在 裡面 , 所以也驗證不到
可以看得出來 , 這方法需要的時間是比較長的 , 不是一個效率好的方法
從上面的實驗 , 削減整個 的數量不太實際
另外 , 最好的情況就是單位時間內發的交易都確認
由於 milestone 的發送頻率是 coordinator 控制的
所以最多就是讓單位時間內新發起的交易都確認
新的方法如下:
由於 IRI 1.5.0 的更新 , Tangle Accelerator (iota-swarm-node ) 可以用 而不會出現不被 milestone 驗證的情況
具體來說 , 修改 IRI 的 code , 讓 內的 tip 都經過檢查
這樣 Tangle Accelerator 就不會發起永遠 pending 的交易了
TipSelector.getTransactionsToApprove
這邊由於都是 pending , 連不是 tip 的交易也是
個人看法 , 需要實作共識演算法的一部份(沒有 Coordinator 的情況) , 主要是 trunk 與 branch 的選擇與檢查的問題
這是上週三(8/22) , spammer 測試 mainnet 的結果
可以注意到 , TPS 上了 40
CTPS也來到 30 附近 , 相較之前 TPS 40 , CTPS 才 10~20 有 10 以上的差距
除去官方測試造成CTPS下降的問題 , 就這樣的情況 , 還需要做 CTPS 的實驗嗎?
IOTA