億書DPOS機(jī)制(未完)

DPOS機(jī)制

DPOS機(jī)制是通過資產(chǎn)占比(股權(quán))來投票,更多的加入了社區(qū)人的力量,人們?yōu)榱俗陨砝娴淖畲蠡瘯镀边x擇相對可靠的節(jié)點,相比更加安全和去中心化。

機(jī)制流程

  1. 注冊受托人,并接受投票

    用戶注冊為受托人;接受投票(得票數(shù)排行前101位);

  2. 維持循環(huán),調(diào)整受托人

    塊周期:也稱為時段周期(Slot),每個塊需要10秒,為一個時段(Slot);

    受托人周期:或叫循環(huán)周期(Round),每101個區(qū)塊為一個循環(huán)周期(Round)。這些塊均由101個代表隨機(jī)生成,每個代表生成1個塊。一個完整循環(huán)周期大概需要1010秒(101x10),約16分鐘;每個周期結(jié)束,前101名的代表都要重新調(diào)整一次;

    獎勵周期:根據(jù)區(qū)塊鏈高度,設(shè)置里程碑時間(Milestone),在某個時間點調(diào)整區(qū)塊獎勵。

    上述循環(huán),塊周期最?。?0秒鐘),受托人周期其次(16分鐘),獎勵周期最大(347天)。

  3. 循環(huán)產(chǎn)生新區(qū)塊,廣播

注冊受托人

注冊受托人必須使用客戶端軟件(錢包),因此這項功能需要與節(jié)點進(jìn)行交互,也就是說客戶端要調(diào)用節(jié)點Api。管理受托人的模塊是 modules/delegates.js

該模塊提供的API:
"put /": "addDelegate"

最終API信息:
put /api/delegates

modules/delegates.js模塊的addDelegate()方法。該方法與注冊用戶別名地址等功能性交易沒有區(qū)別,注冊受托人也是一種交易,類型為“DELEGATE”(受托人)

投票

億書中,有一種交易是“VOTE”,任何普通用戶都有投票權(quán)利,所以放在帳號管理模塊,即“modules/accounts.js”文件里

塊(時段)周期(Slots)

  1. 時間設(shè)置

    比特幣的塊周期為10 min,由工作量證明機(jī)制來智能控制,而億書的塊周期為10 s,僅僅是時間上的設(shè)置而已,時間處理統(tǒng)一使用UTC標(biāo)準(zhǔn)時間,創(chuàng)世時間beginEpochTime()和getEpochTime(time)兩個私有方法定義了首尾兩個時間點,其他的方法都是基于這兩個方法計算出來的時間段,所以不會出現(xiàn)時間上不統(tǒng)一的錯誤,源碼在helpers/slots.js里。

  2. 編碼風(fēng)險

    getEpochTime(time)方法上,new Date()是直接使用系統(tǒng)時間的,可人為改變,可能導(dǎo)致出現(xiàn)分叉行為

    function getEpochTime(time) {
        if (time === undefined) {
          // 16行
          time = (new Date()).getTime();
        }
        var d = beginEpochTime();
        var t = d.getTime();
        return Math.floor((time - t) / 1000);
    }
    

受托人(循環(huán))周期(Round)

為了安全,億書規(guī)定受托人每輪都要變更,確保那些不穩(wěn)定或者做壞事的節(jié)點被及時剔除出去。另外,盡管系統(tǒng)會隨機(jī)找尋受托人產(chǎn)生新塊,但是在一個輪次內(nèi),每個受托人都有機(jī)會產(chǎn)生一個新區(qū)塊(并獲得獎勵)并廣播,這一點與比特幣每個節(jié)點都要通過工作量證明機(jī)制(PoW)競爭獲得廣播權(quán)相比,要簡化很多。

獎勵周期(Milestones)——未

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 未經(jīng)本人同意,禁止轉(zhuǎn)載 EbookChain億書鏈詳解 在億書的源碼中有一個logic的文件夾,放置的代碼是: a...
    CodingCattwo閱讀 2,228評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 一、快速術(shù)語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 16,561評論 4 87
  • 近期工作、生活等各方面壓力來襲,通過各種渠道排解不了,在“得到”正好碰上奚小鹿老師《怎樣成為壓力管理的高手》的課...
    皂王閱讀 695評論 0 0
  • 這天我又發(fā)了一個微信紅包給你面額依舊是5.21 你發(fā)我的我沒拆你一定又發(fā)了5.20吧 可是我再也不能要你的心意 從...
    紹源閱讀 310評論 0 0

友情鏈接更多精彩內(nèi)容