📜 [專欄新文章] Ethereum Casper — fork choice rule 之GHOST 與 RPJ
✍️ Kimi W
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
本篇在介紹Casper FFG POS鏈,鏈分叉的解決方法
在POW的世界中,就是比挖礦速度來決定最長鏈,那POS勒?! 怎麼解決分叉的問題?怎麼確認哪條分叉是有效的鏈?如果有一小群attackers ,假造了一堆block,變成最長的鏈,大家就傻傻的follow嗎?!
Casper FFG 一開始選用GHOST(Greedy Heaviest-Observed Sub-Tree) 作為選擇有效鏈的方式。GHOST原則上就是選總分最高的那條鏈當作有效鏈(在Casper FFG中,選擇最多人投票的鏈當作主鏈,而不是最長的當主鏈,所以這邊都是寫有效鏈,而不是最長鏈),下面是一個例子
來源:https://ethresear.ch/t/recursive-proximity-to-justific…/2561
最上面黃色的是最新被確認(finalized)的block,綠色的(I J)是鏈的head,每個區塊上的字母,代表簽章的人
C沒有被選擇,是因為B的簽章數比C多
F沒有被選擇,是因為(G H)的簽章數是5(G,H,I,J,M),而F只有3(F,K,L)
(I J)簽章數是2,多於M(1個),所以最後選定是 (I J) 這個區塊
GHOST選定有效鏈方式大概就這樣,還滿直覺的。
前幾週,基於GHOST選鏈的方式作了一些小修改,提出新的方式叫做RPJ(Recursive Proximity to Justification)。GHOST是票數多的當選,而RPJ是比最大值,也就是取每條分叉上的最大值,擁有最大值的那條鏈即為有效鏈。
來源:https://ethresear.ch/t/recursive-proximity-to-justific…/2561
以這個鏈為例,黃色分鏈最大值為51,綠色分鏈最大值為65,所以綠色鏈會被選為主鏈,就這樣(講完覺得有點空虛….XD)。為什麼會改用RPJ?這個方式的概念是,如果某個block被證明是合法的(justified),這隱含了這個block的祖先們也被證明是合法的,所以一個區塊 justified 的機率會是其子孫區塊中最接近 justified 的機率(這邊感謝NIC Lin的糾正,下方會附上NIC LIN comment的原文)。
原文在這裡(英文不夠好,所以這裡附上原文)
The philosophy here is that if a block is justified, that implicitly justifies its ancestors as well, so the proximity of a block to being justified is really the minimum of the proximities of any of its descendants.
NIC Lin的commnet,直接引用原文
這邊原文寫錯了,是 maximum of the proximities of any of its descendants。 一個區塊 justified 隱含其區塊的祖先 justified 的意思,所以一個區塊 justified 的機率會是其子孫區塊中最接近 justified 的機率。
然而,這個方式也不是沒缺點,RPJ缺少了stability。以上面的例子來說,如果黃色的分鏈其他的validator繼續投票,有效分鏈就會變成黃色鏈了。不過Vitalik也提到,如果是在每個block都做justification,而不只是check point,就可以解決stability這個問題,不過這個提議或許還需要社群作討論才會有結論,就先知道就好。
reference:https://ethresear.ch/…/t/pos-fork-choice-rule-desidera…/2636
Originally published at kimiwublog.blogspot.com.
Ethereum Casper — fork choice rule 之GHOST 與 RPJ was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
c pow意思 在 人助旅行與助人旅行 Facebook 的精選貼文
台灣工程師常唸錯的英文單字
http://priv.tw/blog/archives/591
你有自信能念對幾個呢?
----
access /ˈækses/ 重音在第一音節不在第二音節,還有中間有一個k常常也被忘記了。
administrator /ədˈmɪnəstreɪtər/ 第二音節是重音不是次重音,不要念成和 administration /ədˌmɪnəˈstreɪʃən/ 一樣的發法。
architecture /ˈɑːrkətektʃər/ 注意重音在第一音節不是第三音節。 (Freddy 提供)
cache /kæʃ/ 千奇百怪的唸法就不想提了,它和 cash (現金)同音才對。
cancel /ˈkænsəl/ 有少部份人會把它唸成 cancer…就錯囉,cancer 是癌症的意思。小小一個子音的差異,意思卻相去甚遠。
confirm /kənˈfɜ:rm/ confirm(?)以及 Netkidz 提供,許多人會唸成 conform /kənˈfɔ:rm/。
distributed /dɪˈstrɪbju:tɪd/ ericyu 提供,沒提我都快忘了,重音在tri而不是bu,台灣人很容易發成和distribution /ˌdɪstrɪˈbju:ʃən/ 一樣的重音,十幾年前在大學的時候我自己也是花了一番工夫才校正過來。
feature /ˈfi:tʃər/ 唸成 fee-ture phone,不要再唸成 future phone 了。
format /ˈfɔ:rmæt/ 重音第一音節,發音上沒有分名詞動詞,動詞用法「format C槽」的 format 重音還是該在第一音節。
illustrator /ˈɪləstreɪtər/ 重音在第一音節,但是很多人就是會唸成「以拉-」。
infrastructure /ˈɪnfrəˌstrʌktʃər/ 繼續重音更正,重音真的很重要。
null /nʌl/ 請不要發「怒偶」,他沒有怒。
maintenance /ˈmeɪntənəns/ visual 提供,這個我不曉得要怎樣形容,可是唸錯的人也很多,大家自行服用 M-W 的線上發音吧。
modem /ˈmoʊdəm/ 重音在第一音節。
parameter /pəˈræmətər/ 重音在第二個音節,不要唸成 para + meter。
percent /pərˈsent/ 重音在第二音節,這個字最早是從 “per cent”,唸成 person 就會讓人聽不太懂了。(提供:kk、KOD)
power /ˈpaʊr/ 後半不是唸 wer 喔,並不存在 w 半母音。pow 後面直接接 r 子音。就算不同腔調,想要唸清楚、重一點也是 pow + er /ˈpaʊər/才對。
processor /ˈprɑ:sesər/ biou 提供。重音在第一音節,而不是在ce,這比較奇怪的地方是 process 相對來說唸錯的人就比較少。推測可能受到 professional/professor 這些字的影響。
programmer /ˈproʊɡræmər/ program, programmer, programming 的重音都應該在第一音節而不是第二音節。(KOD 提供)
standard /ˈstændərd/ Joy 網友提供,standard 的 ar應該唸成像 teacher 的 er,而不是 car 的 ar。
suite /swiːt/ 音同 sweet,套房、套裝軟體等等。這個字唸錯其實也難怪,因為它長得和 suit /suːt/ (西裝)真的很像,意義上也很像。而且實際上,suite 和 suit 的法文字源還真的是一樣的,只是後來英國人才慢慢把這兩個字區分使用方法和讀音。某些字典裡面如 m-w 也有將 suite 列出/suːt/ 的讀音,不過畢竟這是比較不常見的唸法。大家還是努力改正吧。
variable /ˈveriəbəl/ 重音第一音節,含起來比較像 very-able 而不是像 variety 的前面。
word /wɜ:rd/ 這麼簡單的字,音標也清清楚楚,但是至少五成以上的台灣人念錯,甚至包括一些中學學校、補習班老師都唸錯。or 前面若是 w 要弱化成 bird 中 ir 的發音,請和我唸一遍,word。
walk /wɒ:k/ walk「沒有l」的音,不要再唸錯了。
---
有些人說,語言就是要拿來溝通的,聽得懂就好了!問題是台灣人自己聽得懂自己的英文,外國人聽不懂台灣人的英文阿!
有人說,印度人講英文不標準,還不是可以溝通。
那你搞錯了一點,印度人說英文雖然口音很重,但是發音是正確的。
發音正確,有口音還是聽得清楚,發音錯誤那就...
來看怎麼正確發音:
【你的問題不是口音,而是發音!】
http://fairyseyes.blogspot.tw/2013/10/blog-post_1732.html
我是苡絃,這裡是人助旅行
讓我們一起交朋友、玩世界!
https://www.facebook.com/fairyseyes